연습 2의 핵심
복합키의 일부를 떼어내 2NF로, 남은 비키 종속을 떼어내 3NF로 간다
이 예제는 한 번에 끝나지 않습니다. 먼저 사원번호 → 부서코드를 분리해 부분 함수 종속을 없애고, 그 다음 부서코드 → 부서명을 분리해 이행 함수 종속까지 제거해야 합니다.
읽는 순서
원본 R 2NF 분해 3NF 완료
출발
원본 테이블은 1NF까지만 확인된다
사원번호 프로젝트명 부서코드 부서명 역할
PK: {사원번호, 프로젝트명}
{사원번호, 프로젝트명} → 역할 사원번호 → 부서코드 부서코드 → 부서명
1NF 통과
각 속성은 원자값이므로 1NF는 만족합니다. 다음에는 복합키의 일부만 따라가는 속성이 있는지 봅니다.
2NF
사원번호만으로 결정되는 속성이 남아 실패
부분 함수 종속 2NF 위반
사원번호 → 부서코드
복합 기본키 전체가 아니라 사원번호 일부만으로 부서코드가 정해집니다. 그래서 현재 정규형은 아직 1NF입니다.
부분 종속을 떼어내면 2NF 분해
배정
(사원번호, 프로젝트명, 역할)
사원
(사원번호, 부서코드, 부서명)
3NF
사원 테이블의 이행 종속까지 분리하면 완료
이행 함수 종속 3NF 위반
부서코드 → 부서명
사원 테이블 안에서 비키 속성인 부서코드가 또 다른 비키 속성 부서명을 결정하므로 3NF를 아직 만족하지 못합니다.
중간 속성을 분리하면 최종 3NF
배정
(사원번호, 프로젝트명, 역할)
사원
(사원번호, 부서코드)
부서
(부서코드, 부서명)