"관계형 데이터베이스 실전 입문 - 오쿠노 마키아"를 읽으며 매주 스터디 진행
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에 도달한 릴레이션 = 중복이 없다고 할 수 있다.
반응형
'Computer Science > DB' 카테고리의 다른 글
이력 데이터와 친해지기 (DB 스터디 4주차) (0) | 2022.10.21 |
---|---|
SELECT를 공략하자 (DB 스터디 4주차) (0) | 2022.10.21 |
SQL과 관계형 모델 (정규화) (DB 스터디 3주차) (0) | 2022.09.28 |
술어논리와 관계형 모델 (DB 스터디 2주차) (0) | 2022.09.21 |
SQL과 관계형 모델 (DB 스터디 1주차) (0) | 2022.09.16 |