본문 바로가기

컴퓨터 지식/Database

데이터베이스 정규화이론 - 제 3정규형

오늘은 데이터베이스 제 3정규화이론에 대해 알아보겠습니다.

제 3정규형의 기본 이론은 다음과 같습니다.

릴레이션이 제 2정규형에 속하고, 기본키가 아닌 모든 속성이 이행적 함수 종속이 되지 않으면

제 3정규형에 속한다.


그렇다면 여기서 말하는 이행적 함수 종속이란 어떤 의미일까요?

어제의 예로 든다면, 고객 아이디를 알면 등급을 알 수 있고,

등급을 알 수 있으면 할인율을 알 수 있는 구조를 예로 들 수 있습니다.

이렇게 구조가 만들어지면 마치 고객 아이디만 알아도 할인율을 알 수 있는 것처럼 보이지만,

실제로도 그렇기도 하지만, 정확한 사실 관계를 따져봤을 경우

할인율이란 고객 아이디에 의해서 결정되는 것이 아니라 등급에 의해서 결정되는 것입니다.


그렇기 때문에 어제의 고객 릴레이션을 분해할 필요가 있는 것입니다.


그렇다면 이 릴레이션을 어떻게 분해해야 할까요?

이미 답은 나와있습니다.

고객아이디에 의해서 등급이 결정되는 것이고,

등급에 따라서 할인율이 결정되는 것이라면,

고객아이디와 등급을 가지고 있는 고객 릴레이션,

등급과 할인율을 가지고 있는 고객등급 릴레이션으로 분해하면 됩니다.



바로 이런 식으로 말이죠.

이렇게 되면 제 3정규형을 만족하는 릴레이션이 완성되게 됩니다.

실제로 제 3정규형부터는 데이터베이스 설계에서 많이 사용되는 방법 중 하나입니다.

그 다음은 BCNF인데, 

BCNF는 다음에 살펴보겠습니다.