ER/Studio 데이터모델링이란 - 6.정규화

2012.01.04 02:14

문효섭 조회 수:19851

1. 정규화 정의

1972년 E.F CODE 박사에 의해 제안된 이론으로 실세계에서 발생하는 데이터를 수학적인 방법에 의해 구조화시켜 체계적으로 관리할 수 있도록 한 이론 


2. 정규화 필요성

가. 엔티티를 구성하는 속성간의 중복을 제거하여 데이터베이스를 최적화

나. 속성간의 함수종속성에 의해 발생하는 이상현상을 제거 

이상현상                                      내용
입력이상 데이터 입력 시 필요없는 속성까지 입력해야 하는 현상         
수정이상 데이터 수정시 원하지 않는 데이터까지 수정되는 현상
삭제이상 데이터 삭제 시 필요한 데이터까지 삭제되는 현상



3. 정규화 종류

    정규화 종류                            내용 함수종속성
1차 정규화 모든 속성은 원자값을 가짐 
복수의 속성 값을 갖는 속성을 분리
 
2차 정규화 주식별자에 종속적이지 않은 속성의 분리         
부분 종속 속성을 분리
부분함수종속성
3차 정규화 속성에 종속적인 속성의 분리 
이전 종속 속성의 분리
이행함수종속성
보이스-코드 정규화    다수의 주식별자 분리  
4차 정규화 속성간의 다중종속성 제거 다중종속성
5차 정규화 Join 종속성 제거 Join 종속성



1) 1차 정규화

반복되는 속성이나 그루브이 속성을 제거하고, 새로운 엔티티를 추가한 후에 기존의 엔티티와 일대다의 관계를 형성한다. 

하나의 제품에 대해 여러 개의 주문서가 접수된 내용이다. 
정규화1.png

위의 예에서 데이터의 내용이 반복되는 속성으로 인해 일부 속성이 중복된다면 입력, 수정, 삭제시 이상 현상이 발생하게 된다. 

  • 입력 이상 : 주문이 발생되어야만 제품 정보를 등록할 수 있다.
  • 수정 이상 : 마우스의 수량을 9702에서 15000으로 변경하고자 한다면 데이터를 3번 수정해야 한다.
  • 삭제 이상 : 제품번호가 1201인 스피커를 주문한 내역을 삭제하면 제품명, 재고수량 정보도 모두 삭제된다. 

제품에 관련된 정보로부터 반복되어 생성되는 주문 관련 정보를 분리함으로써 1차 정규화를 수행한다. 

   정규화2.png


2) 2차 정규화 

복합식별자로 구성된 경우 해당 엔티티 안의 속성들은 복합식별자 전체에 의존적이어야 한다.

만일 복합식별자 일부에 의존적인 속성이 존재한다면 이를 제거해야 한다.(부분종속속성 제거) 

제품번호 + 주문번호에 종속적인 속성 : 주문수량

주문번호에 종속적인 속성 : 수출여부, 고객번호, 사업자번호, 우선순위  

  • 입력 이상 : 고객정보 입력 시 주문정보도 입력해야 함
  • 수정 이상 : 만약 주문번호 AB345의 우선순위를 1에서 10으로 수정할 경우, 1001+AB345와 1007+AB345를 같이 수정해야 함
  • 삭제 이상 : 주문번호 삭제시 고객번호도 함께 삭제됨 

주문번호에 완전히 종속적인 속성을 분리하여 별도의 엔티티를 구성했다.

정규화3.png

3) 3차 정규화 

한 엔티티 안의 모든 주식별자가 아닌 속성들은 주식별자에 의존해야 한다. 속성에 종속적인(이전종속) 속성이 있다면 분리해야 한다. 

  • 입력 이상 : 새로운 고객 등록 시 주문이 없으면 입력이 안됨
  • 수정 이상 : 한 고객이 여러 번 주문한 경우 고객 정보가 반복적으로 발생. 고객 정보 수정시 여러 개의 데이터를 수정해야 한다.
  • 삭제 이상 : 고객번호 4520이 주문을 취소하면 주문 정보만 삭제되는 것이 아니라 고객 정보도 모두 삭제된다. 

고객번호에 종속적인 속성을 분리하여 별도의 엔티티를 구성했다. 

정규화4.png

4) 보이스-코드 정규화 

데이블에 존재하는 식별자가 여러 개 존재할 경우 식별자가 중복되어 나타나는 현상을 제거 
정규화5.png

주식별자 후보 : 납품업체코드 + 제품코드

                       납품회사명 + 제품코드 

이 중 하나를 선택하면 3차 정규화까지 만족하게 된다. 

  • 입력 이상 : 새로운 사반(주) 에서 새로운 제품을 납품하면 납품업체코드 01과 남품회사명 사반(주)가 모두 입력. 중복 입력으로 인한 문제 발생
  • 수정 이상 : 납품회사명을 수정하려 하면 데이터가 중복되어 존재하므로 여러 로우에 해당하는 데이터를 수정해야 함
  • 삭제 이상 : 제품코드가 B001 이고 납품업체코드가 03인 납품정보를 삭제하면 시그마(주)라는 납품업체 정보가 사라짐 
    정규화6.png
     
번호 제목 글쓴이 날짜 조회 수
공지 [기술 보고서 다운로드] IDC Technology Spotlight: 모델 기반 데이터 설계를 통한 비즈니스 민첩성 확보 방안 관리자 2015.08.24 8533
공지 ER/Studio Team Server(ER/Studio 용 웹포탈) 설치 및 사용자 가이드 손보라 2014.07.15 39731
공지 Repository 설치 및 사용 가이드 손보라 2014.05.27 50500
공지 ER/Studio Data Architect 설치 및 사용자가이드 관리자2 2012.01.27 52906
21 DB Optimizer 에디션 선택 가이드(에디션 별 차이) file 문효섭 2012.03.28 6203
20 데이터아키텍트가 비즈니스 업무부서와 협업하기 위해 알아야 할 5가지 file 문효섭 2012.03.27 6435
19 ERwin이 아닌 ERStudio를 고객이 선택하는 이유 Top 10 file 문효섭 2012.03.27 7240
18 ERwin에서 ER/Studio로의 마이그레이션 가이드 file 문효섭 2012.03.27 6971
17 ER/Studio 웹포탈에서 데이터모델 조회 시 한글이 깨져보일때 file 문효섭 2012.03.07 6643
16 Rapid SQL 사용자 가이드 file 문효섭 2012.01.27 11571
15 DB ChangeManager XE 퀵가이드, 기능 가이드 file 문효섭 2012.01.27 10045
14 DB Optimizer XE 사용자 가이드 file 문효섭 2012.01.27 9462
13 DB Artisan XE 사용자 가이드 file 문효섭 2012.01.27 8631
12 데이터모델링이란 - 11.인덱스설계 문효섭 2012.01.04 10376
11 데이터모델링이란 - 10.뷰설계 문효섭 2012.01.04 8816
10 데이터모델링이란 - 9.반정규화(역정규화) 문효섭 2012.01.04 15534
9 데이터모델링이란 - 8.관계형 테이블 전환 file 문효섭 2012.01.04 13804
8 데이터모델링이란 - 7.실전데이터모델링 이슈 file 문효섭 2012.01.04 13997
» 데이터모델링이란 - 6.정규화 file 문효섭 2012.01.04 19851
6 데이터모델링이란 - 5.관계(Relational) file 문효섭 2012.01.04 36621
5 데이터모델링이란 - 4.식별자 file 문효섭 2012.01.04 17007
4 데이터모델링이란 - 3.속성(Attribute) file 문효섭 2012.01.04 26641
3 데이터모델링이란 - 2.엔티티(Entiry) file 문효섭 2012.01.04 96081