데이터베이스 정상 양식이란 무엇이며 예를 들어 줄 수 있습니까?
관계형 데이터베이스 설계에서는 데이터 중복을 줄이고 데이터 무결성을 향상시키기 위해 열(속성)과 표(관계)를 구성하는 과정인 데이터베이스 정규화(normalization) 또는 단순 정규화(simply normalization)의 개념이 있습니다.위키백과
1NF, 2NF, 3NF, 3.5에 대한 예시를 바탕으로 한 설명은?NF(Boyce-Codd BCNF) 의미?
1NF는 일반적인 형태 중 가장 기본적인 형태입니다. 테이블의 각 셀은 하나의 정보만을 포함해야 하며 중복된 행은 있을 수 없습니다.
2NF와 3NF는 모두 기본 키에 의존하는 것입니다.기본 키는 여러 열로 구성될 수 있습니다.Chris가 그의 답변에서 말했듯이:
데이터는 키 [1NF], 전체 키 [2NF] 및 키 [3NF]에만 의존합니다(따라서 코드를 사용해 주십시오).
2NF
특정 학기에 수강하는 과목이 포함된 표가 있고 다음과 같은 데이터가 있다고 가정합니다.
|-----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 |
4번째 열은 키 전체에 의존하지 않고 일부에만 의존하기 때문에 2NF에는 없습니다.과정 이름은 과정 ID에 따라 달라지지만, 과정 이름이 어느 학기에 수강되었는지와는 무관합니다.보시다시피 중복된 정보가 있습니다. 여러 행에서 IT101이 프로그래밍 중이고 IT102가 데이터베이스임을 알 수 있습니다.코스 이름을 다른 테이블로 이동하여 수정합니다. 여기서 코스는ID가 전체 키입니다.
Primary Key |
CourseID | Course Name |
---------------------------|
IT101 | Programming |
IT102 | Databases |
IT103 | Web Design |
중복 금지!
3NF
예를 들어, 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이 Teacher에게 의존하고 있음이 분명해야 합니다.기본 키에 속하지 않는 ID - 따라서 3NF에 없습니다.이 문제를 해결하기 위해 2NF에서와 거의 동일한 작업을 수행합니다. 이 테이블에서 TeacherName 필드를 꺼내 Teacher가 있는 자체 항목에 넣으십시오.아이디를 키로.
Primary Key |
TeacherID | TeacherName |
---------------------------|
332 | Mr Jones |
495 | Mr Bentley |
242 | Mrs Smith |
중복 금지!!
기억해야 할 한 가지 중요한 것은 만약 어떤 것이 1NF에 없다면, 그것은 2NF나 3NF에도 없다는 것입니다.따라서 각각의 추가 정상적인 형태는 하위 정상적인 형태가 가지고 있던 모든 것과 추가적인 조건이 필요하며, 이 조건들은 모두 충족되어야 합니다.
정확한 문구를 기억하는 좋은 기억력을 가진 적은 없지만, 제 데이터베이스 수업에서 교수님은 항상 다음과 같은 말을 하신 것 같습니다.
데이터는 키 [1NF], 전체 키 [2NF] 및 키 [3NF]에만 의존합니다.
다음은 인정할 수 있는 빠른 답변입니다. 하지만 문장으로:
1NF : 테이블이 순서 없는 데이터 집합으로 구성되어 있으며, 반복되는 열이 없습니다.
2NF: 다른 열 때문에 테이블의 한 열에서 데이터를 반복하지 않습니다.
3NF: 테이블의 모든 열은 테이블의 키와만 관련되므로 테이블의 키가 아닌 다른 열을 설명하는 열은 테이블에 포함되지 않습니다.
자세한 내용은 위키피디아...
1NF: 열당 하나의 값만 제공
2NF: 테이블의 기본이 아닌 모든 키 열은 기본 키 전체에 의존해야 합니다.
3NF: 표의 기본이 아닌 모든 키 열은 전체 기본 키에 직접 의존해야 합니다.
여기에 좀 더 자세히 기사를 작성했습니다.
언급URL : https://stackoverflow.com/questions/723998/what-are-database-normal-forms-and-can-you-give-examples
'prosource' 카테고리의 다른 글
작은 int를 부울 최대 절전 모드로 매핑 (0) | 2023.10.05 |
---|---|
HikariCP pass Oracle 사용자 지정 유형 (0) | 2023.10.05 |
Angular 5는 일부 클래스에서 'ng-star-inserted'를 추가합니다. - 그게 뭐죠? (0) | 2023.10.05 |
PHP에서 워드프레스 숏코드 스타일 함수를 만드는 방법 (0) | 2023.10.05 |
특정 양식을 제출한 후 여러 양식에서 결합된 입력 데이터를 타사로 전송하는 Gravity Forms (0) | 2023.10.05 |