- 2정규형
- 후보 식별자 속성과 일반 속성 간의 종속성에 의해 수행된다.
- 릴레이션의 모든 속성이 후보 식별자 전체에 종속적이면 2정규형이다.
- 모든 비식별자 속성은 후보 식별자 속성에 완전 함수 종속(Fully Functional Dependency)돼야 한다. 부분 함수 종속으로 말미암아 발생한 중복 데이터를 제거하는 것이 2정규화다.
- 만약 일반 속성 중에 후보 식별자 전체에 종속적이지 않고 후보 식별자를 구성하는 속성 일부에 종속(Partial Functional Dependency)적인 속성이 있다면 중복이 발생했으므로 그 속성을 릴레이션에서 분리해야 2정규형이 된다.
- 위 그림에서 C속성은 후보 식별자(주 식별자)의 일부분인 B속성에만 종속돼 부분 함수 종속(Partial Functional Dependency) 됐으므로 아래 그림과 같이 B속성을 주 식별자로 하는 릴레이션을 추가해 두 개의 릴레이션으로 분리해야 한다.
[ 2정규형 릴레이션 ]
- 위 모델에서 일반속성인 상품명과 단가는 주 식별자인 전체(주문번호, 상품코드)에 종속되지 않고 상품코드에만 종속(부분 함수 종속)된다. 이는 2정규형에 어긋나므로 아래 모델과 같이 상품명과 단가는 주문상품 엔터티에서 제외하고 상품코드를 주 식별자로 하는 상품 엔터티를 상위 엔터티로 생성해야(정규화) 한다.
[ 2정규형 모델과 릴레이션 ]
- 최근 아래 모델과 같이 주문상품 엔터티에서 상품명으로 조회하는 일이 빈번한 경우 성능을 위해 상품명을 주문상품에 추가로 배치하여(중복 속성을 사용하여) 구성하는 경우가 존재 함
- 중복을 제거하는 것이 데이터 모델링의 기본적인 원칙이라는 것을 유념해야 한다.
'IT 와 Social 이야기 > Relational Data Modeling 프리미엄 가이드 - 김기창' 카테고리의 다른 글
04 정규화 (Normalization) 5 (1) | 2019.10.21 |
---|---|
04 정규화 (Normalization) 4 (0) | 2019.10.21 |
04 정규화 (Normalization) 2 (1) | 2019.09.23 |
04 정규화 (Normalization) (0) | 2019.09.15 |
03 개념 모델 & 논리 모델 & 물리 모델 (0) | 2019.09.14 |