정규화는 데이터 중복성(redundancy)과 함수 종속성(functional dependency)을 최소화하기 위한 프로세스이다.
이는 다음과 같은 이상현상을 일으킨다.
1. 이상(Anomaly)
- 삽입 이상(Insertion anomaly) : 데이터를 삽입하기 위해 불필요한 데이터를 함께 추가해야만 하는 현상
- 삭제 이상(Deletion anomaly) : 데이터 삭제 시 원하지 않는 데이터까지 삭제되는 현상
- 갱신 이상(Update anomaly) : 중복 데이터를 갱신 시 일부만을 갱신하여 데이터 불일치가 발생하는 현상
2. 함수 종속성(Functional dependency)
: 속성 집합 A가 속성 집합 B를 결정할 때 B가 A에 함수 종속되어있다고 표현한다.
- 부분 함수 종속(Partial functional dependency) : B가 A의 부분 집합에 종속되어있는 경우
- 완전 함수 종속(Full functional dependency) : B가 A 전체에 대해 종속되어있는 경우. 일반적으로 함수 종속성은 이를 의미.
3. 정규화(Nomalization)
- 제 1 정규형(First normal form) : 모든 속성 값이 원자성(atomic)을 가지도록 구조화
- 제 2 정규형(Second normal form) : 모든 속성 값이 기본키와 완전 함수 종속 관계에 있도록 구조화, 즉 부분 함수 종속성을 제거
- 제 3 정규형(Third normal form) : 기본키에 대한 이행적 함수 종속을 제거 ( A=B, B=C then A=C )
- 보이스-코드 정규형(Boyce-Codd normal form) : X->Y일 때 Y가 X의 부분 집합이거나 X가 수퍼키일 때 BCNF라고 한다.
( 즉, 모든 결정자는 후보키여야 한다. )
'Database' 카테고리의 다른 글
트랜잭션( Transaction ) (0) | 2021.08.30 |
---|---|
무결성 제약조건( Integrity constraint ) (0) | 2021.08.29 |
데이터베이스( Database ) (0) | 2021.08.29 |
인덱스( Index ) (0) | 2021.08.29 |
SQL( Structured Query Language ) (0) | 2021.08.27 |