데이터베이스 기초
수주 표(수주번호, 상품번호, 수량, 고객번호, 고객명)의 기본 키는 {수주번호, 상품번호}이고, 함수 종속은 {수주번호, 상품번호} → 수량, 수주번호 → 고객번호, 고객번호 → 고객명이다. 이 표를 제3정규형까지 정규화한 결과로 올바른 것은?
- A수주명세(수주번호, 상품번호, 수량, 고객번호), 고객(고객번호, 고객명)
- B수주명세(수주번호, 상품번호, 수량), 수주(수주번호, 고객번호), 고객(고객번호, 고객명)
- C수주명세(수주번호, 상품번호, 수량), 수주(수주번호, 고객번호, 고객명)
정답과 해설 보기
정답: B. 수주명세(수주번호, 상품번호, 수량), 수주(수주번호, 고객번호), 고객(고객번호, 고객명)
제2정규형은 제1정규형이면서 기본 키의 일부에만 종속하는 열(부분 함수 종속)이 없는 상태입니다. 수주번호 → 고객번호는 기본 키의 일부인 수주번호만으로 고객번호가 정해지는 부분 함수 종속이므로, 원래 표는 제1정규형이지만 제2정규형이 아닙니다. 수주번호로 정해지는 열을 수주(수주번호, 고객번호, 고객명)로 나누면 제2정규형이 됩니다. 제3정규형은 제2정규형이면서 기본 키 이외의 열을 거쳐 정해지는 열(이행적 함수 종속)이 없는 상태입니다. 수주 표에는 수주번호 → 고객번호 → 고객명이라는 이행적 함수 종속이 남아 있으므로, 고객(고객번호, 고객명)을 다시 나눕니다. 이렇게 하여 수주명세(수주번호, 상품번호, 수량), 수주(수주번호, 고객번호), 고객(고객번호, 고객명)의 3개 표가 제3정규형이 됩니다. 나눈 표는 수주번호나 고객번호로 조인하면 원래 표로 되돌릴 수 있습니다.