본문 바로가기
✔️ CS/데이터베이스

[데이터베이스/DB] 함수적 종속성 (Functional Dependency)

by Eunse 2023. 9. 11.

전공 수업과 교안을 바탕으로 개인적으로 공부한 내용입니다. 공부 내용을 정리하는 과정에서 잘못된 정보가 있을 수 있으니, 참고용으로만 봐주시면 감사하겠습니다. 피드백은 언제든 환영입니다! 😊


✔️ 함수적 종속성 (Functional Dependency) 이란?

함수적 종속성이란 X와 Y가 각각 릴레이션 R의 속성의 부분집합이라 가정했을 때, 속성 X가 Y를 유일하게 결정 가능할 경우 X는 Y의 결정자 (Determinator)라고 하며 Y는 X에 함수적으로 종속 (Y⊂X) 되어 있다고 한다. 이를 기호로 나타내면 X → Y 이며 다음과 같은 경우를 함수적으로 종속되어 있다고 할 수 있다.

 

회원번호 회원명 성별 생년월일 이메일
10011 류재석 98/02/01 jjj123@gmail.com
10022 송지효 87/09/17 hhh111@gmail.com
20013 지서진 02/12/29 jsj223@gmail.com
20015 이연수 95/07/11 lys789@gmail.com

 

위 릴레이션 테이블에서 {회원번호}를 알면, {회원명}, {성별}, {생년월일}, {이메일} 속성을 식별할 수 있으므로 함수적으로 종속되어 있다고 할 수 있다. 따라서 다음과 같이 기호로 나타낼 수 있다.

 

{회원번호} → {회원명}

{회원번호} → {성별}

{회원번호} → {생년월일}

{회원번호} → {이메일}

 


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

완전 함수적 종속은 기본키가 아닌 속성이 기본키에 완전히 종속되는 경우를 말한다. 즉, 종속자는 기본키이여야 하며, 만약 여러 속성으로 기본키가 존재하는 경우 종속자는 기본키를 나타내는 모든 속성이여야 한다.

 

회원번호 회원명 성별 생년월일 이메일
10011 류재석 98/02/01 jjj123@gmail.com
10022 송지효 87/09/17 hhh111@gmail.com
20013 지서진 02/12/29 jsj223@gmail.com
20015 이연수 95/07/11 lys789@gmail.com

 

마찬가지로 위 릴레이션에서 기본키는 {회원번호}가 되며, {회원번호}를 통해 {회원명}, {성별}, {생년월일}, {이메일}을 식별할 수 있으므로 {회원명}, {성별}, {생년월일}, {이메일} 각각의 속성들은 기본키인 {회원번호}에 완전 종속된 경우라고 볼 수있다.

 

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

부분 함수적 종속은 기본키가 아닌 속성이 기본키 일부 속성에 종속되어 있는 경우를 말한다. 즉, 종속자는 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있는 복합키일 경우 해당 속성 중 일부만 종속되어야 한다.

 

상품번호 상품명 가격 판매량
A101 데님 스커트 49000 17
A102 카라 원피스 89000 30
B202 셔츠 남방 28500 29
C220 런닝 운동화 98000 5

 

위 릴레이션에서 기본키는 {상품번호, 상품명}이로 이루어진 복합키이다.

 

이러한 경우

{상품번호, 상품명} → 가격

{상품번호, 상품명} → 판매량

위와 같은 관계가 성립할 수 있지만,

 

기본키의 부분집합인 {상품번호} 또는 {상품명}에 대해 

{상품명} → 가격

{상품명} → 판매량

{상품번호} → 가격

{상품번호} → 판매량

위와 같은 관계가 성립할 수도 있다. 이러한 경우를 부분 함수적 종속되었다고 한다.

 

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

이행적 함수 종속은 어떤 릴레이션 R에서 X, Y, Z의 속성에 대해 X → Y, Y → Z 의 관계를 성립할 때 X → Z인 경우(즉, 속성 X를 알면 Y를 알게 되고, 이를 통해 Z까지 알 수 있는 경우) 이행적 함수 종속이라고 할 수 있다.

 

회원번호 주문상품 가격 수량
A101 데님 스커트 49000 2
A102 카라 원피스 89000 1
B202 셔츠 남방 28500 1
C220 런닝 운동화 98000 1

 

위 릴레이션에서 {회원번호}를 알면 {주문상품}을 알 수 있고, {주문상품}을 통해 {가격}과 {수량}을 알 수 있으므로

 

{회원번호} → {주문상품}

{주문상품} {가격}

{주문상품} {수량}

 

위와 같은 관계가 성립하며, 이를 이행적 함수 종속이라고 할 수 있다.

 


✔️ Reference

댓글