이번 시간에도 역시 최적의 데이터 베이스 구조를 만들기 위한 데이터 모델링에 대해 살펴봅니다.
데이터 모델링 방법 중의 하나인 Normalization을 통해 데이터를 최적화하는 과정을 살펴봅니다.
- Normalization
지난 시간까지 우린 ERD를 그리는 기본적인 방법을 알았습니다. 그러나 ERD는 어디까지나 표기 방법을 뿐 그 전에 우리는 고객으로부터 얻은 데이터를 보다 최적화하기 위해 중복을 최소화하는 과정을 거쳐야 합니다. 바로 이 과정을 Normalization이라고 합니다.
고객으로부터 얻은 데이터를 중복을 최소화하기 위한 Grouping 방법을 Normalization이라고 합니다.다시 말해 Normalization은
- 데이터의 중복을 최소화하여 관계형 테이블(Relational Table) 내의 Grouping을 최적화하고
- 이 과정을 통해 고객 요구 중 누락된 entity나 relationship을 찾아내는 과정을 말합니다.
- Normalization 방법
Normalization은 대개 세 단계를 거칩니다.- 제1단계(First Normalization)
먼저 Entity의 각 Attribute를 살펴보면서 반복되는 Group을 제거합니다. - 제2단계(Second Normalization)
Primary Key와 1:1 연관된 attribute들을 제거합니다. - 제3단계(Third Normalization)
마지막으로 Non-Primary Key 중에서 1:1 관계를 맺는 attribute들을 제거합니다.
이렇게 해서는 이해하기가 좀 힘들죠.
구체적인 예를 통해 살펴 보겠습니다. - 제1단계(First Normalization)
- First Normalization
아래 그림을 자세히 보세요.
(위 그림에서 PK는 Primary Key, FK는 Foreign Key를 나타내는데 PK, FK 등에 대한 자세한 내용은 이후의 강좌에서 자세히 다룰 예정입니다.)붉은 점선 부분을 먼저 보겠습니다.
OR001 5001 김영희 2001/10/10가 두번 연속됩니다.
즉 OR001이라는 주문 번호에 해당되는 상품 번호가 101, 102가 있죠. 그런데 김영희라는 한 사람이 한 번에 주문한 것이 두 가지 상품이므로 주문번호 OR001에 해당되는 고객번호, 고객명, 주문일자 등의 정보가 중복되었습니다.
따라서 이렇게 중복되는 부분을 분리해내는 과정이 바로 제1단계 First Normalization입니다.
장황한 설명보다는 위의 그림을 계속해서 집중해서 보면 어떻게 하나의 테이블이 두 개의 테이블로 나뉠 수 있는지를 이해할 수 있을 것입니다.
요컨데 하나의 테이블에서 중복된 요소들을 1차로 걸러내어야 한다는 것입니다.
그림을 이해하시기 힘든 분이 계실 것 같아 제2단계와 3단계는 다음 시간에 다루기로 하겠습니다. 1단계를 이해하시면 2,3단계는 그리 어렵지 않을테니까요.
즐거운 휴일 보내세요.
이상 한가로운 일요일 오후 동주아빠 손병목이었습니다.
