이상현상(Anomaly)
- 데이터의 중복으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
- 하나의 릴레이션에 두 개 이상의 속성들을 혼합하여, 즉 정규화 되지 않은 경우 데이터의 중복이 원인이 되어 발생함
- 갱신이상 : 릴레이션R에서 특정 속성값 갱신시 - 중복 저장되어 있는 속성값 중 하나만 갱신하고, 나머지는 갱신하지 않아서 발생하는 데이터의 불일치 현상(Data Incosistency)
- 삭제이상 : 릴레이션R에서 특정 튜플을 삭제할 경우 - 원하지 않는 정보까지도 삭제되는 현상
- 삽입이상 : 릴레이션R에서 특정 튜플을 삽입할 경우 - 원하지 않는 불필요한 정보까지도 삽입해야 하는 현상
정규화
- 이상현상을 발생시키는 속성간의 종속성, 중복성을 제거하고 무결성을 보장하기 위해 릴렝션을 분해하는 과정
- 이상현상을 야기하는 Attribute간의 종속 관계를 제거하기 위해 Relation을 작은 Relation으로 무손실 분해하는 과정
- 목적
- 데이터의 중복 최소화 : 데이터 저장공간의 최소화
- 이상현상 발생 방지 : 정보의 불일치 및 손실의 위험 최소화
- 데이터 구조의 안정성 유지 : 향후 새로운 요구에 유연하게 대처
- 종속성 제거 : 데이터의 일관성과 무결성 보장
- 종류
| 종류
| 함수적 종속성 | 키워드 |
| --- | --- | --- |
| 1차 정규화
| 완전함수 종속성 | 속성의 원자화. 다중값 및 반복되는 속성을 제거 |
| 2차 정규화
| 부분함수 종속성 제거 | - 1차 정규화를 만족하고 Relation의 기본키가 아닌 속성들이 완전함수적으로 종속할 경우
- 복합키에서 발생, 개별키에 의한 종속 발생 시 |
| 3차 정규화
| 이행함수 종속성 제거 | - 2NF를 만족하고 기본키 외의 속성들 간에 함수적 종속성을 가지지 않는 경우
- 일반 속성들에서 종속성이 발생 시 |
| BCNF | 결정자 함수 종속성 제거 | - Relation의 모든 결정자가 후보키일 경우
- 일반 속성에 의해 기본키가 종속성 발생 시 |