티스토리 뷰

정규화

이상현상이 있는 릴레이션을 다수의 릴레이션으로 분리하는 과정

무결성 유지, 데이터 일관성🔼, 모델의 응집도🔼

 

 

제 1 정규화 (1NF)

모든 속성이 원자값으로 이루어짐

여러개의 주문상품이 하나의 칼럼에 들어가있어 제 1 정규형을 만족시키지 못함

제 1 정규화하여 분리 가능

 

제 2 정규화 (2NF)

모든 속성이 기본키에 대해 완전 함수 종속을 만족함

기본키 = (고객ID, 상품ID)

(주문 상품), (가격) 속성은 기본키의 부분집합인 (상품ID)만 알아도 식별가능하므로 기본키에 부분 함수 종속

 

상품 테이블을 별도로 분리하여 제 2 정규화 가능함

 

 


제 3 정규화 (3NF)

모든 속성이 기본키에 대해 이행 함수 종속이 되지 않음

종속성: 고객ID -> 등급, 등급 -> 할인율 일 때, 고객ID -> 할인율 이 성립되어 이행 함수 종속을 가짐

 

고객ID -> 등급, 등급 -> 할인율 두 개의 릴레이션으로 분리하여 제 3 정규화

 

 

BCNF (Boyce-Codd Normal Form)

모든 결정자가 후보키가 됨

종속성: (학번, 과목) -> 지도교수, 지도교수 -> 과목

후보키 집합이 아닌 칼럼이 결정자가 됨

 

학번 -> 과목, 지도 교수 -> 과목 으로 분리하여 BCNF 만족

 

 

제 4 정규화 (4NF)

다치종속 제거

 

제 5 정규화 (5NF)

조인종속이 후보키를 통해서만 성립되게 함

댓글