맨위로가기

다치 종속

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

다치 종속은 관계형 데이터베이스에서 데이터의 종속성을 나타내는 개념으로, 특정 속성 집합(α)의 값에 따라 다른 속성 집합(β)의 값이 여러 개로 결정될 수 있음을 의미한다. 다치 종속 α β는 릴레이션 r(R)에서 α의 값이 같은 튜플들이 β의 값을 서로 독립적으로 가질 수 있음을 나타낸다. 이는 함수 종속을 일반화한 개념으로, 데이터베이스 정규화의 제4 정규형(4NF)을 이해하는 데 중요한 역할을 한다. 다치 종속이 있는 데이터베이스는 데이터 중복 문제를 야기할 수 있으며, 이를 해결하기 위해 릴레이션을 분해하는 과정이 필요하다.

더 읽어볼만한 페이지

  • 데이터 모델링 - 빌딩 정보 모델링
    빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다.
  • 데이터 모델링 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
다치 종속
다치 종속성
정의관계형 데이터베이스의 릴레이션에서, 어떤 속성 집합의 값들이 다른 속성 집합의 값들에 의해 결정될 때, 결정되는 속성 집합의 값들이 여러 개일 수 있는 종속성.
표기법A [[파일:twoheadrightarrow.gif|twoheadrightarrow.gif]] B
설명A는 B를 다치 결정한다.

2. 정의

관계 스키마 R에서 속성 집합 \alpha\beta가 있을 때, \alpha의 각 값에 대해 \beta의 값 집합이 독립적으로 결정되면, \alpha\beta를 다치 종속한다고 한다.[4] 이는 \alpha

\beta로 표기한다.[1]

2. 1. 형식적 정의

Relation scheme|릴레이션 스키마영어 R을 관계 스키마라고 하고, \alpha \subseteq R\beta \subseteq R를 속성 집합이라고 하자. 다치 종속 \alpha \twoheadrightarrow \beta ("\alpha\beta를 다결정한다")는 임의의 유효한 관계 r(R)에서 t _1[\alpha]=t _2[\alpha]인 모든 튜플 쌍 t _1t _2에 대해, 다음을 만족하는 튜플 t _3t _4r에 존재할 때 성립한다.[4]

:

\begin{matrix}

t_1[\alpha] = t_2[\alpha] = t_3[\alpha] = t_4[\alpha]\\

t_1[\beta] = t_3[\beta]\\

t_2[\beta] = t_4[\beta]\\

t_1[R\setminus(\alpha\cup\beta)] = t_4[R\setminus(\alpha\cup\beta)]\\

t_2[R\setminus(\alpha\cup\beta)] = t_3[R\setminus(\alpha\cup\beta)]

\end{matrix}



비공식적으로, (x,y,z)\alpha, \beta, R - \alpha - \beta에 대한 값을 갖는 튜플로 표시하여 각각 x, y, z라고 하면, 튜플 (a,b,c)(a,d,e)r에 존재할 때마다 튜플 (a,b,e)(a,d,c)r에 존재해야 한다.

다치 종속은 아래와 같이 도식적으로 나타낼 수 있다.

:

\begin{matrix}

\text{튜플} & \alpha & \beta & R\setminus(\alpha\cup\beta) \\

t_1 & a_1 .. a_n & b_1 .. b_m & d_1 .. d_k \\

t_2 & a_1 .. a_n & c_1 .. c_m & e_1 .. e_k \\

t_3 & a_1 .. a_n & b_1 .. b_m & e_1 .. e_k \\

t_4 & a_1 .. a_n & c_1 .. c_m & d_1 .. d_k

\end{matrix}


3. 예제

대학교 강의 데이터베이스를 예로 들어 설명하면 다음과 같다.

강의 코스 데이터베이스의 관계
코스참고 도서강사
AHASilberschatzJohn D
AHANederpeltJohn D
AHASilberschatzWilliam M
AHANederpeltWilliam M
AHASilberschatzChristian G
AHANederpeltChristian G
OSOSilberschatzJohn D
OSOSilberschatzWilliam M



위 표에서 강사는 코스에 속해 있고, 참고 도서도 코스에 속해 있다. 하지만 강사와 참고 도서는 서로 독립적이다. 따라서 이 데이터베이스 설계에는 다치 종속이 존재한다. 예를 들어 AHA 코스에 새로운 참고 도서를 추가하려면, 해당 코스의 각 강사 데이터에 대해 참고 도서를 추가해야 한다.

3. 1. 다치 종속이 있는 데이터베이스

"강좌", "교재", "강사" 속성을 가진 릴레이션에서 다치 종속의 예시는 다음과 같다. 한 강좌에 여러 교재와 강사가 배정될 수 있고, 이들이 서로 독립적일 때 다치 종속이 발생한다.

대학교 강좌
강좌도서강사
AHASilberschatzJohn D
AHANederpeltJohn D
AHASilberschatzWilliam M
AHANederpeltWilliam M
AHASilberschatzChristian G
AHANederpeltChristian G
OSOSilberschatzJohn D
OSOSilberschatzWilliam M



위 표에서 {강좌} →→ {도서} 및 {강좌} →→ {강사} 다치 종속이 존재한다.[1] 이는 AHA 강좌에 새로운 도서를 추가하려면, 해당 강좌의 각 강사에 대해 레코드를 하나씩 추가해야 함을 의미한다. {강좌} {교재} 및 {강좌} {강사}로 표현할 수 있다.[1]

이러한 다치 종속은 데이터 중복을 야기하며, 데이터베이스 정규화 과정 중 제4 정규형에서 제거되어야 한다.[1]

3. 2. 제4 정규형으로 정규화

다치 종속으로 인해 발생하는 데이터 중복 문제를 해결하기 위해, 릴레이션을 분해하여 제4 정규형을 만족시킬 수 있다. 주어진 예시에서는 릴레이션을 {강좌, 교재}와 {강좌, 강사}로 분해하면 된다. 이렇게 하면 각 릴레이션에서 다치 종속성이 제거되어 데이터 중복이 사라진다.

원래의 'Teaching database'는 다음과 같았다.

대학교 강좌
강좌도서강사
AHASilberschatzJohn D
AHANederpeltJohn D
AHASilberschatzWilliam M
AHANederpeltWilliam M
AHASilberschatzChristian G
AHANederpeltChristian G
OSOSilberschatzJohn D
OSOSilberschatzWilliam M



이 릴레이션에는 {강좌} {도서} 및 {강좌} {강사} 라는 두 개의 다치 종속이 존재하여 제4 정규형을 만족하지 못했다.

이를 {강좌, 교재}와 {강좌, 강사} 두 릴레이션으로 분해하면 다음과 같다.

강좌도서
AHASilberschatz
AHANederpelt
OSOSilberschatz



강좌강사
AHAJohn D
AHAWilliam M
AHAChristian G
OSOJohn D
OSOWilliam M



위와 같이 분해하면, 각 릴레이션은 제4 정규형을 만족하게 된다.

4. 성질

다치 종속은 함수 종속을 일반화한 개념이다. 다치 종속과 관련하여 다음 성질들이 성립한다.


  • R에서 X --|]] Y 가 성립하는 것과, R을 (X,Y) 및 (X,R-Y)로 분해하는 것이 무손실 분해라는 것은 동치이다.
  • 만약 \alpha \twoheadrightarrow \beta이면, \alpha \twoheadrightarrow R - \beta이다. (보완성)
  • 만약 \alpha \twoheadrightarrow \beta이고 \gamma \subseteq \delta이면, \alpha \delta \twoheadrightarrow \beta \gamma이다. (증대성)
  • 만약 \alpha \twoheadrightarrow \beta이고 \beta \twoheadrightarrow \gamma이면, \alpha \twoheadrightarrow \gamma - \beta이다. (전이성)


함수 종속성과 관련된 규칙은 다음과 같다.

  • 만약 \alpha \rightarrow \beta이면, \alpha \twoheadrightarrow \beta이다. (복제)
  • 만약 \alpha \twoheadrightarrow \beta이고 \beta \rightarrow \gamma이면, \alpha \rightarrow \gamma - \beta이다.


위 규칙은 건전하고 완전하다.

4. 1. 다치 종속의 추론 규칙

다치 종속(MVD)의 추론 규칙은 다음과 같으며, 암스트롱의 공리와 유사하다.

  • 보완성: \alpha \twoheadrightarrow \beta이면, \alpha \twoheadrightarrow R - \beta이다.
  • 증대성: \alpha \twoheadrightarrow \beta이고 \gamma \subseteq \delta이면, \alpha \delta \twoheadrightarrow \beta \gamma이다.
  • 전이성: \alpha \twoheadrightarrow \beta이고 \beta \twoheadrightarrow \gamma이면, \alpha \twoheadrightarrow \gamma - \beta이다.


함수 종속성과 관련된 규칙은 다음과 같다.

  • 복제: \alpha \rightarrow \beta이면, \alpha \twoheadrightarrow \beta이다.
  • \alpha \twoheadrightarrow \beta이고 \beta \rightarrow \gamma이면, \alpha \rightarrow \gamma - \beta이다.


또한, 다음이 성립한다.

  • R에서 X --|]] Y 가 성립하는 것과, R을 (X,Y) 및 (X,R-Y)로 분해하는 것이 무손실 조인 분해이라는 것은 동치이다.


위에 언급된 규칙들은 건전하고 완전하다.

4. 2. 함수 종속과의 관계

함수 종속은 다치 종속의 특수한 경우이다. 이는 다음과 같이 표현할 수 있다.

  • \alpha \rightarrow \beta이면, \alpha \twoheadrightarrow \beta이다.[1]


즉, 어떤 속성 집합 \alpha가 다른 속성 집합 \beta를 함수적으로 결정하면, \alpha\beta를 다치 결정한다.

또한, 다치 종속과 함수 종속 사이에 다음과 같은 관계가 성립한다.

  • \alpha \twoheadrightarrow \beta이고 \beta \rightarrow \gamma이면, \alpha \rightarrow \gamma - \beta이다.[1]


이는 \alpha\beta를 다치 결정하고, \beta\gamma를 함수적으로 결정하면, \alpha\gamma에서 \beta를 제외한 속성들을 함수적으로 결정한다는 의미이다.

5. 용어 정의

관계 스키마 RR의 부분집합인 속성 집합 \alpha, \beta가 있다고 하자. r(R)R의 임의의 유효한 관계라고 할 때, r에 있는 모든 튜플 쌍 t_1t_2에 대해 t_1[\alpha] = t_2[\alpha]이면, 다음 조건을 만족하는 튜플 t_3t_4r에 존재하면 다치 종속 \alpha \twoheadrightarrow \beta ("\alpha\beta를 다결정한다")가 R에서 성립한다.[1]



\begin{matrix}

t_1[\alpha] = t_2[\alpha] = t_3[\alpha] = t_4[\alpha]\\

t_1[\beta] = t_3[\beta]\\

t_2[\beta] = t_4[\beta]\\

t_1[R\setminus(\alpha\cup\beta)] = t_4[R\setminus(\alpha\cup\beta)]\\

t_2[R\setminus(\alpha\cup\beta)] = t_3[R\setminus(\alpha\cup\beta)]

\end{matrix}



이를 비공식적으로 표현하면 다음과 같다. (x, y, z)를 각각 \alpha, \beta, R - \alpha - \beta에 대한 값을 갖는 튜플이라고 하고, x, y, z로 표현하면, 튜플 (a, b, c)(a, d, e)r에 존재할 때마다 튜플 (a, b, e)(a, d, c)r에 존재해야 한다.

다치 종속은 아래와 같이 도식적으로 나타낼 수 있다.



\begin{matrix}

\text{튜플} & \alpha & \beta & R\setminus(\alpha\cup\beta) \\

t_1 & a_1 .. a_n & b_1 .. b_m & d_1 .. d_k \\

t_2 & a_1 .. a_n & c_1 .. c_m & e_1 .. e_k \\

t_3 & a_1 .. a_n & b_1 .. b_m & e_1 .. e_k \\

t_4 & a_1 .. a_n & c_1 .. c_m & d_1 .. d_k

\end{matrix}


  • 전체 제약: 데이터베이스의 ''모든'' 속성에 대한 내용을 표현하는 제약 조건이다. 다치 종속성이 ''전체 제약''인 것은 R - \beta 속성에 대해 말하는 정의에 따른다.
  • 튜플 생성 종속성: 관계에 특정 튜플이 존재해야 함을 명시적으로 요구하는 종속성이다.
  • 자명한 다치 종속성:
  • 관계의 모든 속성을 포함하는 다치 종속성 ( R = \alpha \cup \beta ).
  • \beta \subseteq \alpha인 다치 종속성.

참조

[1] 서적 Database System Concepts https://archive.org/[...] McGraw-Hill
[2] 서적
[3] 서적 데이터베이스시스템 정익사
[4] 서적 Database System Concepts



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com