정규화개요
태그 :
- 개념
- 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위한 과정이며 속성들간의 종속성을 분석하여 기본적으로 하나의 종속성이 하나의 릴레이션으로 표현되도록 분해해 나가는 과정으로 이상현상을 야기하는 애트리뷰트 간의 종속관계를 제거하기 위해 릴레이션을 작은 릴레이션으로 무손실 분해하는 것
1.Anormaly 현상을 해결하기 위한 무손실 분해의 원리, 정규화의 개요
가. 정규화(Normalization)의 정의
-관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위한 과정
-속성(Attribute)들간의 종속성(Dependency)을 분석하여 기본적으로 하나의 종속 성이 하나의 릴레이션(Relation)으로 표현되도록 분해해 나가는 과정
-이상 현상(Anomaly)을 야기하는 Attribute 간의 종속 관계를 제거하기 위해 Relation을 작은 Relation으로 무손실 분해하는 과정
나. 정규화의 필요성
-중복의 제거로 저장 공간의 최소화
-종속성 삭제로 일관성 및 무결성 보장
-자료의 삽입, 갱신 및 삭제에 따른 이상현상(Anormaly) 제거
-데이터 신규 발생시 DB 재구성의 필요성을 감소(유연한 구조)
-연관관계 이용한 관리 및 이해 편리
다. 정규화의 원칙
구 분 |
설 명 |
정보의 무손실 |
분해된 Relation이 표현하는 정보는 분해되기 전의 정보를 모두 포함하고 있어야 하며, 보다 더 바람직한 구조여야 함 |
데이터 중복성 감소 |
중복으로 인한 이상 현상의 제거 |
분리의 원칙 |
하나의 독립된 관계성은 하나의 독립된으로 분리하여 표현 |
2. 함수종속성의 개념 및 절차
가. 함수종속성(FD: Functional Dependency)의 개념
-데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭
-이때 기준값을 결정자(determinant)라 하고 종속되는 값을 종속자/의존자 (dependent)라고 함
-부분함수종속(partial functional dependency) : 한 개 또는 그 이상의 속성이 Primary key(PK) 의 일부분에 함수적으로 종속하는 것
나. 종속성의 유형
유 형 |
내 용 |
|
함수적 종속성 (Functional Dependency) |
완전함수종속성 |
Full Functional Dependency 릴레이션의 한 속성 X가 다른 속성 Y를 결정지을 때 Y는 X에 함수적으로 종속됨 |
부분함수종속성 (2NF) |
X->Y에서 Y가 X의 부분집합에 대해서도 함수적으로 종속됨 |
|
이행함수적종속성 (3NF) |
릴레이션 R에서 속성 A->X이고, X->Y이면 A->Y임 |
|
결정자함수적종속성 (BCNF) |
함수적 종속이 되는 결정자가 후보키가 아닌 경우, 즉 X->Y에서 X가 후보키가 아님 |
|
다중값 종속성 (Multivalued Dependency : 4NF) |
한 관계에 둘 이상의 독립적 다중값 속성이 존재하는 경우 X, Y, Z 세 개의 속성을 가진 릴레이션 R에서 속성 쌍 (X, Y) 값에 대응하는 Y값의 집합이 X값에만 종속되고 Z값에는 독립이면 Y는 X에 다중 값 종속된다고 하고 X->>Y로 표기 |
|
결합 종속성 (Join Dependency : 5NF) |
관계 중에서 둘로 나눌 때에는 원래의 관계로 회복할 수 없으나셋 또는 그 이상으로 분리시킬 때원래의 관계를 복원할 수 있는 특수한 경우임 |
3. 정규화의 절차 및 유형
가. 정규화(Normalization)의 절차
- 정규화는 데이터들의 함수의 종속성을 이용하여 데이터 모델링을 최적화하는 과정을 의미함
나. 정규화의 유형
구분 |
단계 |
내용 |
특성 |
기초적 정규화 |
1차 정규화 (1NF) |
반복되는 속성 제거 R에 속한 모든 도메인이 원자값(atomic value)만으로 되어있는 경우 |
데이터간 중복성이 강함 데이터간 결합성이 강함 |
2차 정규화 (2NF) |
부분함수 종속성 제거 릴레이션 R이 1NF이고 릴레이션의 기본키가 아닌 속성들이 기본키에 완전히 함수적으로 종속할 경우 결정자가 2개 이상일 때, 2개 중에서 하나의 결정자에 의해서만 함수종속성인 경우 |
||
3차 정규화 (3NF) |
이행함수 종속성 제거 릴레이션 R이 2NF이고 기본키가 아닌 모든 속성들이 기본키에 대하여 이행적 함수 종속성(Transitive FD)의 관계를 가지지 않는 경우, 즉 기본키 외의 속성들간에 함수적 종속적을 가지지 않는 경우 종속자들 간의 함수종속성이 있는 경우 |
||
BCNF (Boyce/Codd NF) |
결정자함수 종속성 제거 릴레이션 R의 모든 결정자가 후보키일 경우 결정자들 간의 함수적 종속이 있는 경우 |
||
진보적 정규화 |
4차 정규화 (4NF) |
다중값 종속성 제거 릴레이션 R에 MVD A ->> B가 존재할 때 R의 모든 애트리뷰트들이 이 A에 함수종속 (즉, R의 모든 애트리뷰트 X에 대해 A->X이고 A가 후보키)이면 릴레 이션 R은 제4정규형(4NF)에 속한다. BCNF를 만족시키면서 다중값 종속을 포함하지 않는 경우 |
|
5차 정규화 (5NF) |
결함 종속성 제거 릴레이션 R에 존재하는 모든 조인 종속(JD)이 릴레이션 R의 후보키를 통해서만 성립된다면 릴레이션 R은 제5정규형(5NF) 또는 PJ/NF(Project-Join Normal Form)에 속한다. 4NF를 만족시키면서 후보키를 통해서만 조인 종속이 성립되는 경우 |
종속성 구분 |
주 요 개 념 |
|
함수적 종속성 (FD) |
함수적 종속성 (Functional Dependency) |
릴레이션의 한 속성 X가 다른 속성 Y를 결정지을 때 Y는 X에 X는 결정자(determinant), Y는 종속자(dependent) |
부분함수적 종속성 (2NF) |
X->Y에서 Y가 X의 부분집합에 대해서도 함수적으로 종속 |
|
이행함수적 종속성 (3NF) |
릴레이션 R에서 속성 A->X이고 X->Y이면 A->Y 임 |
|
결정자 함수적 종속성 (BCNF) |
함수적 종속이 되는 결정자가 후보키가 아닌 경우 즉, X->Y에서 X가 후보키가 아님 |
|
다중값 종속성 (MVD:Multi-Valued Dependency, 4NF) |
한 관계에 둘 이상의 독립적 다중값 속성이 존재하는 경우 X, Y, Z 세 개의 속성을 가진 릴레이션 R에서 속성 쌍 (X, Z) |
|
조인 종속성 (JD:Join Dependency, 5NF) |
관계 중에서 둘로 나눌 때는 원래의 관계로 회복할 수 없으나, |