[데이터베이스] 정규형

2019. 11. 9. 00:59데이터베이스

 

정규화의 개념

​데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입/수정/삭제 연산을 수행할 때 부작용이 발생할 수 있다.

이런한 부작용을 이산(anomaly) 현상이라고 한다. 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정이 정규화다.

 

 

 

 삽입 이상

새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 

 갱신 이상

중복 투플 중 일부만 변경하여 데이터가 불일지하게 되는 모순의 문제 

 삭제 이상

투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 

 

 

정규화는 이상 현상이 발생하지 않도록, 릴레이션을 관련이 있는 속성들로만 구성하기 위해 릴레이션을 분해(decomposition)하는 과정이다.

정규화 과정에서 고려해야 하는 속성들 간의 관련성을 함수적 종속성(FD : Functional Dependency)이라고 한다

.

 

즉, 정규화를 시키면 릴레이션이 늘어난다.

 

 

 

 

릴레이션이 정규화된 정도는 정규형으로 표한한다.

 

(https://jundol.kr/123)

 

(보통 실제론 제3 정규형까지 밖에 안쓰인다.)

 

 

 제 1 정규형

릴레이션에 속한 모든 속성의 도메인이 원자 값(atomic value)으로만 구성되어 있으면 제 1 정규형에 속한다. 

 

 

위와 같이 취미 속성의 값이 다중 속성 값을 가지고 있다. 이 부분을 단일 값이 되게 투플의 수를 늘려주고 분리 시켜준다.

 

 

 

 

 

 

 제 2 정규형

릴레이션이 제 1정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제 2 정규형에 속한다.

 



 

 

 

 

 

 

 제 3 정규형