데이터베이스

[데이터베이스] 정규화(1)

재담 2022. 3. 9. 21:58

정규화(Normalization)

정규화란 상호 종속적인 관계를 갖는 특성을 이용하여 무손실 분해하는 과정이다. 최종 목적은 이상 현상 발생 가능성을 줄이는 것이다.

 

제1 정규형

제1 정규형은 모든 속성의 도메인이 원자 값(Atomic Value)만으로 되어 있는 정규형이다.

 

출처 : https://goodgid.github.io/DB-Normalization(1)/

 

위 그림에서 '주문 목록' 테이블에서는 하나의 제품에 여러 개의 주문 관련 정보가 발생하고 있다. 따라서 '주문 목록' 테이블은 제1 정규형이 아니다. 제1 정규화 과정으로 생성된 '제품주문' 테이블의 기본키는 (주문번호, 제품번호)이고 다음과 같은 함수적 종속이 존재한다.

주문번호, 제품번호 --> 고객번호, 주소, 주문수량
주문번호 --> 고객번호, 주소
고객번호 --> 주소

 

제2 정규형

제2 정규형은 제1 정규형을 만족하고 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다.

 

출처 https://goodgid.github.io/DB-Normalization(1)/

 

위 그림에서 제2 정규화 과정을 거쳐 생성된 '주문' 테이블의 기본키는 '주문번호'이다. 그리고 '주문' 테이블에서는 아직도 다음과 같은 함수적 종속들이 존재한다.

주문번호 --> 고객번호, 주소
고객번호 --> 주소

Reference