DB Functional Dependency

지식저장공간·2023년 6월 2일
0

DB

목록 보기
14/19

FD

FD 의미

Functional Dependency (함수 종속) : 한 테이블에 있는 두개의 attribute(s) 집합(set) 사이의 제약

임직원 ID(집합X)가 같다면, 집합Y의 attributes들의 값도 같다.

X가 Y를 함수적으로 결정한다. Y가 X에 함수적으로 의존한다.

FD 파악하기

테이블의 스키마를 보고 의미적으로 FD를 파악할 수 있어야하며, 테이블의 상태를 보고 FD를 파악해서는 안된다. (스키마를 보고 파악할 수 있어야 한다!)

서로 다른 직원이 서로 다른 생년월일을 가질 경우 -> 1:1로 매칭이 되네 ?
-> empl_name에 따라 birth_date가 결정된다 -> X (동명이인일때는 같은 name이지만 date가 달라진다.)

즉, 데이터를 보고 FD를 판단하는게 아닌 스키마를 보고 의미적으로 파악해야한다!

예시

예시 1

학생의 ID는 unique하게 설정되기 때문에 가능하다.
한 학생이, 한 클래스에서 얻는 성적
은행이름, 은행계좌 -> 잔액, 개설날짜

예시 2

X가 Y를 결정한다 하여 Y가 X를 결정하진 않는다.
하지만, Y->X가 가능한때도 존재한다.

예시 3

Y의 값은 항상 하나의 값만을 가진다.

company의 값이 항상 일정할 경우. {}->{company}, 값을 하나만 가진다.

종류

Trivial functional dependency

X -> Y가 유효하고, Y가 X의 부분 집합일 때 Trivial functional dependency라 부른다.

Non-trivial functional dependency

X -> Y가 유효하지만, Y는 X의 부분집합이 아닌 경우

두 집합이 공통된 attributes가 하나도 없는 경우 completely non-trivial functional dependency라 한다.

Partial functional dependency

X -> Y가 유효할때, X의 어떤 attribute가 Y를 결정지을 수 있는 경우
X의 부분집합이 Y를 결정 짓는 경우

proper subset

X의 부분집합이지만, X와 동일하지 않은 집합

Full functional dependency

X의 부분집합이 아닌, X의 집합 전부가 Y를 결정짓는 유효한 상황인 경우

stu_id와 class_id가 모두 있어야 grade를 결정할 수 있다.
어떤 클래스에서 A, 어떤 클래스에서는 B 각각 바뀐다.

출처 : 쉬운코드 유튜브

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글