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

+ Recent posts