관계형 데이터 모델링 프리미엄 가이드 DB구축 (2017년)
함수 종속 0 0 654

by 구루비스터디 정규화 함수종속 결정자 종속자 [2017.10.14]


1.데이터 종속의 종류

  • 함수 종속(Functional Dependency)
  • 다가 종속(Multivalued Dependency)
  • 조인 종속(Join Dependency)


2.함수 종속의 정의

  • 릴레이션 내에 존재하는 속성 간의 종속성의 의미
  • 대표속성(식별자)과 나머지 속성 사이의 연관 관계가 함수 종속
  • 릴레에션에서 A 속성의 값이 B 속성의 값을 유일하게 식별할 수 있다면 B 속성은 A 속성에 함수적으로 종속되었다고 함


3.역할

  • 속성 간의 종속성을 규명해 집합을 분리하므로 속성과 엔터티를 정의하고 관계를 파악하는 데 절대적인 역할
  • 함수 종속성을 기반으로 정규화 과정을 거치면 업무 요건을 만족하면서 엔터티의 주제에 맞도록 속성이 배치됨=>엔터티 정제
  • 밀접한 속성을 모아 하나의 릴레이션으로 만드는 체계적인 방법


4.결정자와 종속자

  • 속성 간의 종속성을 규명할 때 기준이 되는 값을 결정자(Determinant)라고 함
  • 결정자의 값에 의해 정해지는 값을 종속자(Dependent)라고 함
  • 속성 Y가 속성 X에 의해 함수적으로 종속된다는 말은 속성 X의 값을 이용해 속성 Y의 값을 유일하게 식별할 수 있다는 의미로써 X의 값에 대해 Y의 값이 오직 하나만 연관돼 있다는 것을 의미
  • 표현법
    • X -> Y
    • Y = F(X)
    • X:결정자, Y:종속자


5.함수 종속 예시


주문번호, 주문일자, 고객번호, 상품코드, 고객명, 상품명으로 구성된 릴레이션이 있을 때
다음과 같은 함수 종속이 존재함

FD1 : 주문번호 -> 주문일자
FD2 : 주문번호 -> 고객번호
FD3 : 주문번호 -> 상품코드
FD4 : 고객번호 -> 고객명
FD5 : 상품코드 -> 상품명

X->Y와 같이 속성 간에 종속 관계가 발생하면 X와 Y는 항상 함께 존재해야 함
모든 FD의 결정자는 엔터티의 주 식별자가 돼야 함
따라서 위와 같은 함수 종속에 근거해 다음과 같은 엔터티가 생성됨

엔터티1:#주문번호, 주문일자, 고객번호, 상품코드
엔터티2:#고객번호, 고객명
엔터티3:#상품코드, 상품명

위의 함수 종속 FD1, FD2, FD3을 아래와 같이 FD6, FD7로 표현할 수 있음

FD6 : 주문번호->(주문일자,고객번호,상품코드)
FD7 : (주문번호,상품코드) -> 주문수량

FD6은 당연히 FD1,FD2,FD3으로 분리될 수 있지만 FD7에 대해서는 다음이 성립하지 않음

FD8 : 주문번호 -> 주문수량
FD9 : 상품코드 -> 주문수량



6 간접종속, 이행종속

  • X->Y->Z의 종속이 있다면 Z는 X에 간접적으로 종속됨
  • 간접 종속이 존재하면 X,Y,Z는 하나의 엔터티에 포함시키면 안 됨
  • X와 Y를 하나의 엔터티로, Y와 Z를 하나의 엔터티로 만들어야 함
  • X->Y->Z와 같은 종속을 이행종속(Transitive Dependency)이라고 함


7.함수종속과 키(Key)

  • 함수 종속의 결정자가 키(Key)가 되도록 릴레이션을 분해하는 과정이 정규화
  • 키가 아닌 모든 속성이 키에 직접 종속되도록 분해하는 것이 정규화
  • 키와 함수 종속은 밀접한 관계


8.폐포(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의 키(Key)는 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 성립함


8.정규형 도출 방법

  • 정규화는 함수 종속에 의해서 수행되며 두 가지 방법으로 정규형을 도출할 수 있음
    • 릴레이션의 키를 도출 -> 2정규화, 3정규화 등을 수행
    • 릴레이션에 존재하는 모든 함수 종속을 구함 각 FD가 정규형 엔터티가 됨
"주주클럽 스터디모임" 에서 2017년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3687

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입