개념
함수적 종속이란 어떤 릴레이션 R이 있을때 X와 Y를 각각 속성의 부분집합이라고 가정해보자. 여기서 X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 한다. 이 경우 X를 결정자, Y를 종속자라고 한다. 이를 기호로 표현하면 X→Y이다. 이런 함수적 종속관계에는 완전 함수적 종속과 부분 함수적 종속 및 이행적 함수 종속이 있다.
이 릴레이션에서는 '학번'을 알면 '이름', '나이', '성별' 속성을 식별할 수 있으며, '힉번'이 다르면 그에따른 값도 다르다. 따라서 '이름', '나이', '성별' 속성은 '힉번'에 함수적인 종속관계다. 같은 이유로 전공 속성또한 '전공코드'에 함수적인 종속관계에 있다.
학번→이름, 학번→나이, 학번→성별
1) 완전 함수적 종속 (Full Functional Dependency)
완전 함수적 종속이란, 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우다.
이 릴레이션에서는 기본키가 '회원번호' 속성으로 구성되어 있다. 여기서 '이름', '나이', '거주지역' 속성은 기본키인 '회원번호'을 알아야 식별 가능하다. 따라서 '이름', '나이', '거주지역'은 '회원번호'에 완전 함수 종속된 관계다.
해당 릴레에션의 기본키는 '고객ID'와 '상품코드' 속성으로 구성되어 있다. 여기서 '수량' 속성은 기본키를 구성하는 '고객ID', '상품코드' 속성을 모두 알아야 식별할 수 있다. 따라서 '수량'은 완전 함수 종속된 관계다.
2) 부분 함수적 종속 (Partial Functional Dependency)
부분 함수적 종속이란, 릴레이션에서 종속자가이 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 속성 중 일부만 종속되는 경우다.
기본키가 '고객ID'와 '상품코드' 속성으로 구성된 릴레이션에서 '주문상품'은 기본키 중 '상품코드'만 알아도 식별할 수 있다. 이 경우에는 '주문상품' 속성은 기본키에 부분 함수 종속된 관계다.
3) 이행적 함수 종속 (Transitive Functional Dependecy)
릴레이션에서 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 때 이행적 함수 종속이라고 한다. 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우를 말한다.
이 릴레이션에서 '상품번호'를 알면 '소분류'를 알 수 있고, '소분류'을 알면 '대분류'도 알 수 있다. 따라서 '상품번호'를 알면 '대분류'를 알 수 있으므로 이행적 함수 종속 관계다. 이때, 대분류는 소분류에 의해 관계되는 항목이지만, 상품번호를 통해 귀속되어 있다. 따라서 이런 관계를 이행적 함수 종속이라고 한다
'CS > 데이터베이스' 카테고리의 다른 글
NOSQL (개념, 특징, 장단점, RDBMS와의 차이점, 모델, 종류) (0) | 2024.08.27 |
---|---|
데이터 웨어하우스(DW)란? (0) | 2024.08.16 |
데이터 모델링의 이해 (0) | 2024.08.15 |
데이터 테이블의 종류 및 특성 (0) | 2024.08.11 |
[DB] 데이터 딕셔너리 (0) | 2024.08.05 |