완전 함수 종속 (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 |