종속자와 결정자
어떤 릴레이션에서 X와 Y를 속성의 부분집합이라고 할 때, X의 값을 알면 Y를 식별할 수 있고, X가 달라지면 Y의 값 또한 달라질 때, Y는 X에 함수적 종속이라고 하며, X는 결정자, Y는 종속자라고 한다(X -> Y).
예시:
회원번호 | 이름 | 나이 | 거주지역 |
---|---|---|---|
A001 | 송민지 | 17 | 서울 |
A002 | 박아람 | 15 | 대구 |
A003 | 이예은 | 16 | 부산 |
결정자 : 회원번호
종속자 : 이름, 나이, 거주지역
종속관계 :
- 회원번호 -> 이름, 나이, 거주지역
candidate key : 회원번호
non-prime attribute : 이름, 나이, 거주지역(같은 값이 존재할 수 있다)
회원번호가 기본키이며 이름, 나이, 거주지역 속성은 회원번호을 알아야 식별 가능하다. 이 경우 이름, 나이, 거주지역이 회원번호에 완전 함수적 종속된 관계이다. (이름, 나이, 거주지역은 회원번호에 완전 함수적 종속되어있다.)
예시2:
고객ID | 상품코드 | 주문상품 | 수량 | 가격 |
---|---|---|---|---|
A01 | T001 | 티셔츠 | 2 | 12,000 |
A01 | B110 | 청바지 | 1 | 24,000 |
A02 | B110 | 청바지 | 2 | 48,000 |
A03 | T091 | 셔츠 | 1 | 21,000 |
A03 | O100 | 원피스 | 2 | 52,000 |
이 릴레이션의 기본키는 고객ID와 상품코드 속성으로 구성되어있다. 여기서 수량 속성은 기본키를 구성하는 고객ID와 상품코드 속성을 모두 알아야 식별할 수 있다. (수량은 고객ID와 상품코드에 완전 함수적 종속된 관계.)
반면 위 테이블에서 주문상품은 고객ID가 없어도 상품코드로만 식별할 수 있다(상품코드에만 종속되어있다). 기본키의 일부인 상품코드에 의해 주문상품이 결정되므로 주문상품은 부분 함수적 종속이라고 한다.