함수적 종속 : 릴레이션 R 이 있을 때 X, Y 각각 속성의 부분 집합이라고 가정
x 값을 알면, Y 의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X 에 함수적 종속이라고 한다.
X 는 결정자, Y는 종속자라고 한다.
함수적 종속 관계에는 1) 완전 함수적 종속 2) 부분 함수적 종속 3) 이행적 함수 종속 이 있다.
주문번호 | 상품번호 | 상품명 | 고객명 | 수량 |
1001 | 1 | 노트북 | 김철수 | 2 |
1001 | 2 | 마우스 | 김철수 | 1 |
1002 | 3 | 키보드 | 박영희 | 3 |
1003 | 2 | 마우스 | 이승호 | 2 |
학번 | 이름 | 나이 | 성별 | 전공코드 | 전공명 |
110011 | 박지현 | 26 | 여성 | AAA1 | 국문학과 |
110011 | 박지현 | 26 | 여성 | C0B7 | 컴퓨터공학과 |
131001 | 김민석 | 25 | 남성 | C0A5 | 전기전자공학과 |
120006 | 홍현희 | 25 | 여성 | B1027 | 무용과 |
150705 | 한태민 | 23 | 남성 | C0A5 | 전기전가공학과 |
171024 | 설화영 | 22 | 여성 | B01K2 | 공예과 |
출처: https://dodo000.tistory.com/20
해당 릴레이션에서 학번을 알면 이름, 나이, 성별 속성을 식별할 수 있고, 학번이 다르면 그에 따른 속성의 값도 다릅니다.
학번 -> 나이, 학번 -> 이름, 학번 -> 성별
1) 완전 함수적 종속
종속자가 PK에만 종속되며,
기본키가 여러 속성으로 구성되어 있을 경우
PK 를 구성하는 모든 속성이 포함된 PK의 부분집합에 종속된 경우
회원번호 | 이름 | 나이 | 거주지역 |
A001 | 송민지 | 17 | 서울 |
A002 | 박아람 | 15 | 부산 |
A003 | 이예은 | 16 | 대전 |
기본키인 회원번호에 이름, 나이, 거주지역이 모두 종속된다.
고객ID | 상품코드 | 주문상품 | 수량 | 가격 |
AAAA01 | T001 | 티셔츠 | 2 | 12000 |
AAAA01 | B110 | 청바지 | 1 | 11000 |
AAAA02 | B110 | 청바지 | 2 | 22000 |
AAAA03 | T091 | 와이셔츠 | 1 | 15000 |
AAAA03 | O100 | 원피스 | 1 | 19000 |
기본키는 고객ID과 상품코드라는 2개의 속성으로 구성되어있다.
수량 속성은 고객ID, 상품 코드 속성을 모두 알아야 식별할 수 있다.
따라서 수량은 완전 함수 종속 관계다.
2) 부분 함수적 종속
릴레이션에서 종속자가 기본키가 아닌 다른 속성에 종속되거나 기본키가 여러 속성으로 구성되어있는 경우 기본키를 구성하는 속성 중 일부만 종속 되는 경우 이다.
고객ID | 상품코드 | 주문상품 | 수량 | 가격 |
AAAA01 | T001 | 티셔츠 | 2 | 12000 |
AAAA01 | B110 | 청바지 | 1 | 11000 |
AAAA02 | B110 | 청바지 | 2 | 22000 |
AAAA03 | T091 | 와이셔츠 | 1 | 15000 |
AAAA03 | O100 | 원피스 | 1 | 19000 |
기본키는 고객ID, 상품코드 속성으로 구성되어 있다.
주문 상품 속성은 기본키 중 상품코드에만 종속된다. 따라서 기본키에 부분 함수 종속된 관계다.
3) 이행적 함수 종속
릴레이션에서 X, Y, Z 라는 3개의 속성이 있을때, X -> Y, Y -> Z 이란 종속 관계가 있을 경우, X -> Z 가 성립될 때 이행적 함수 종속이라고 한다.
X 를 알면, Y를 알고, 그를 통해 Z 를 알 수 있는 경우
상품번호 | 상품명 | 소분류 | 대분류 |
A001 | 검은 체크무늬 셔츠 | 상의 | 의류 |
A002 | 유선 마우스 | 마우스 | 전자제품 |
A003 | 유기농 양배추 | 야채 | 식료품 |
A004 | 포테이토 칩 | 스낵 | 식료품 |
A005 | 32인치 4K 모니터 | 모니터 | 전자제품 |
A006 | 청바지 | 하의 | 의류 |
A007 | 분홍 스웨터 | 상의 | 의류 |
상품번호를 알면, 상품 소분류를 알 수 있고, 이에 따라 대분류를 알 수 있다.
대분류는 소분류에 의해 관계되는 항목이지만, 상품 번호를 통해 귀속되어있기 때문에 이행적 함수 종속이라고 할 수 있다.
참고 문헌
https://sese-jeon.tistory.com/6
데이터베이스 정규화 단계 (각 정규화 별 예시)
데이터베이스 정규화는 데이터 중복성을 제거하고 데이터 일관성을 유지하기 위해 데이터를 구조화하는 과정입니다. 데이터베이스 정규화는 1NF, 2NF, 3NF, BCNF, 4NF, 5NF 등 여러 단계로 이루어집니
sese-jeon.tistory.com
https://dodo000.tistory.com/20 [이것저것 남겨두는 블로그:티스토리]
댓글