제 3 정규화

- 기본키에 의존하지 않고 일반 칼럼에 의존하는 칼럼을 제거한다.

- PRIMARY KEY가 아닌 일반 COLUMN으로 종속되어지는 COLUMN 분리,

  A-> B, B-> C 그러므로 A -> C 

  즉, 이행적 종속 관계를 분리해준다


이전 포스팅 예제 참고(제2정규화) : http://hahahia.tistory.com/148

주문 Table(기본키 주문번호:FK)

주문번호

고객번호

주소 

A345 

100 

서울 

D347 

200 

부산 

A210 

300 

광주 

B230 

200 

부산 


--------------------------------------------------------------

주문번호 -> 고객번호, 주소

고객번호 -> 주소(일반 키에서 함수적 종속 발생!)

--------------------------------------------------------------

위 테이블에서 제3정규화를 하지않는 상태에서의 문제점

- 새로운 고객이 추가되어 삽입하려고 할 때(현재 주문번호는 FK) 실제 주문이 일어난 상황이 아니더라도 가상으로 주문을 해야만 삽입이 가능하게 된다.

- 즉 기본키가 아닌 속성인 고객번호에 의해서 주소가 결정되고, 주소로 주문번호를 검색할 수 있게 됨(이행적 함수 종속성)

따라서 위 테이블을 또 두 테이블로 나눌 수 있다


주문 Table

주문번호

고객번호 

A345 

100 

D347 

200 

A210 

300 

B230 

200 


고객 Table

고객번호

주소 

100

서울

200 

부산 

300 

광주 


그냥 쉽게 생각해서 기본키를 뺀 나머지 속성들의 함수적 종속성을 찾아내면 한번더 나누면 된다...

신고

'Database' 카테고리의 다른 글

제 3 정규화  (0) 2013.06.06
제 2 정규화  (0) 2013.06.06
제 1 정규화(Normal Form)  (1) 2013.06.06

+ Recent posts

티스토리 툴바