Computer Science/DB

정규화 이론(두번째) - 결합 종속성 (DB 스터디 3주차)

Zayson 2022. 9. 28. 11:02
"관계형 데이터베이스 실전 입문 - 오쿠노 마키아"를 읽으며 매주 스터디 진행

4.1 결합 종속성 (JD)

  • BCNF를 통해 후보키, 키가 아닌 속성의 함수종속성을 제거했지만, 중복을 모두 제거한 것은 아니다.
☁️ 결합 종속성 (Join Dependency, JD)
→ 키 자체에 다중성이 포함됐을 때 나타나는 중복

[정의]
A, B, … C를 릴레이션 R의 제목의 부분집합이라고 할 때
A,B,C의 프로젝션에 대응하는 릴레이션을 결합한 결과 = 릴레이션 R 이면 “결합 종속성”이다.

[표현식]
☆{A, B, …, C}
  • A, B, C의 제목 중 하나가 R의 제목 전체와 같은 경우 “결합 종속성이 명백하다.”
  • 릴레이션 내에 명백하지 않은 결합 종속성이 존재하면 4NF ~ 6NF의 대상이다.
  • 결합 종속성은 프로젝션으로 나눈 릴레이션을 다시 결합하면 원래의 릴레이션으로 돌아가는 성질 → 무손실 분해 가능
  • 함수 종속성은 결합 종속성의 일종이다.

암시적인 결합 종속성

  • 암시적인 결합 종속성 : 슈퍼키로 분해할 수 있는 결합 종속성, 즉 공통의 후보키를 갖는 결합 종속성
  • 아래의 예는 {이름}을 후보키로 갖는 두 개의 릴레이션으로 나누어 튜플의 수가 같고 키가 아닌 속성만 다른 릴레이션을 두개 생성한 것 → 결합하면 원래의 릴레이션과 동일
  • ex) 분해 전
이름 나이 학년
맹준영 28 2
김민섭 28 2
백예린 26 1
손흥민 31 4
  • 두 개의 릴레이션으로 분해 후
이름 나이
맹준영 28
김민섭 28
백예린 26
손흥민 31

 

이름 학년
맹준영 2
김민섭 2
백예린 1
손흥민 4

키가 아닌 속성과 결합 종속성

  • 키가 아닌 속성이 존재하는 경우 후보키는 키가 아닌 속성을 결정할 수 있는 함수 종속성이 존재한다.
    • 프로젝션으로 후보키의 속성을 나누면 함수종속성이 사라지므로 무손실 분해가 불가능하다.
  • 4NF, 5NF 작업은 키가 아닌 속성이 존재하지 않는 릴레이션만 대상
  • 4NF, 5NF는 후보키에 여러 속성이 포함되는 복합키인 경우만 필요한 작업
☁️ BCNF가 바로 5NF까지 만족하는 경우

1. 키가 아닌 속성이 존재할 때
2. 키에 포함되는 속성이 1개뿐인 단일키일 때

키가 아닌 속성이 존재하는 경우 후보키를 무손실 분해할 수 있는 결합 종속성이 존재하지 않는가 ?
ex) R = {a,b,c,x}

if. 후보키 {a,b,c} → 키가 아닌 속성 {x} : 후보키를 통해 x를 결정
{a,b,c}를 분해하는 경우 x를 결정 못해 함수종속성이 사라짐 → 무손실 분해 불가능

if. {a,b,c} → {x}에서 {a,b} → {x}도 가능한 경우
후보키의 진부분집합 {a,b}가 {x}를 결정하는 부분 함수종속이 존재하므로 2NF 조건에 위배

if. {a, b} → {x} 인 경우 함수 종속성을 제거하기 위해 {a,b,c}, {a,b,x}의 두 릴레이션으로 무손실 분해 가능
{a,b,c} = 후보키이면서 키가 아닌 속성을 갖지 않으므로 정규화 대상 검토 필요

4.2 결합 종속성에 의한 정규화 (4NF ~ 6NF)

제 4 정규형 (4NF)

  • 다치 종속성 (MultiValued Dependency, MVD)에 의한 정규화
    • 표현식 : A→→ B, A→→C
    • ☆{AB, A
  • 다치 종속성 : 키가 아닌 속성을 갖지 않는 릴레이션을 결합 종속성에 의해 공통의 속성을 포함한 두 개의 릴레이션으로 무손실 분해할 수 있는 것

  • {이름, 학과}, {이름, 수업}으로 릴레이션을 무손실 분해 가능

제 5 정규형 (5NF)

  • 명백하지 않거나 암시적이지 않은 결합 종속성을 제거하는 것
    • 표현식 : A→→B, B→→C, C→→A
    • ☆{AB, BC, CA}
  • BCNF를 한 릴레이션에서 ☆{AB,AC}을 발견한 경우 ☆{AB, BC, CA}의 가능성도 확인하는 작업 필요

제 6 정규형 (6NF)

  • 릴레이션 자신을 포함한 결합 종속성만 남을때까지 모든 결합 종속성을 제외하는 상태
  • 키가 아닌 속성의 개수가 0개 또는 1개가 될때까지 무손실 분해한 상태
  • 불필요한 결합이 많아지며 실용적이지 않다.

4.3 요약

  • 함수 종속성은 결합 종속성의 일종
  • BCNF까지 도달한 릴레이션 = 후보키가 단일 속성으로 구성되어 있거나 키가 아닌 속성이 존재 하지 않는 경우 5NF를 만족
  • 5NF에 도달한 릴레이션 = 중복이 없다고 할 수 있다.
반응형