데이터베이스: 정규화
2023-06-11 00:08:00
- 제1정규형: 한 컬럼에 하나의 데이터만 존재
- 제2정규형: 현재 테이블의 주제와 관련 없는 컬럼이 다른 테이블로 분리돼있어야 함 *Partial Dependency를 제거, 부분 함수 종속 제거 ex) 제품과 주문내역 분리
- 주의할 점: 분해된 릴레이션들을 자연조인을 통해 분해 전의 릴레이션으로 원복 가능해야함. 이렇게 분해하는 것을 무손실 분해라고 함
- 제3정규형: 제2정규형을 지키면서 일반 컬럼에 종속된 컬럼도 제거 (부분 함수 종속 뿐 아니라 이행적 함수 종속성도 모두 제거)
- 보이스/코드 정규형(BCNF): 강한 제3정규형
- 후보키가 아닌 결정자가 존재하지 않음
- 필요성: 하나의 릴레이션에 여러 개의 후보키 존재하면 이상현상 발생 여지 존재
- 일반적으로 제3정규형이나 보이스/코드 정규형에 속하도록 분해