[컴][DB] 정규화

 

원본 : http://realcrazi.springnote.com/pages/3258808

 

이상   (anomaly)

  1. 이상의 정의

    • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 발생
    • 데이터의 중복으로 인하여 관계연산을 처리하기 곤란한 현상
  2. 이상의 종류

    • 삽입 이상   :   데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상
    • 삭제 이상   :   한 튜플을 삭제함으로써 연쇄 삭제 현상으로 인한 정보의 손실
    • 갱신 이상   :   튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

 

정규화 개요

  1. 현실 세계를 정확하게 표현하는 관계 스키마를 설계하는 작업으로 개체, 속성, 관계성들로 릴레이션을 만드는 과정에 관한 것
  2. 정규화 되지 못한 릴레이션의 조작 시 발생하는 이상 현상의 근본적인 원인은 여러 가지 종류의 사실들이 하나의 릴레이션에 표현되기 때문
  3. 정규화가 잘못되면 데이터의 불필요한 중복을 야기하여 릴레이션 조작 시 문제를 일으킴
  4. 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
  5. 좋은 데이터베이스 스키마를 생성해 내고 불필요한 데이터의 중복을 방지하여 정보 검색을 용이하게 할 수 있도록 허용
  6. 레코드들의 관련 속성들 간의 종속성을 최소화하기 위한 구성 기법
  7. 정규화는 논리적 처리 및 품질에 큰 영향을 미침
  8. 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형 등이 있음

 

정규화의 목적

  1. 가능하다면 모든 객체간의 관계를 표현하기 위해
  2. 정보의 중복을 피하기(최소화) 위해
  3. 정보의 검색을 보다 용이하게 하기 위해
  4. 삽입, 삭제, 갱신 이상의 발생을 방지
  5. 효율적인 데이터를 조작

 

정규화 과정

비정규 Relation 

arrow_down       도메인이 원자값

제1정규형

arrow_down      부분 함수 종속 제거(no partial dependencies)

제2정규형

arrow_down      이행적 함수 종속 제거(no transitive dependencies)

제3정규형

arrow_down       결정자이면서 후보키가 아닌 것 제거 (Every deteminant is a candidate key)

BCNF정규형

arrow_down      다치 종속 제거(no multi-value dependencies)

제4정규형

arrow_down      조인 종속성 이용

제5정규형

 

정규형(Normal Form)

  1. 제1정규형

    • 어떤 릴레이션에 속한 모든 도메인이 원자값(atomic value)만으로 되어 있는 릴레이션
  2. 제2정규형

    • 릴레이션 R이 제1정규형을 만족하면서, 키가 아닌 모든 속성이 기본 키에 완전 함수 종속인 릴레이션
  3. 제3정규형

    • 릴레이션 R이 제2정규형을 만족하면서, 키가 아닌 모든 속성들이 기본 키에 이행적으로 함수 종속되지 않는 릴레이션
    • 무손실 조인 또는 종속성 보존을 저해하지 않고도 항상 3NF 설계를 얻을 수 있음
  4. BCNF정규형

    • 릴레이션의 모든 결정자가 후보키인 릴레이션
    • 모든 BCNF(Boyce-Codd Normal Form)가 종속성을 보존하는 것은 아님
    • 모든 BCNF 스킴은 3NF에 속하게 되며, 따라서 BCNF가 3NF보다 한정적 제한이 더 많은
  5. 제4정규형

    • 종속성들의 집합 F에 대한 F+의 모든 있는 다치 종속성 X->>Y에 대해, X가 릴레이션 스키마 R의 슈퍼키이면 R은 F에 대한 제4정규형, 여기서 F는 함수적 종속성과 다치 종속성을 포함함
  6. 제5정규형

    • 어떤 릴레이션 R에 존재하는 모든 조인 종속성이 릴레이션 R의 후보키를 통해서만 성립
  7. 함수적 종속성

    • 어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우, 애트리뷰트 X의 값 각각에 대하여 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라함, X->Y로 표현함
    • A->B는 애트리뷰트 A의 값 각각에 대해 애트리뷰트 B의 값이 반드시 하나만 연관된다는 뜻임
  8. 이행적 함수 종속

    • A->B 이고 B->C 일때 A->C 를 만족하는 관계
  9. 완전 함수적 종속

    • 복합 속성 X에 대하여 R.X->R.Y가 성립할 때 X에 포함된 속성 K가 R.K->R.Y를 만족하는 K가 존재하지 않는 것
    • 만약 위를 만족하는 K가 존재하면 부분 함수 종속 이라함
  10. 다치 종속 함수적 관계

    • A->>B의 의미는 R의 애트리뷰트 A가 애트리뷰트 B의 값의 집합을 결정한다는 것
    • 릴레이션 R(A,B,C)에서 종속 A->>B가 성립할 때, 릴레이션 R에서 다치종속 A->>B가 성립하므로 A->>C도 성립함
    • 릴레이션 R은 언제든지 프로젝션을 통해 R1(A,B)과 R2(A,C)로 무손실 분해할 수 있음

 

See also

  1. http://i5on9i.egloos.com/4840594
  2. Functional Dependencies & Normalization, p.27

댓글 없음:

댓글 쓰기