정규화란 관계형 데이터베이스에서 중복을 최소화하도록 데이터를 구조화하는 것입니다.
삽입, 삭제, 갱신 이상(의도하지 않은 값이 삽입, 삭제되거나 일부만 갱신 등)과 같은
이상현상을 해결하기 위하여 정규화를 진행합니다.
[ 정규화 과정 ]
제 1 정규화> 중복되는 그룹 제거 (원자값 만으로 구성)
(a-영어-ㄱ학교,ㄴ학교 -> 학교 두 개로 분리)
제 2 정규화> 부분적 함수 종속 제거 (완전 함수적 종속)
(a-영어-ㄱ학교/b-영어-ㄴ학교에서 영어제거 후 새로운 테이블 생성하여 분리)
제 3 정규화> 이행적 함수 종속 제거
(기본키 이외의 다른 컬럼이 다른 컬럼을 결정할 수 없게 X->Y/Y->Z로 분리)
---보통 이쯤 정규화 되었다고 말합니다.---
BCNF(Boyce-Codd) 정규화> 결정자가 후보키가 아닌 함수 제거
제 4 정규화> 다중 값 종속성 제거
제 5 정규화> Join 종속성 제거
* 분리하다보면 조인연산이 많아져 응답시간이 느려질수 있습니다,
이때 반정규화를 통해 분리할 수 있습니다.
728x90
반응형