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

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


1. 함수 종속(Functional Dependency)

1) 데이터 종속성(Data Dependency)

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


데이터 종속성에는 3가지 종속이 존재하며, 그 중 대표적인 종속은 함수 종속임
  • 함수 종속(Functional Dependency)
  • 다가 종속(Multivalued Dependency)
  • 조인 종속(Join Dependency)


함수 종속은 엔터티내에 존재하는 속성 간의 종속성을 의미함
  • 엔터티 내 A 속성의 값이 B 속성의 값을 유일하게 식별할 수 있다면 B 속성은 A 속성에 함수적으로 종속되었음을 의미
  • 속성 간 종속성을 규명해 집합을 분리하므로, 속성과 엔터티를 정의하고 관계를 파악하는 데 절대적 역할
  • 이를 기반으로 정규화 과정을 거치면 업무 요건을 만족하면서 엔터티 주제에 맞도록 속성이 배치됨


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


결정자 / 종속자
  • 결정자 : 속성 간의 종속성을 규명할 때 기준이 되는 값
  • 종속자 : 결정자의 값에 의해 정해지는 값
  • 속성 Y가 속성X에 의해 함수적으로 종속된다는 말은 속성 X의 값을 이용해 속성 Y의 값을 유일하게 식별할 수 있다는 의미


결정자 X의 값은 반드시 하나의 Y값과 연관됨
  • X 값에 의존하는 Y 값은 하나뿐이지 다른 Y 값이 있을 수 없음
  • 기호
    • X → Y
    • Y = F(X)
    • X : 결정자(Determinant), Y : 종속자(Dependent)


결정자 사례
  • 주민등록번호, 이름, 휴대전화번호, 주소로 이루어진 엔터티일 경우 주민등록번호는 결정자
  • 주민등록번호를 알 경우 나머지들은 모두 유일하게 식별이 가능함


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


3. 함수 종속 사례


주문번호, 주문일자, 고객번호, 상품코드, 고객명, 상품명으로 구성된 엔터티에서 함수 종속(FD) 도출
  • FD1 : 주문번호 → 주문일자
  • FD2 : 주문번호 → 고객번호
  • FD3 : 주문번호 → 상품코드
  • FD4 : 고객번호 → 고객명
  • FD5 : 상품코드 → 상품명


X → Y와 같이 속성 간의 종속 관계 발생 시, X와 Y는 항상 함께 존재해야 하며, 결정자는 엔터티의 주 식별자가 됨
  • 엔터티_1 : #주문번호, 주문일자, 고객번호, 상품코드
  • 엔터티_2 : #고객번호, 고객명
  • 엔터티_3 : #상품코드, 상품명


다른 방식 표현
  • FD6 : 주문번호 → (주문일자, 고객번호, 상품코드)
  • FD7 : (주문번호, 상품코드) → 주문수량


FD6, FD7 역 사례
  • FD6은 FD1, FD2, FD3으로 분리 가능
  • FD7은 FD8, FD9로 분리 불가


직접 / 간접 속성
  • X → Y → Z 종속이 있을 경우, Z는 X에 간접종속이 되는데 이 경우 X, Y, Z를 하나의 엔터티에 포함시키면 안되고, X, Y를 엔터티_1, Y, Z를 엔터티_2로 도출해야 함
  • X → Y → Z 와 같은 종속을 이행 종속(Transitive Dependency)이라 하며, 3정규형과 관련된 종속
  • 함수종속은 일반적으로 직접 종속을 의미함


4. 폐포(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/3정규화를 수행해 더는 분해될 수 없는 엔터티를 만드는 것
    • 방법_2의 경우 키를 도출하려면 폐포를 알아야 하고, 폐포를 구하려면 엔터티에 존재하는 모든 함수 종속을 알아야 하므로, 방법_1과 같아짐


  • 엔터티는 정규화에 의해 생성되고, 정규화는 함수 종속에 의해 생성되며, 함수 종속은 결정자가 없이는 존재할 수 없음
"구루비 데이터베이스 스터디모임" 에서 2014년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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