집합 X (기본키), 집합 Y(그 외의 속성)이 있다고 가정
특징: 두 tuple의 X값이 같다면 Y 값도 같다.
X 값에 따라 Y 값이 유일하게 결정될때
X가 Y를 함수적으로 결정한다(functionally determine)
Y가 X에 함수적으로 의존한다(functionally dependent)
라고 말할 수 있고, 두 집합 사이의 이러한 제약관계를 Functional Dependency(FD)
: 함수적 종속성
라고 한다.
기호로는 X -> Y
{stu_id} -> {stu_name, birth_date, address}
{class_id} -> {class_name, year,semester, credit}
{stu_id, class_id} -> {grade}
///
{bank_name, bank_account} -> {balance, open_date}
Student테이블을 정의했다고 가정
여러 속성(Attribute)들이 존재하는데 stu_id가 함수적으로 나머지 속성을 결정을 하게 될 것이다.
stu_id는 학생을 식별하기 위해서 유니크하게 부여된것이기 때문에 같은 아이디를 가지면 이름 생일 주소 정보들이 모두 똑같을수 있다.
그리고 수업과 관련된 테이블을 정의했을때 결정자 class_id는 나머지 속성들을 결정하게 된다.
종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우
릴레이션에서 종속자가 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 속성 중 일부만 종속된 경우.
릴레이션에서 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 때 이행적 함수 종속이라고 합니다. 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우.