테이블 간 데이터 중복을 줄이고, 잘못된 종속 관계로 인한 데이터베이스 이상 현상 해결을 위해 테이블을 여러 개로 분리하는 과정.
정규화된 정도는 정규형(NF)로 표현하며 제 1~3정규형, BCNF 정규형을 알아두면 된다.
테이블 컬럼이 더 이상 분해될 수 없는 atomic(하나의)값 만으로 구성되도록 테이블을 분리시킨 것.
예제로 보면 이해가 빠르다.
제1정규형 + 기본키의 부분집합 키가 결정자가 되어서는 안되도록 테이블을 분리시킨 것.
기본키가 복합키(키1, 키2)로 묶여있을 때, 두 키 중 하나의 키만으로 다른 컬럼을 결정지을 수 있으면 안된다.
제2정규형 + 기본키가 아닌 속성들은 기본키에만 의존하도록 테이블을 분리시킨 것.
즉, A->B, B->C 면 A->C가 성립하는 이행적 함수 종속이 생기지 않도록 테이블을 분리하는 것을 말함.
제3정규형 + 결정자가 후보키가 아닌 경우를 제거하여 모든 결정자가 후보키인 상태가 되도록 테이블을 분리시킨 것.
함수 종속관계 'X->Y'일 때 X는 결정자, Y는 종속자.
Reference
https://gyoogle.dev/blog/computer-science/data-base/Normalization.html
면접을 위한 CS전공지식 노트 p.200-205