Database/DB

Database Chapter 9 - 정규화

Garonguri 2022. 3. 26. 19:22
728x90

  • 정규화란?
    • 이상 현상(삽입 이상, 갱신 이상, 삭제 이상)을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정.
    • 릴레이션을 관련이 있는 속성들로만 구상하기 위해 릴레이션을 분해하는 과정.
    • 함수의 종속성 고려해야 함.
    • 목표 : 관련이 없는 함수 종속성은 별도의 릴레이션으로 표현하는 것.
    • 정규형 ? : 릴레이션이 정규화 되어있는 정도 : 차수가 높을 수록 데이터 중복에 의한 이상 현상 발생 빈도가 적다.
      • 비>1>2>3>BCNF>4>5  순으로 포함 관계에 있다.
      • 기본 정규형
        • 제 1 정규형 : 릴레이션에 속한 모든 속성의 도메인이 원자값으로 구성되어 있어야 한다.
        • 제 2 정규형 : 제1정규형에 속해있고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 한다.
        • 제 3 정규형 : 제2정규형에 속해있고, 기본키가 아닌 모든 속성이 기본 키에 이행적 함수 종속이 되지 않아야 한다.
        • BCNF 정규형 : 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 보이스/코드 정규형에 속한다.
      • 고급 정규형
        • 제 4 정규형 : BCNF에 속해있고, 함수 종속이 아닌 다치 종속을 제거해야 만족 가능하다.
        • 제 5 정규형 : 제4정규형에 속해있고, 후보키를 통하지 않는 조인 종속을 제거해야 만족 가능하다.
  • 이상 현상의 종류 
    • 1. 삽입 이상
      • 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽인해야하는 문제.
    • 2. 갱신 이상
      • 중복된 튜플들 중 일부만 수정하여 데이터가 불일치하게되는 모순이 발생하는 문제
    • 3. 삭제 이상
      • 튜플을 삭제할 때 꼭 필요한 데이터까지 삭제되어 데이터가 손실되는 연쇄 삭제 현상
  • 함수의 종속성
    • 하나의 릴레이션을 구성하는 속성의 부분 집합을 X, Y라고 할 때, 언제나 X가 Y를 함수적으로 결정하는 경우, Y가 X에 종속되어 있다고 의미한다. 즉, X의 값에 따라 Y가 결정될 때.
    • 현재 시점에서 릴레이션에 포함된 속성 값 만으로 판단할 수 없다. 속성 값은 무한히 변할 수 있기 때문에, 속성 자체가 가진 특성과 의미를 기반으로 판단해야 한다.
    • 완전 함수 종속
      • Y는 X에 함수적으로 종속되어 있지만, X에 종속된 것이지 X의 일부분에 종속된 것이 아닌 경우
    • 부분 함수 종속
      • Y는 X에 함수적으로 종속되어 있고, X의 일부분에도 종속되어 있는 경우
  •  
Q. 정규화란?

함수적 종속성을 이용하여, 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해하여 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어 나가는 과정.


Q.기본 정규형의  정규화 과정

비정규형 -> (속성의 도메인이 원자값으로만 구성되도록 분해) -> 제1정규형
제1정규형 -> (부분 함수 종속 제거) -> 제2정규형 
제2정규형 -> (이행적 함수 종속 제거) -> 제3정규형
제3정규형 -> (후보키가 아닌 결정자 제거) -> 보이스코드 정규형
728x90