Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

정규화 본문

Database

정규화

d5ngs 2019. 3. 24. 21:42


정의

- 데이터베이스의 설계를 재구성하는 기술.

- 불필요한 데이터의 중복을 없앨 수 있고, 삽입, 갱신, 삭제 시 발생할 수 있는 이상(Anomaly)들을 방지.

- 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다

- 데이터베이스의 논리적 설계 단계에서 수행



이상현상

  • 정의
    - 데이터들이 불필요하게 중복되어 릴레이션 조작시 발생하는 예기치 못한 현상

  • 종류
    - 삽입 이상
    "데이터를 삽입할 때 의도와는 다른 값들도 함께 삽입되는 현상"
    - 삭제 이상
    "한 튜플을 삭제할 때 의도와는 다른 값들도 함께 삭제되는 현상"
    - 갱신 이상
    "튜플에 있는 속성값을 갱신할때 일부 튜플의 정보만 갱신되어 모순이 생기는 현상"



정규화 과정

  • 비정규 릴레이션

    도메인이 원자 값

  • 1NF

    부분적 함수 종속 제거
    완전 함수적 종속

  • 2NF

    이행적 함수 종속 제거
    비이행적 함수적 종속

  • 3FN

    결정자이면서 후보키가 아닌 것 제거

  • BCNF

    다치 종속

  • 4NF

    조인 종속성 이용

  • 5NF




제 1정규형(1NF)

  • 모든 속성이 원자값으로만 되어 있는 정규형


  • 회원 테이블에서 속성이 원자값이 아니다. 따라서 원자 값으로 나누어 준다.

제 2정규형(2NF)
  • 부분함수적 종속을 제거하여 완전 함수적 종속을 만족하는 정규형
  • 부분 함수적 종속 : 회원번호->이름
  • 완전 함수적 종속 : 회원번호, 수강과목 -> 성적

  • 성적 테이블에서 이름 속성을 분리하면 완전 함수적 종속 상태가 되므로 2정규형을 만족한다.
제 3정규형(3NF)
  • 이행적 함수적 종속 관계를 제거하여 비이행적 함수적 종속 관계를 만족하는 정규형

  • 신청번호->회원번호, 회원번호->회원취미 의 관계가 있으면 신청번호->회원취미 라는 이행적 함수적 종속 관계가 있다. 따라서 회원번호, 회원취미 속성을 분리하면 3정규형을 만족한다.
BCNF(강한 3정규형)
  • 모든 결정자가 후보키이어야 한다는 정규형

  • 후보키 : (학번, 과목), (학번,교수)
  • 종속관계 : (학번,과목)->교수 / 교수->과목
  • 결정자 : (학번,과목), 교수
  • 교수 속성이 결정자이나 후보키가 아니다 따라서 교수 속성을 분리하면 수강 테이블은 BCNF를 만족.

제 4정규형(4NF)
  • 다치종속을 제거한 정규형

제 5정규형(5NF)
  • 조인 종속의 만족이 릴레이션의 후보 키를 통해서만 만족

정리
비정규화 -> 모든 속성이 원자값 -> 1NF -> 완전 함수적 종속 -> 2NF -> 비이행적 함수적 종속 -> 3NF
-> 모든 결정자가 후보키 -> BCNF -> 다치종속 제거 -> 4NF -> 조인 종속성 이용 -> 5NF




'Database' 카테고리의 다른 글

데이터베이스 설계  (0) 2019.03.25
시스템 카탈로그(데이터 사전)  (0) 2019.03.24
병행제어(동시성 제어)  (0) 2019.03.24
Transaction  (0) 2019.03.24
스키마  (0) 2019.03.24