데이터베이스

10. 함수적 종속(Functional Dependency)

코카(Coca) 2018. 4. 5. 14:23

함수적 종속(Functional Dependency)

 함수적 종속이란 어떤 릴레이션 R이 있을때 X와 Y를 각각 속성의 부분집합이라고 가정해봅니다. 여기서 X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 합니다. 이 경우 X를 결정자, Y를 종속자라고 합니다. 이를 기호로 표현하면 X→Y입니다. 이런 함수적 종속관계에는 완전 함수적 종속부분 함수적 종속이행적 함수 종속이 있습니다.

[예시]

학번  이름 나이  성별  전공코드 전공명 
 110011 박지현  26 여성  AAA1 국문학과
 110011 박지현  26 여성  C0B7 컴퓨터공학과 
 131001 김민석 25  남성   C0A5 전기전자공학과
 120006 홍현희  25 여성   B1027 무용과
 150705 한태민  23  남성   C0A5 전기전가공학과 
 171024 설화영  22 여성 B01K2 공예과

이 릴레이션에서는 '학번'을 알면 '이름', '나이', '성별' 속성을 식별할 수 있으며, '힉번'이 다르면 그에따른 값도 다릅니다. 따라서 '이름', '나이', '성별' 속성은 '힉번'에 함수적인 종속관계입니다. 같은 이유로 전공 속성또한 '전공코드'에 함수적인 종속관계에 있습니다.

학번→이름, 학번→나이, 학번→성별

 


1) 완전 함수적 종속(Full Functional Dependency)

완전 함수적 종속이란, 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우입니다.

[예시]

 

회원번호  이름 나이  거주지역
 A001 송민지 17 서울
 A002 박아람 15 부산
 A003 이예은 16 대전

이 릴레이션에서는 기본키가 '회원번호' 속성으로 구성되어 있다. 여기서 '이름', '나이', '거주지역' 속성은 기본키인 '회원번호'을 알아야 식별 가능하다. 따라서 '이름', '나이', '거주지역'은 '회원번호'에 완전 함수 종속된 관계입니다.

 

고객ID  상품코드 주문상품 수량  가격 
AAAA01 T001 티셔츠 12000
AAAA01  B110 청바지  11000
AAAA02 B110 청바지 2 22000
AAAA03 T091 와이셔츠 1 15000
AAAA03 O100 원피스 1 19000

해당 릴레에션의 기본키는 '고객ID'와 '상품코드' 속성으로 구성되어 있습니다. 여기서 '수량' 속성은 기본키를 구성하는 '고객ID', '상품코드' 속성을 모두 알아야 식별할 수 있습니다. 따라서 '수량'은 완전 함수 종속된 관계입니다.

 

 


 

2) 부분 함수적 종속(Partial Functional Dependency)

부분 함수적 종속이란, 릴레이션에서 종속자가이 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 속성 중 일부만 종속되는 경우입니다.

[예시]

 

고객ID  제품코드 주문상품  수량  가격 
AAAA01 T001 티셔츠 12000
AAAA01  B110 청바지  11000
AAAA02 B110 청바지 2 22000
AAAA03 T091 와이셔츠 1 15000
AAAA03 O100 원피스 1 19000

기본키가 '고객ID'와 '상품코드' 속성으로 구성된 위의 릴리이션에서서 '주문상품'은 기본키 중 '상품코드'만 알아도 식별할 수 있습니다. 이 경우에는 '주문상품' 속성은 기본키에 부분 함수 종속된 관계입니다.

 

 


3) 이행적 함수 종속(Transitive Functional Dependecy)

릴레이션에서 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 때 이행적 함수 종속이라고 합니다. 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우를 말합니다.

[예시]

상품번호  상품명 소분류 대분류
 A001 검은 체크무늬 셔츠 상의 의류
 A002 유선 마우스 마우스 전자제품
 A003 유기농 양배추 야채 식료품
 A004 포테이토 칩 스낵 식료품
 A005 32인치 4K 모니터 모니터 전자제품
 A006 청바지 하의 의류
 A007 분홍 스웨터 상의 의류

이 릴레이션에서 '상품번호'를 알면 '소분류'를 알 수 있고, '소분류'을 알면 '대분류'도 알 수 있습니다. 따라서 '상품번호'를 알면 '대분류'를 알 수 있으므로 이행적 함수 종속 관계입니다.
이때, 대분류는 소분류에 의해 관계되는 항목이지만, 상품번호를 통해 귀속되어있습니다. 따라서 이런 관계를 이행적 함수 종속이라고 합니다