본문 바로가기
카테고리 없음

[정보처리기사] 데이터베이스 함수적 종속

by 위시우 2024. 7. 14.

함수적 종속 : 릴레이션 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 [이것저것 남겨두는 블로그:티스토리]

 

댓글