정규화

3NF 위반 조건

3NF는 비키 속성이 다른 비키 속성을 거쳐 설명되는 구조를 끊어, 한 사실이 한 장소에만 저장되도록 맞춘다.
판정 순서
종속
분리
후보키가 아닌 결정자가 있으면 테이블을 나누어 중복 갱신을 막는다.
위반 예
수강 테이블이 학과명을 함께 저장
학번 후보키 또는 기본 식별자
학과코드 비키 속성이지만 학과명을 결정
학과명 학과코드가 바뀌면 함께 갱신
3NF 해소
사실을 두 관계로 분리
수강 학번, 과목, 학과코드
학과 학과코드, 학과명
효과 학과명 변경은 한 행만 수정
검사 통과 기준 위반 신호
식별자 모든 행을 후보키로 구분한다. 같은 사실을 여러 행에 반복한다.
결정자 속성을 결정하는 값이 후보키다. 비키 속성이 다른 비키 속성을 결정한다.
갱신 한 사실은 한 테이블에서만 바뀐다. 이름 변경이 여러 행 수정으로 번진다.
핵심 문장
3NF 위반은 후보키가 아닌 속성이 또 다른 비키 속성을 설명하는 순간 생긴다. 그래서 중간 결정자를 별도 관계의 키로 세운다.