이전
데이터베이스 정규화
이상(Anomaly) 현상
- 정규화를 거치지 않은 데이터베이스에서 발생할 수 있는 현상
- 데이터들이 불필요하게 중복되어 릴레이션 조작에 예기치 못한 문제 발생
- 애트리뷰트들의 종속관계를 하나의 릴레이션에 표현하기 떄문에 발생
이상 종류
- 삽입 이상(Insertion Anomaly)
- 데이터 삽입 시 의도와 다른 값들도 삽입됨
- 삭제 이상(Delete Anomaly)
- 데이터 삭제 시 의도와 다른 값들도 연쇄 삭제됨
- 갱신 이상(Update Anomaly)
- 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생
정규화 목적
- 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지
- 각 릴레이션에 중복된 종속성을 여러개의 릴레이션에 분할
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함
- 데이터 삽입 시 릴레이션을 재구성할 필요성 감소
- 효과적인 검색 알고리즘 생성 가능
정규화 과정
1NF(First Normal Form)
1NF를 만족할려면 도메인이 원자값 이어야 한다.
2NF(Second Normal Form)
2NF를 만족하려면 부분적 함수 종속을 제거해야 한다.
즉 완전 함수 종속이 되도록 해야 한다.
3NF(Third Normal Form)
3NF를 만족하려면 이행적 함수 종속을 제거해야 한다.
A->B 이고 B->C일 때 A->C 인 관계
BCNF(Boyce and Codd Normal Form)
BCNF를 만족하려면 결정자이면서 후보키가 아닌 것를 제거해야 한다.
4NF(Fourth Normal Form)
4NF를 만족하려면 다치 종속성을 제거해야 한다.
5NF(Fifth Normal Form)
5NF를 만족하려면 조인 종속성을 제거해야 한다.