정규화(Normalization)

최민수·2023년 1월 2일
0

CS 전공지식

목록 보기
2/36

정규화란?

테이블 간 데이터 중복을 줄이고, 잘못된 종속 관계로 인한 데이터베이스 이상 현상 해결을 위해 테이블을 여러 개로 분리하는 과정.

목적

  • 같은 의미를 표현하는 테이블이라도 데이터의 중복을 없애고, 무결성을 지키고, 이상 현상을 방지하고, 테이블 구성을 논리적이고 직관적으로 할 수 있으며, 데이터베이스 구조 확장에 용이하게 하기 위함임.

정규화된 정도는 정규형(NF)로 표현하며 제 1~3정규형, BCNF 정규형을 알아두면 된다.


제1정규형

테이블 컬럼이 더 이상 분해될 수 없는 atomic(하나의)값 만으로 구성되도록 테이블을 분리시킨 것.

예제로 보면 이해가 빠르다.


제2정규형

제1정규형 + 기본키의 부분집합 키가 결정자가 되어서는 안되도록 테이블을 분리시킨 것.

기본키가 복합키(키1, 키2)로 묶여있을 때, 두 키 중 하나의 키만으로 다른 컬럼을 결정지을 수 있으면 안된다.


제3정규형

제2정규형 + 기본키가 아닌 속성들은 기본키에만 의존하도록 테이블을 분리시킨 것.

즉, A->B, B->C 면 A->C가 성립하는 이행적 함수 종속이 생기지 않도록 테이블을 분리하는 것을 말함.


BCNF 정규형

제3정규형 + 결정자가 후보키가 아닌 경우를 제거하여 모든 결정자가 후보키인 상태가 되도록 테이블을 분리시킨 것.

함수 종속관계 'X->Y'일 때 X는 결정자, Y는 종속자.



Reference
https://gyoogle.dev/blog/computer-science/data-base/Normalization.html
면접을 위한 CS전공지식 노트 p.200-205

profile
CS, 개발 공부기록 🌱

0개의 댓글