문제
다음 테이블들이 모두 만족하는 가장 높은 정규형은?
[테이블A] 학번(PK), 과목코드(PK), 성적, 교수코드 ※ (학번, 과목코드) → 성적, 교수코드 ※ 과목코드 → 교수코드
[테이블B] 사원번호(PK), 부서코드, 부서명, 급여 ※ 사원번호 → 부서코드, 급여 ※ 부서코드 → 부서명
[테이블C] 주문번호(PK), 상품코드(PK), 수량, 단가 ※ (주문번호, 상품코드) → 수량 ※ 상품코드 → 단가
① 제1정규형 ② 제2정규형 ③ 제3정규형 ④ BCNF
정답
1번
해설
테이블A: 복합키(학번, 과목코드) 중 일부인 과목코드만으로 교수코드가 결정되는 부분 함수 종속이 존재하여 2NF 위반. 테이블B: 단일키(사원번호)이므로 부분 함수 종속은 없어 2NF 만족하나, 부서코드→부서명의 이행적 함수 종속으로 3NF 위반. 테이블C: 복합키(주문번호, 상품코드) 중 일부인 상품코드만으로 단가가 결정되는 부분 함수 종속이 존재하여 2NF 위반. 따라서 테이블A와 C가 모두 2NF를 위반하므로, 세 테이블이 공통으로 만족하는 가장 높은 정규형은 제1정규형입니다.