본문 바로가기

CS?/데이터베이스보안실습

[복습]데이터베이스 정규화 -4 (4NF, 5NF)

반응형

이번 포스팅은 데이터베이스 정규화의 남은 단계인 제4정규형과 제5정규형을 다룬다.

 

 

1.제4정규형(4NF)

 -종속성들의 집합에 의해 암시되는 모든 종속성들에 대해 모든 의미있는 다치 종속성 X↠Y에서, X가 릴레이션 스키마 R의 슈퍼키이면 릴레이션 스키마는 종속성들의 집합에 대한 제 4정규형이다. 이 때 종속성들의 집합은 함수적 종속성과 디치 종속성을 포함한다.

 

즉, 애트리뷰트가 값이 원자값이 아닌 값을 여러개 갖는 릴레이션을 분해하여 애트리뷰트가 원자값을 갖도록 하는 정규형이다.

(제4규형은 이전 단계인 BCNF를 만족한 상태여야 한다.)

 

여기서 다치 종속성은 무엇일까?

-다치종속: 두개의 독립된 애트리뷰트가 1:N 관계로 대응하는 관계로, ''화살표로 종속성을 표시한다.

 

여기 인터넷 서점 회원정보 릴레이션이 있다.

회원번호 이름 주문 도서
121212 김애용 라푼젤
131313 박꿀꿀 잠자는 숲속의 공주, 백설공주
141414 이멍멍 인어공주, 미녀와 야수

관계 데이터베이스는 기본적으로 애트리뷰트가 '원자값(값 하나)'를 가질 수 있다.

하지만, 회원번호가 '131313', '141414'인 투플의 '주문 도서' 애트리뷰트에는 값이 하나가 아니다.

이런 경우, 회원번호와 주문 도서 애트리뷰트는 다치 종속성 관계이고, 회원번호↠주문 도서로 나타낼 수 있다.

 

위 표는 다음과 같이 나타낼 수 있겠다.

회원번호 이름 주문 도서
121212 김애용 라푼젤
131313 박꿀꿀 잠자는 숲속의 공주
131313 박꿀꿀 백설공주
141414 이멍멍 인어공주
141414 이멍멍 미녀와 야수

하지만, 불필요하게 회원번호와 이름 애트리뷰트가 중복되는 값이 만들어진다는 단점이 있다.

 

따라서 이러한 다치 종속성 문제를 해결하기 위해 제 4정규화를 진행하는 것이다.

 

위에 있는 릴레이션을 제4정규화를 진행하면 다음과 같이 두개의 릴레이션으로 분해할 수 있다.

회원번호 이름
121212 김애용
131313 박꿀꿀
141414 이멍멍
회원번호 주문 도서
121212 라푼젤
131313 잠자는 숲속의 공주
131313 백설공주
141414 인어공주
141414 미녀와 야수

 

 

2. 제5정규형(5NF)

 -릴레이션 스키마가 함수적 종속성, 다치 종속성, 조인 종속성들의 집합의 관점에서 모든 의미있는 조인 종속성에 대하여 모든 릴레이션 스키마의 애트리뷰트가 릴레이션의 슈퍼키이면, 릴레이션 스키마는 종속성 집합에 대해 제5정규형에 속한다고 한다.

 

즉,

1)여러개의 릴레이션으로 한 릴레이션을 분해했을 때, 모든 나눠진 릴레이션이 원래 릴레이션의 슈퍼키이며

2)릴레이션을 더 분해할 경우, 기존 릴레이션의 정보가 손실되기 때문에 더 이상 릴레이션이 분해가 될 수 없는 경우를 말한다.

 

위에 종속성 집합에서 '조인 종속성'은 무엇일까?

-릴레이션 스키마의 모든 올바른 릴레이션 상태가 분해될 때, 비부가적 조인 분해, 무손실 분해를 가져야 함을 나타낸다.

 


지금까지 데이터베이스 정규화 과정을 살펴보았다.

보통은 3NF, BCNF까지 만족해도 정규화 과정이 되었다 하는 경우가 많다.

 

따라서 데이터베이스 설계, 운영 과정에 맞게 정규화 과정을 따르면 될 것이다.


피드백은 언제나 대환영입니다 :)

반응형