개요
장점
이상 현상 제거
확장에 용의(구조를 변경하지 않아도 되거나 일부만 변경)
어플리케이션과의 영향 최소화
단점
릴레이션 분해로 인한 join 연산의 수 증가
쿼리 응답 시간 증가 혹은 감소
성능 저하 시 반정규화 고려
이상 현상(anomaly)
삽입 이상(insertion anomaly)
null 혹은 의도와는 다른 값을 입력해야 하는 현상
갱신 이상(update anomaly)
중복 데이터의 일부만 갱신되는 데이터 불일치 현상
삭제 이상(deletion anomaly)
의도와는 다른 값까지 연쇄적으로 삭제되는 현상
종속성
함수적 종속성(functional dependency)
a, b 컬럼에 대해 a 값에 의해 b 값이 정해지는 관계
a를 결정자, b를 종속자 부름
a -> b로 표현
완전 함수적 종속성(full functional dependency)
부분 함수적 종속성(partial functional dependency)
기본키 중 일부에만 종속
a~d 컬럼 중 a, b가 기본키일 때 c는 a, b에 종속되고 d는 b에만 종속되는 경우
a, b, c와 b, d로 테이블을 분해
이행적 함수적 종속성(transitive functional dependency)
a -> b, b -> c일 때 a -> c가 성립
a, b와 b, c로 테이블을 분해
다치 종속성(multi-valued dependency)
최소 3개의 컬럼이 존재하고 a -> b일 때 하나의 a값에 여러개의 b값이 존재하며 b와 c가 독립적
a, b와 a, c로 테이블을 분해
조인 종속성(join dependency)
하나의 테이블을 n개의 테이블로 분해했다가 다시 결합할 수 있는 경우
조인 연산을 했을 때 손실이 없어야 한다
정규형
제 1 정규형(1NF)
각 컬럼은 유일한 이름을 가져야 한다
각 컬럼은 원자 값을 가져야 한다
하나의 컬럼은 같은 타입을 가져야 한다
컬럼의 순서가 상관없어야 한다
제 2 정규형(2NF)
제 1 정규형을 만족해야 한다
모든 컬럼은 부분 함수적 종속성이 없어야 한다
제 3 정규형(3NF)
제 2 정규형을 만족해야 한다
기본키를 제외한 컬럼들간의 이행적 함수적 종속성이 없어야 한다
BCNF(Boyce-Codd Normal Form)
제 3 정규형을 만족해야 한다
후보키 집합에 없은 컬럼이 결정자가 되어서는 안된다
제 4 정규형(3NF)
BCNF를 만족해야 한다
다치 종속성이 없어야 한다
제 5 정규형(3NF)
제 4 정규형을 만족해야 한다
조인 종속성이 없어야 한다
Tags:
1NF ,
2NF ,
3NF ,
4NF ,
5NF ,
anomaly ,
BCNF ,
Boyce-Codd Normal Form ,
deletion anomaly ,
full functional dependency ,
functional dependency ,
insertion anomaly ,
join dependency ,
multi-valued dependency ,
normalization ,
partial functional dependency ,
transitive functional dependency ,
update anomaly
Categories:
database
Updated: January 27, 2023