관계형 데이터베이스 디자인에는 데이터 중복성을 줄이고 데이터 무결성을 향상시키기 위해 열 (속성) 및 테이블 (관계)을 구성하는 프로세스 인 데이터베이스 정규화 또는 단순 정규화 개념이 있습니다. ( Wikipedia에 작성 ).
대부분의 기사는 다소 기술적이고 이해하기 어렵 기 때문에 누군가 1NF, 2NF, 3NF, 심지어 3.5NF (Boyce-Codd)의 의미에 대한 예를 기반으로 설명을 이해하기 쉽게 작성하도록 요청하고 있습니다.
관계형 데이터베이스 디자인에는 데이터 중복성을 줄이고 데이터 무결성을 향상시키기 위해 열 (속성) 및 테이블 (관계)을 구성하는 프로세스 인 데이터베이스 정규화 또는 단순 정규화 개념이 있습니다. ( Wikipedia에 작성 ).
대부분의 기사는 다소 기술적이고 이해하기 어렵 기 때문에 누군가 1NF, 2NF, 3NF, 심지어 3.5NF (Boyce-Codd)의 의미에 대한 예를 기반으로 설명을 이해하기 쉽게 작성하도록 요청하고 있습니다.
답변:
1NF는 가장 기본적인 정규 양식입니다. 표의 각 셀에는 정보가 하나만 포함되어야하며 중복 된 행은 없어야합니다.
2NF와 3NF는 모두 기본 키에 의존하는 것입니다. 기본 키는 여러 열로 구성 될 수 있습니다. Chris가 자신의 답변에서 다음과 같이 말했습니다.
데이터는 키 [1NF], 전체 키 [2NF] 및 키 [3NF] 외에는 다릅니다 (따라서 Codd 도와주세요 ).
특정 학기 동안 수강하는 과정이 포함 된 테이블이 있고 다음 데이터가 있다고 가정합니다.
|-----Primary Key----| uh oh |
V
CourseID | SemesterID | #Places | Course Name |
------------------------------------------------|
IT101 | 2009-1 | 100 | Programming |
IT101 | 2009-2 | 100 | Programming |
IT102 | 2009-1 | 200 | Databases |
IT102 | 2010-1 | 150 | Databases |
IT103 | 2009-2 | 120 | Web Design |
이다 2NF에없는 네 번째 열이에 의존하지 않기 때문에, 전체 만의 일부만 - 키를 누릅니다. 코스 이름은 코스의 ID에 따라 다르지만 어느 학기와 관계가 없습니다. 따라서 알 수 있듯이 IT101이 프로그래밍 중이고 IT102가 데이터베이스임을 알려주는 여러 행이 있습니다. 따라서 코스 이름을 다른 테이블로 이동하여 문제를 해결합니다. 여기서 CourseID는 ENTIRE 키입니다.
Primary Key |
CourseID | Course Name |
---------------------------|
IT101 | Programming |
IT102 | Databases |
IT103 | Web Design |
중복성이 없습니다!
자, 코스의 교사 이름과 그에 대한 세부 사항을 RDBMS에 추가한다고 가정 해 봅시다.
|-----Primary Key----| uh oh |
V
Course | Semester | #Places | TeacherID | TeacherName |
---------------------------------------------------------------|
IT101 | 2009-1 | 100 | 332 | Mr Jones |
IT101 | 2009-2 | 100 | 332 | Mr Jones |
IT102 | 2009-1 | 200 | 495 | Mr Bentley |
IT102 | 2010-1 | 150 | 332 | Mr Jones |
IT103 | 2009-2 | 120 | 242 | Mrs Smith |
이제 TeacherName이 TeacherID에 종속되어 있기 때문에 3NF 가 아닙니다 . 이 문제를 해결하기 위해 2NF에서했던 것과 똑같은 작업을 수행합니다.이 테이블에서 TeacherName 필드를 가져 와서이를 TeacherID를 키로하는 자체 필드에 넣습니다.
Primary Key |
TeacherID | TeacherName |
---------------------------|
332 | Mr Jones |
495 | Mr Bentley |
242 | Mrs Smith |
중복 없음!
1NF에없는 것이 2NF 또는 3NF에 있지 않다는 것을 기억해야합니다. 따라서 각 추가 정규 양식에는 하위 정규 양식에 포함 된 모든 항목 과 추가 조건이 모두 충족 되어야합니다 .
나는 정확한 단어 표현에 대해 좋은 기억을 가지고 있지는 않지만 데이터베이스 클래스에서 교수는 항상 다음과 같이 말했다고 생각합니다.
데이터는 키 [1NF], 전체 키 [2NF] 및 키 [3NF]에만 의존합니다.
The data depends on the key [1NF], nothing but the key [3NF]
무엇입니까? 1 개의 문장 답변이 답변을 명확하게하지는 않지만 방문자를 혼란스럽게하므로 혼동하지 마십시오!
다음은 신속하고도 정직한 답변이지만 한 문장입니다.
1NF : 테이블이 정렬되지 않은 데이터 세트 로 구성되며 반복되는 열이 없습니다.
2NF : 다른 열로 인해 테이블의 한 열에서 데이터를 반복하지 않습니다.
3NF : 테이블의 모든 열은 테이블의 키와 만 관련이 있습니다. 테이블에는 키가 아닌 다른 열을 설명하는 열이 없습니다.
자세한 내용은 Wikipedia ...를 참조하십시오.
1NF : 열당 하나의 값만
2NF : 테이블의 모든 기본 키가 아닌 열은 전체 기본 키에 의존해야합니다.
3NF : 테이블의 모든 비 기본 키 열은 전체 기본 키에 직접적으로 의존해야합니다.
여기 에 더 자세히 기사를 썼습니다