정규화는 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스이다.
[Database] 정규화(Normalization) 쉽게 이해하기
정규화의 목표는 테이블 간의 중복된 데이터를 허용하지 않는다는 것이다.
중복된 데이터를 허용하지 않음으로써 무결성을 유지할 수 있으며, DB의 저장 용량을 줄일 수 있다.
제 1 정규화
- 테이블의 Colum이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것
여기서 예시로 이름과 취미가 있는데 취미가 여러개 있는 사람을 따로 나누어서 이름 취미 하나씩 테이블로 만드는 것을 예시로 했다.
제 2 정규화
- 제 1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것이다.
- 완전 함수 종속 : 기본키의 부분 집합이 결정자가 되어선 안된다.
제 3 정규화
- 제 2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것
- A → B, B → C를 성립할때 A → C가 성립되는 것을 의미함
BCNF 정규화
- 제 3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것이다.
도움되는 자료
데이터베이스 정규화 설명 - Office