다치 종속 은 릴레이션 내의 두 어트리뷰트 집합 사이 성립하는 제약조건 중의 하나이다.
함수 종속 과 달리 다치 종속 은 어떠한 조건을 만족하는 투플 이 릴레이션 안에 있을 것을 요구한다. 그러므로 다치 종속은 튜플 이 만들어내는 "종속" 중의 한 종류로 분류할 수 있다.
제4정규화 에서 중요한 역할을 한다.
다치 종속은 머리가 두 개인 이중 화살표(double arrow) 로 표기한다.
A
{\displaystyle A}
B
{\displaystyle B}
일 때, A가 B를 다치 결정 한다고 말하고, 다른 말로는 B가 A에 다치 종속 된다고 말한다.
예를 들어 {과목} {교재}일 때, 과목 어트리뷰트가 교재 어트리뷰트의 값 하나를 결정하는 것이 아니라, 여러 개의 값, 즉 값의 집합을 결정한다는 뜻이다.
[1]
R
{\displaystyle R}
을 릴레이션 스키마라고 하자.
α
⊆
R
{\displaystyle \alpha \subseteq R}
이고
β
⊆
R
{\displaystyle \beta \subseteq R}
라 하자. 만약 어떤 릴레이션
r
(
R
)
{\displaystyle r(R)}
에 대해,
t
1
[
α
]
=
t
2
[
α
]
{\displaystyle t_{1}[\alpha ]=t_{2}[\alpha ]}
인
r
{\displaystyle r}
안의 모든 튜플의 쌍
t
1
{\displaystyle t_{1}}
과
t
2
{\displaystyle t_{2}}
에 대해,
r
{\displaystyle r}
안에 다음과 같은 식이 성립하는
t
3
{\displaystyle t_{3}}
and
t
4
{\displaystyle t_{4}}
가 존재하면,
t
1
[
α
]
=
t
2
[
α
]
=
t
3
[
α
]
=
t
4
[
α
]
{\displaystyle t_{1}[\alpha ]=t_{2}[\alpha ]=t_{3}[\alpha ]=t_{4}[\alpha ]}
t
3
[
β
]
=
t
1
[
β
]
{\displaystyle t_{3}[\beta ]=t_{1}[\beta ]}
t
3
[
R
−
β
]
=
t
2
[
R
−
β
]
{\displaystyle t_{3}[R-\beta ]=t_{2}[R-\beta ]}
t
4
[
β
]
=
t
2
[
β
]
{\displaystyle t_{4}[\beta ]=t_{2}[\beta ]}
t
4
[
R
−
β
]
=
t
1
[
R
−
β
]
{\displaystyle t_{4}[R-\beta ]=t_{1}[R-\beta ]}
다치 종속
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
가
R
{\displaystyle R}
에 대해 성립한다.
[2]
다음 예제를 보라. 수업 부호와, 수업에서 권장되는 교재와, 강사 이름을 모아 놓은 데이터베이스이다:
Teaching database
수업
교재
강사
AHA
Silberschatz
John D
AHA
Nederpelt
John D
AHA
Silberschatz
William M
AHA
Nederpelt
William M
AHA
Silberschatz
Christian G
AHA
Nederpelt
Christian G
OSO
Silberschatz
John D
OSO
Silberschatz
William M
수업에 연계된 강사들과, 수업에 연계된 교재들이 서로 독립적이므로, 이 데이터베이스 설계에는 다치 종속이 존재한다; AHA 수업에 새로운 교재 하나를 추가한다면, 그 수업의 강사들 각각에 대해 레코드 하나씩을 추가해주는 등의 식으로 일을 해줘야 한다.
위 데이터베이스에는 두 개의 다치 종속이 존재한다. 그 두 개는 {수업} {교재} 및 {수업} {강사}이다.
다치 종속을 가진 데이터베이스는 결국 중복성을 보인다. 데이터베이스 정규화 과정 중 제 4 정규형 이 다치 종속이 존재하지 않을 것을 요구한다.
만약
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
이면
α
{\displaystyle \alpha }
R
−
β
{\displaystyle R-\beta }
이다.
만약
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
이고
γ
⊆
δ
{\displaystyle \gamma \subseteq \delta }
이면,
α
δ
{\displaystyle \alpha \delta }
β
γ
{\displaystyle \beta \gamma }
이다.
만약,
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
이고, 만약
β
{\displaystyle \beta }
γ
{\displaystyle \gamma }
이면,
α
{\displaystyle \alpha }
γ
−
β
{\displaystyle \gamma -\beta }
이다.
다음 두 성질은 함수 종속 과 관련있다.
만약
α
{\displaystyle \alpha }
→
{\displaystyle \rightarrow }
β
{\displaystyle \beta }
이면,
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
이다.
만약
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
이고
β
{\displaystyle \beta }
→
{\displaystyle \rightarrow }
γ
{\displaystyle \gamma }
이면,
α
{\displaystyle \alpha }
→
{\displaystyle \rightarrow }
γ
−
β
{\displaystyle \gamma -\beta }
이다.
또한, 다음이 성립한다.
R에서 X Y 가 성립한다는 것과, R을 (X,Y) 및 (X,R-Y)로 분해하는 것이 무손실 분해이라는 것은 동치이다.
↑ 이석호. 《데이터베이스시스템》. 정익사. 234,235쪽.
↑ Silberschatz, Korth, Sudarshan. Database System Concepts , 5th Edition
외부 링크 [ 편집 ]