2NF(Second Normal Form) 정규형
2NF 정규형을 만족하려면 릴레이션에서 부분적 함수 종속이 사라지고 완전 함수 종속이 되어야 합니다.
함수 종속성에 대해서는 이전에 정리했으니 릴레이션으로 예시를 들며 설명해 보도록 하겠습니다.
함수종속성에서 예를 들었던 아래와 같은 릴레이션이 있습니다.
과목번호 | 수업번호 | 과목명 | 강의실 |
S100 | C100 | 데이터베이스 | 강의관 101 |
S100 | C101 | 데이터베이스 | 강의관 102 |
S101 | C102 | 자료구조 | 강의관 201 |
S102 | C103 | 운영체제 | 강의관 202 |
이 릴레이션의 기본키는 수업번호입니다.
하지만 과목명은 과목번호에 종속되어 있습니다. 과목번호가 당연히 기본키가 아니기 때문에 이는 부분적 함수 종속성이 있음을 의미합니다.
함수종속성의 설명에서 보았듯 이런 종속성 때문에 튜플의 삽입, 삭제, 갱신에서 이상현상이 발생합니다.
수업이 사라지면 과목의 정보가 사라지기도 하고, 과목명이 바뀌면 해당하는 모든 튜플을 전부 갱신해주어야 합니다.
2NF 정규형을 만족하도록 부분 종속성을 가지는 과목번호와 과목명을 따로 빼어 릴레이션을 나누면
수업번호 | 과목번호 | 강의실 |
C100 | S100 | 강의관 101 |
C101 | S100 | 강의관 102 |
C102 | S101 | 강의관 201 |
C103 | S102 | 강의관 202 |
과목번호 | 과목명 |
S100 | 데이터베이스 |
S101 | 자료구조 |
S102 | 운영체제 |
DB를 조작함에서 이상현상이 사라지는것을 알 수 있습니다.
3NF 정규형에 대해서는 다음 글에서 설명해 보도록 하겠습니다.
728x90
'📖 CS > 📚 데이터베이스' 카테고리의 다른 글
[DB] 04. 정규화 - 3NF(Third Normal Form) 정규형 (0) | 2022.07.18 |
---|---|
[DB] 02. 정규화 - 1NF(First Normal Form)정규형 (0) | 2022.06.30 |
[DB] 01. 정규화 - 함수종속성, 이상현상, 정규화 (0) | 2022.06.28 |