본문 바로가기
Computer Science/Database

6장 정규화

by 인 체리 2022. 7. 16.

학습 목표 

  • 정규화의 필요성과 이상 현상의 의미 이해
  • 정규화를 수행하기 위해 함수 종속성의 개념 이해
  • 정규형의 유형과 관계를 이해하고, 실제 예를 통해 정규화 과정 연습

이상(anomaly) 현상

 - 불필요한 data 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용

   1) 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제

   2) 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제

   3) 삭제 이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제

 

정규화

 - 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정

 - 함수적 종속성을 판단하여 정규화 수행

 - 정규화를 통해 릴레이션은 무손실 분해 (nonloss decomposition) 되어야 함

    릴레이션은 의미적으로 동등한 릴레이션들로 분해되어야 하고 분해로 인한 정보 손실 발생하지 않아야 함

    분해된 릴레이션들을 자연 조인하면 분해 전의 릴레이션으로 복원 가능해야 함

 

정규형 (NF; Normal Form) - 원부이결다조

 - 릴레이션이 정규화된 정도

 - 각 정규형마다 제약 조건이 존재

   정규형의 차수가 높아질수록 요구되는 제약조건이 많고 엄격해지기 때문에 데이터 중복이 줄고 바람직한 릴레이션

 - 릴레이션의 특성을 고려하여 적합한 정규형 선택 

 

정규형의 종류

  • 제 1 정규형 (1NF ; First Normal Form)

       - 릴레이션의 모든 속성이 더는 분해되지 않는 원자값으로만 구성되어 있음

       - 이를 만족해야 관계 DB의 릴레이션이 될 자격이 있음

       - 삽입, 갱신, 삭제 이상 모두 발생 가능

 * 제 1 정규형에서 이상 현상이 발생하는 이유

       - 기본키에 완전 함수 종속되지 못하고 일부분인 속성이 존재하기 때문

       - 해결 방법 ; 부분 함수 종속이 제거되도록 분해 ㅡ> 분해된 릴레이션은 제 2 정규형에 속하게 됨

  • 제 2 정규형 (2NF ; Second Normal Form)

       - 릴레이션이 제 1 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속됨

       - 삽입, 갱신, 삭제 이상 모두 발생 가능

* 제 2 정규형에서 이상 현상이 발생하는 이유

       - 이행적 함수 종속이 존재하기 때문

       - 해결 방법 ; 이행적 함수 종속이 제거되도록 분해 ㅡ> 분해된 릴레이션은 제 3 정규형에 속하게 됨

  • 제 3 정규형 (3NF ; Third Normal Form)

       - 릴레이션이 제 2 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속되지 않음

  • BCF
  • 제 4 정규형 (4NF ; Fourth Normal Form)
  • 제 5 정규형 (5NF ; Fifth Normal Form)

 

 

함수적 종속성 (FD; Functional Dependency)

 - 속성들 간의 관련성

 

함수 종속

 "X가 Y를 함수적으로 결정한다" == "Y가 X에 함수적으로 종속되어 있다" == X ㅡ> Y (X는 결정자, Y는 종속자)

   - 릴레이션 내 모든 투플을 대상으로 하나의 X값에 대한 Y값이 하나임

   - X와 Y는 하나의 릴레이션을 구성하는 속성들의 부분 집합

 

함수 종속 판단시 유의 사항

 - 속성 자체의 특성과 의미를 기반으로 함수 종속성 판단해야 함

   속성 값은 계속 변할 수 있으므로 현재 릴레이션에 포함된 속상 값만으로 판단 X

 - 일반적으로 기본키와 후보키는 릴레이션의 다른 모든 속성들을 함수적으로 결정

 - 기본키나 후보키가 아니어도 다른 속성 값을 유일하게 결정하는 속성은 함수 종속 관계에서 결정자가 될 수 X

 

함수 종속 다이어그램 

함수 종속 다이어그램
부분 함수 종속

완전 함수 종속 (FFD ; Full Functional Dependency)

 - 릴레이션에서 속성 집합 Y가 속성 집합 X에 함수적으로 종속되어 있지만, 속성 집합 X의 전체가 아닌 일부분에는 종속되지 않음

 - 일반적인 함수 종속은 완전 함수 종속을 의미 

 

부분 함수 종속 (PFD; Partial Functional Dependency)

 - 릴레이션에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨을 의미

 

이행적 함수 종속 (Transitive FD)

 - 릴레이션을 구성하는 세 속성 집합에 대해 Xㅡ>Y, Yㅡ>Z가 존재하면 논리적으로 Xㅡ>Z가 성립하는데 이를 Z가 X에 이행적으로 함수 종속되었다고 함

 

고려할 필요가 없는 함수 종속 관계

 - 결정자와 종속자가 같거나, 결정자가 종속자를 포함하는 것처럼 당연한 함수 종속 관계는 고려 X

 

택배 받아 오겠ㅆ브니다

'Computer Science > Database' 카테고리의 다른 글

5장 관계 데이터 모델  (0) 2022.07.16
4-2장 DB 원리와 응용  (0) 2022.07.16
4-1장 데이터 모델링  (0) 2022.07.13
3장 DBS  (0) 2022.07.09
2장 DBMS  (0) 2022.07.07