본문 바로가기
Learning/DB SQL 가이드

DB 모델링 - 3. 정규화 : 3.4 함수종속

by Pronician 2015. 10. 25.
반응형

3.4 함수종속

 

함수 종속(Functional Dependency)

   1) 데이터 종송석(Data Dependency)

   ▶ 관계형 모델을 설계할 때 가장 중요한 요소

   ▶ 데이터 종속성에는 3가지 종속이 존재하며, 그 중 대표적인 종속은 함수 종속임

      ■ 함수 종속(Functional Dependency)

      ■ 다가 종속(Multivalued Dependency)

      ■ 조인 종속(Join Dependency)

   ▶ 함수 종속은 엔터티내에 존재하는 속성 간의 종속성을 의미함

      ■ 엔터티 내 A 속성의 값이 B 속성의 값을 유일하게 식별할 수 있다면 B 속성은 A 속성에 함수적으로 종속되었음을 의미

      ■ 속성 간 종속성을 규명해 집합을 분리하므로, 속성과 엔터티를 정의하고 관계를 파악하는데 절대적 역할

      ■ 이를 기반으로 정규화 과정을 거치면 업무 요건을 만족하면서 엔터티 주제에 맞도록 속성이 배치됨

 

결정자(Determinant) / 종속자(Dependent)

   ▶ 결정자 / 종속자

      ■ 결정자 : 속성 간의 종속성을 규명할 때 기준이 되는 값

      ■ 종속자 : 결정자의 값이 의해 정해지는 값

      ■ 속성 Y가 속성 X에 의해 함수적으로 종속된다는 말은 속성 X의 값을 이용해 속성 Y의 값을 유일하게 식별할 수 있다는 의미

   ▶ 결정자 X의 값은 반드시 하나의 Y값과 연관됨

      ■ X 값에 의존하는 Y 값은 하나뿐이지 다른 Y 값이 있을 수 없음

      ■ 기호

         ㆍX → Y

         ㆍY = F(X)

         ㆍX : 결정자(Determinant), Y : 종속자(Dependent)

   ▶ 결정자 사례

      ■ 주민등록번호, 이름, 휴대전화번호, 주소로 이루어진 엔터티일 경우 주민등록번호는 결정자

      ■ 주민등록번호를 알 경우 나머지들은 모두 유일하게 식별이 가능함

   ▶ 종속자 사례

      ■ 이름으로 주민등록번호가 고유하게 결정되지 않으므로 종속자

 

폐포(Closure)

   ▶ 정규화는 함수 종속의 결정자가 키가 되도록 엔터티를 분해하는 과정

      ■ 키가 아닌 모든 속성이 키에 직접 종속되도록 분해하는 것이며, 이로 인해 키와 함수 종속은 밀접한 관련이 있음

   ▶ 폐포(Closure)

      ■ X의 폐포는 X에 종속됐다고 추론할 수 있는 모든 속성의 집합을 의미함

      ■ X → Y, Z 라면 X의 폐포는 X, Y, Z라고 함

      ■ 기호 : X+ = X, Y, Z

   ▶ 폐포 사례

      ■ 엔터티 R에 {A, B, C, D, E}가 아래와 같은 함수 종속이 있을 경우

         ㆍA → C

         ㆍB → D

         ㆍA, B → E

      ■ 폐포

         ㆍA+ = A, C

         ㆍB+ = B, D

         ㆍ(A, B)+ = A, B, C, D, E

 

      ■ 폐포 (A, B)+ 가 엔터티 R의 모든 속성을 가지고 있으므로, R 엔터티의 키는 A, B가 됨

   ▶ 종속성 추론 규칙

      ■ Y ⊆ X 이면 X → Y 성립함

      ■ X → Y 이면 XZ → YZ 성립함

      ■ X → Y 이고, Y → Z 이면 X → Z 성립함

      ■ X → YZ 이면, X → Y 와 X → Z 성립함

      ■ X → Y 이고, X → Z 이면 X → YZ 성립함

      ■ X → Y 이고, YZ → W 이면 XZ → W 성립함

   ▶ 함수 종속을 활용한 정규형 도출 방법

      ■ 방법 1 : 엔터티에 존재하는 모든 함수 종속을 구하면 각 FD가 정규형 엔터티가 됨

      ■ 방법 2 : 엔터티의 키를 먼저 도출한 후, 정규화를 수행해 더는 분해될 수 없는 엔터티를 만드는 것

         ㆍ방법 2의 경우 키를 도출하려면 폐포를 알아야 하고, 폐포를 구하려면 엔터티에 존재하는 모든 함수 종속을 알아야 하므로, 방법 1과 같아짐

 

엔터티는 정규화에 의해 생성되고, 정규화는 함수 종속에 의해 생성되며, 함수 종속은 결정자가 없이는 존재할 수 없음

반응형

댓글