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