어느 시점에서든 릴레이션 내의 모든 튜플 값에 대하여 X 에 대한 Y 의 값이 하나라면
- X 가 Y 를 함수적으로 결정한다.
- Y 가 X 에 함수적으로 종속되어 있다.
라고 한다. 이때, X를 결정자, Y를 종속자라 한다.
즉, 기본키는 각 속성들에 대한 값을 유일하게 결정할 수 있어야 한다.
함수 종속 관계를 판단할 때는 현재 시점에 릴레이션에 포함된 속성값만으로 판단해서는 안 된다.
릴레이션의 속성 값은 계속 변화하기 때문에 속성 자체가 가지고 있는 특성과 의미를 기반으로 판단해야 한다.
일반적으로 튜플을 유힐하게 구별하는 기본키와 후보키는 그 특성 때문에 릴레이션을 구성하는 다른 모든 속성들을 함수적으로 결정한다. 그러나 기본키나 후보키가 아니더라도 속성 Y 값을 유일하게 결정하는 속성 X는 함수 종속 관계에서 모두 결정자가 될 수 있다. 물론 여러 튜플에서 결정자의 값이 같으면 종속자의 값도 항상 같아야 한다.
함수 종속은 완전 함수 종속과 부분 함수 종속으로 나뉜다.
고객아이디 | 이벤트번호 | 당첨여부 | 고객이름 |
위와 같은 테이블이 있을 때, 함수 종속 관계는 아래와 같이 나타난다.
- 고객아이디 -> 고객이름
- {고객아이디, 이벤트번호} -> 당첨여부
- {고객아이디, 이벤트번호} -> 고객이름
이 경우 고객이름은 고객아이디에 완전 함수 종속 되어 있으며, {고객아이디, 이벤트번호} 속성 집합에 부분 함수 종속 되어 있다. 당첨여부는 {고객아이디, 이벤트번호}에 완전 함수 종속되어 있다 한다.
'Database' 카테고리의 다른 글
[MySQL] InnoDB 스토리지 엔진 아키텍처 (0) | 2024.06.09 |
---|---|
[MySQL] MySQL 엔진 아키텍처 (0) | 2024.06.09 |
[MySQL] 옵티마이저의 데이터 처리 방식 (2) | 2024.05.15 |
MySQL, Spring 프로젝트 연동시 예약어 문제 (0) | 2023.04.12 |
정규화란 무엇인가 (0) | 2023.03.22 |