티스토리 뷰

정규화

데이터 모델링에서 정규화(Normalization)는 가장 기초적이지만 필수적으로 이뤄져야 하는 작업이다. 

성능상 문제로 반정규(Denormalization)를 하기도 하지만, 정규화가 왜 필요한지는 필수적으로 알아야 한다.

 

예를들어서, 연락처 정보를 저장하는 데이터베이스를 구축한다고 생각해보자. 

아래와 같이 구축할 수 있다. 


1. 제 1 정규형 : 모든 속성은 받드시 하나의 값을 가져야 한다.

고객 연락처 데이터

* 문제 발생

- 연락처 정보에서 집전화, 핸드폰 번호 구별 어려움

- 원하는 속성 값을 추출하기 어려움

- tel을 검색조건으로 검색할 경우, WHERE TEL LIKE '%011-1234-3333%' <- 이런식으로 하여 성능상 문제가 생김

 

제1 정규형을 위반한다면 개발의 복잡성은 증가할 것이고, 연락처(tel)의 의미가 퇴색된다. 장기적으로 불않정한 데이터 구조를 양산한다. 따라서 아래와 같이 문제를 해결한다.