본문 바로가기
Database

정규화( Normalization )

by 냉동커피 2021. 8. 29.

정규화는 데이터 중복성(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