데이터베이스

6. 정규화

YJH3968 2021. 9. 24. 16:18
728x90

1. 정규화의 개념과 이상 현상

 - 이상(anomaly) 현상

  • 불필요한 데이터 중복으로 인해 relation에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용
  • 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터를 함께 삽입해야 하는 문제
  • 갱신 이상 : 중복 tuple 중 일부만 변경해 데이터가 불일치하게 되는 모순의 문제
  • 삭제 이상 : tuple을 삭제할 경우 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제

 - 정규화(Normalization)

  • 이상 현상이 발생하지 않도록 relation을 관련 있는 속성들로만 구성하기 위해 relation을 분해하는 과정
  • 함수적 종속성을 판단해 정규화를 수행

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

  • 속성들 간의 관련성

2. 함수 종속

 - 함수 종속의 정의

  • "X가 Y를 함수적으로 결정한다."(X와 Y는 하나의 relation을 구성하는 속성들의 부분 집합)라고 서술하는 경우,
  • relation 내의 모든 tuple이 하나의 X 값에 대한 Y 값이 항상 하나가 됨
  • "Y가 X에 함수적으로 종속되어 있다."와 같은 의미
  • X → Y로 표현(X는 결정자, Y는 종속자)

 - 함수 종속 관계 판단 시 유의 사항

  • 속성 자체의 특성과 의미를 기반으로 함수적 종속성을 판단해야 한다.
  • 일반적으로 primary key와 candidate key는 relation의 모든 속성들을 함수적으로 결정한다.
  • primary key나 candidate key가 아니어도 다른 속성 값을 유일하게 결정하는 속성은 함수 종속 관계에서 결정자가 될 수 있다.

 - 완전 함수 종속

  • relation에서 속성 집합 Y가 속성 집합 X에 함수적으로 종속되어 있지만, 속성 집합 X의 전체가 아닌 일부분에는 종속되지 않음
  • 일반적으로 함수 종속은 완전 함수 종속을 의미함

 - 부분 함수 종속

  • relation에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨

 - 이행적 함수 종속

  • relation을 구성하는 세 개의 속성 집합 X, Y, Z에 대해 함수 종속 관계 X → Y, Y → Z가 존재하면 논리적으로 X → Z가 성립하는데 이를 Z가 X에 이행적으로 함수 종속되었다고 함

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

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

3. 기본 정규형과 정규화 과정

 - 정규화

  • 정규화를 통해 relation은 무손실 분해(nonloss decomposition)되어야 한다.
    • relation은 의미적으로 동등한 relation들로 분해되어야 한다.
    • 분해로 인한 정보의 손실이 발생하지 않아야 한다.

 - 정규형

  • relation이 정규화된 정도
  • 각 정규형마다 제약 조건이 존재한다.

 - 제 1 정규형

  • relation의 모든 속성의 domain이 원자 값으로만 구성되어 있다.

 - 제 2 정규형

  • relation이 제 1 정규형에 속하고, primary key가 아닌 모든 속성이 primary key에 완전 함수 종속이 된다.

 - 제 3 정규형

  • relation이 제 2 정규형에 속하고, primary key가 아닌 모든 속성이 primary key에 이행적 함수 종속이 되지 않는다.

 

출처 : 데이터베이스의 원리와 응용 강의

728x90

'데이터베이스' 카테고리의 다른 글

8. 데이터베이스 언어 SQL  (0) 2021.09.28
7. 관계 데이터 연산  (0) 2021.09.27
5. 관계 데이터 모델  (0) 2021.09.24
4. 개념적 데이터 모델링  (0) 2021.09.24
3. 데이터베이스 시스템  (0) 2021.09.22