문제
다음 테이블 구조에서 발생하는 정규형 위반과 해결 방법으로 가장 적절한 것은?
[강의평가] 학번(PK), 강의코드(PK), 교수ID, 평점, 교수연구실 ※ 교수ID → 교수연구실 (한 교수는 하나의 연구실만 사용) ※ 강의코드 → 교수ID (한 강의는 한 교수만 담당)
① 1NF 위반 → 반복그룹 제거 및 원자값 분해 ② 2NF 위반 → 강의코드에 부분 종속되는 교수ID, 교수연구실을 별도 테이블로 분리하여 부분 함수 종속 제거 ③ 3NF 위반 → 교수ID를 통한 교수연구실의 이행적 종속 제거 ④ BCNF 위반 → 강의코드가 결정자이지만 후보키가 아닌 종속성 제거
정답
2번
해설
복합 기본키가 (학번, 강의코드)일 때 교수ID는 강의코드에만 종속되므로 부분 함수 종속이 발생합니다. 따라서 먼저 2NF를 위반합니다. 교수연구실 역시 강의코드에 부분적으로 종속되는 구조이므로, 강의 관련 정보를 별도 테이블로 분리하여 부분 함수 종속을 제거하는 것이 적절합니다.