티스토리 뷰

이론/데이터베이스

9장 정규화

맹정 2022. 11. 23. 01:28
1. 정규화의 개념과 이상 현상
이상 현상 : 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용

정규화 : 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해 나가는 과정
  • 이상현상의 종류
    • 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
      • [예시] 이벤트에 참여하지 않았고 아이디가 "melon", 이름이 "성원용", 등급이 "gold"인 신규 고객의 데이터는 이벤트 참여 릴레이션에 삽입 불가
      • 삽입하려면 실제로 참여하지 않은 임시 이벤트번호를 함께 삽입해야함
    • 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
      • [예시] 아이디가 "apple" 인 고객의 등급이 "gold" 에서 "vip"로 변경되었는데, 일부 투플에 대해서만 등급이 수정된다면 "apple" 고객이 서로 다른 등급을 가지는 모순이 발생
    • 삭제 이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제
      • [예시] 아이디가 "orange" 인 고객이 이벤트 참여를 취소해 관련 투플을 삭제 하면 이벤트 참여와 관련이 없는 고객아이디, 고객이름, 등급 데이터까지 손실됨
  • 정규화
    • 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정
    • 함수적 종속성을 판단하여 정규화를 수행함
  • 함수적 종속성
    • 속성들 간의 관련성
    • 정규화 : 함수적 종속성을 이용해, 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해해 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어 나가는 과정
  • 함수 종속
    • "X가 Y를 함수적으로 결정한다"
      • 릴레이션 내의 모든 투플에서 하나의 X값에 대한 Y값이 항상 하나임
      • X와 Y는 하나의 릴레이션을 구성하는 속성들의 부분 집합
      • "Y가 X에 함수적으로 종속되어 있다"와 같은 의미
      • X -> Y 로 표현 (X는 결정자, Y는 종속자)
      • [예시] 고객아이디 -> (고객이름, 등급)
  • 함수 종속 관계 판단시 유의사항
    • 속성 자체의 특성과 의미를 기반으로 함수 종속성을 판단해야함
      • 속성 값은 계속 변할 수 있으므로 현재 릴레이션에 포함된 속성 값으로만 판단하면 안됨
    • 일반적으로 기본키와 후보키는 릴레이션의 다른 모든 속성들을 함수적으로 결정함
    • 기본키나 후보키는 아니어도 다른 속성 값을 유일하게 결정하는 속성은 함수 종속 관계에서 결정자가 될 수있음
  • 완전 함수 종속
    • 릴레이션에서 속성 집합 Y가 속성 집합 X에 함수적을 종속되어 있지만, 속성 집합 X의 전체가 아닌 일부분에는 종속되지 않음을 의미
    • 일반적으로 함수종속은 완전 함수 종속을 의미함
    • 예) 당첨 여부는 {고객아이디, 이벤트번호} 에 완전 함수 종속됨
  • 부분 함수 종속
    • 릴레이션에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨을 의미
    • 예) 고객이름은 {고객아이디, 이벤트번호} 에 부분 함수 종속됨
  • 고려할 필요가 없는 함수 종속 관계
    • 결정자의 종속자가 같거나, 결정자가 종속자를 포함하는 것처럼 당연한 함수 종속 관계는 고려하지 않음
정규화 : 함수 종속성을 이용해, 릴레이션을 연고나성이 있는 속성들로만 구성되도록 분해해서, 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어 가는 과정

    - 기본 목표 : 관련이 없는 함수 종속성은 별개의 릴레이션으로 표현

  • 주의 사항
    • 정규화를 통해 릴레이션은 무손실 분해 되어야함
    • 릴레이션이 의미상 동등한 릴레이션들로 분해되어야하고, 분해로 인한 정보손실이 발생하면 안됨
    • 분해된 릴레이션들을 자연 조인하면 분해 전의 릴레이션으로 복원 가능해야함

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

8장 데이터베이스 설계  (0) 2022.11.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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