Transitive FD
키가 아닌 속성이 다른 속성을 결정하면 중복이 반복된다
학번이 학과코드를 결정하고, 학과코드가 학과명을 결정하면 학생 테이블
안에 학과 사실이 반복 저장됩니다.
Key
학번이 학생 행을 식별
Middle
학과코드가 학과 사실을 결정
Risk
학과명 변경 시 여러 행 수정
1
기본 결정
student_id가 department_id를 결정합니다.
2
중간 속성
department_id가 department_name을
결정합니다.
3
3NF 위반
비키 속성이 다른 비키 속성을 결정해 중복을 만듭니다.
결정자
종속자
저장 위치
문제
학번
학과코드
student 행마다 보관
학생의 소속 식별에는 필요
학과코드
학과명, 학과장
student 행에 반복되면 안 됨
갱신 이상과 불일치 발생
분해 후
department 테이블
학과 사실은 한 곳에 저장
student는 FK만 참조
갱신 이상
학과명이 바뀌면 같은 학과 학생 행을 모두 수정해야 합니다.
분해 방향
department를 분리하고 student는 department_id만 둡니다.
3NF 기준
비주요 속성이 다른 비주요 속성을 결정하지 않아야 합니다.