prosource

데이터베이스 정상 양식이란 무엇이며 예를 들어 줄 수 있습니까?

probook 2023. 10. 5. 23:23
반응형

데이터베이스 정상 양식이란 무엇이며 예를 들어 줄 수 있습니까?

관계형 데이터베이스 설계에서는 데이터 중복을 줄이고 데이터 무결성을 향상시키기 위해 열(속성)과 표(관계)를 구성하는 과정인 데이터베이스 정규화(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

반응형