정규화는 이상현상이 있는 릴레이션을 분해하여 없애는 과정이다.

분해되는 정도에 따라 정규형 단계로 나누어지며 단계가 높을 수록 이상현상이 줄어든다.

 

[제 1 정규형]

모든 속성이 원자값을 갖도록 분해한다.

 

[제 2 정규형]

제1 정규형을 만족하고, 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때를 의미한다.

기본키에 종속적이지 않은 속성을 분리한다!

*복합키를 가진 경우. 여기서 기본키는 학생번호강좌이름이다.

1) 학생번호강좌이름을 알아야 성적을 알 수 있다? (O)

2) 학생번호강좌이름을 알아야 강의실을 알 수 있다?  (X) : 강좌이름만 알아도 된다.

 

 

 

[제 3 정규형]

릴레이션이 제 2 정규형을 만족하면서 기본키에 직접 종속하도록 하는 것.

아래는 학생번호->강좌이름->수강료의 형태로 정보를 찾는데 이것을 분리해준다.

= 기본키와 일촌이 아닌경우 분리

{학생번호->강좌이름}, {강좌이름->수강료}

 

[ BCNF 정규형 ]

3차 정규형을 만족하면서 BCNF는 만족하지 않는 경우는 언제일까? 바로 일반 컬럼이 후보키를 결정하는 경우이다.

따라서, 특강수강 릴레이션에서 이상현상을 일으키는 (교수, 특강이름)을 분해한다.

 


요약

1정규형 : 원자값을 가져야 함.

2정규형 : 기본키가 2개 이상일 때 둘다 필요 해야 함.

3정규형 : 기본키랑 일촌이여야 함.

블로그 이미지

hjc_

୧( “̮ )୨

,