본문 바로가기
데이터베이스

[Database] 함수적 종속 (Functional Dependency)

by 나는 유찌 2020. 6. 12.

 

 

 

 

완전 함수 종속 (Full Functional Dependency)


키가 아닌 값들은 모두 기본키에만 종속이 되도록 합니다.

 

예를들어, 카페 발주 시스템의 릴레이션이 있습니다.

 

이름

가격

카테고리

원두

5000

커피

4000

재료

냉동딸기

4500

봄시즌재료

딸기원액쥬스

3500

봄시즌재료

 

기본키는 '이름'으로 합니다.

재료 이름을 알아야 가격을 알 수 있고 '카테고리' 값 또한 알 수 있습니다.

 

이러한 경우를 완전 함수적 종속이라고 합니다.

 

 

 

 

 

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


키가 아닌 값들이 기본키가 아닌 다른 속성에 종속이 되거나 복합키의 일부에 종속되는 것입니다.

 

이름

가격

카테고리

3000

재료

냉동딸기

6000

봄시즌재료

냉동딸기

3000

봄시즌재료

 

발주 사이트에서 이미지를 통해 냉동딸기 100g과 300g을 구별하고 릴레이션의 '이름'에서는 구별하지 않습니다.

값들을 구별하려면 '이름' + '가격' 복합키로 정하게 됩니다.

 

키에 해당하지 않는 '카테고리'는 '이름'을 알면 구분할 수 있지만 '가격'을 안다고 구별을 할 수 없습니다.

 

이러한 경우를 부분 함수적 종속이라고 합니다.

 

 

 

 

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


A 속성을 B를 통해 알 수 있고, B의 값은 C 속성을 통해 알 수 있는 경우 A속성을 C를 통해 알 수 있는경우를 말합니다.

 (A -> B, B -> C, A -> C)

 

이름

카테고리

판매여부

원두

커피

Y

재료

Y

냉동딸기

봄시즌재료

N

 

재료의 '이름'을 통해 해당 재료가 어떠한 '카테고리'에 속하는지 알 수 있습니다.

또한, '카테고리'를 통해 맞는 계절이 아닌 재료들은 '판매여부'를 결정할 수 있습니다.

 

그리고 '이름'을 통해 '판매여부'를 알 수 있습니다.

 

이러한 경우를 이행적 함수 종속이라고 합니다.

'데이터베이스' 카테고리의 다른 글

[Database] 정규화 (Normalization)  (0) 2020.06.09
관계 데이터 모델의 개념  (0) 2020.05.31
1. 데이터베이스의 개념  (0) 2020.05.31
트랜잭션(Transaction)  (0) 2020.03.28
[Database] RDBMS, NoSQL, In-memory Database  (0) 2020.03.10