함수 종속성: X를 알면 Y를 알 수 있다
함수 종속성은 "속성 X의 값을 알면 속성 Y의 값이 자동으로 하나로 정해진다"는 관계입니다. X → Y로 표기하고, X를 결정자, Y를 종속자라고 부릅니다.
주의할 점: 화살표는 한쪽 방향으로만 성립합니다. X → Y가 성립한다고 Y → X도 성립하는 건 아닙니다. (학번을 알면 이름을 알 수 있지만, 이름만으로는 학번을 알 수 없는 것처럼요.)
정규화를 이해하려면 세 가지 종속을 구분할 수 있어야 합니다. 기본키가 [학번, 과목코드] 두 개로 이루어진 성적 테이블을 예로 들어보겠습니다.
| 학번 | 과목코드 | 학생이름 | 성적 | 학과 | 학과사무실 |
|---|---|---|---|---|---|
| 100 | C1 | 철수 | A | 컴공 | 3동 401호 |
| 100 | C2 | 철수 | B | 컴공 | 3동 401호 |
- 완전 함수 종속: 기본키 전체에 종속되는 경우.
[학번, 과목코드] → 성적은 학번과 과목코드가 둘 다 있어야 성적이 정해지므로 완전 함수 종속입니다. - 부분 함수 종속: 기본키의 일부에만 종속되는 경우.
학번 → 학생이름은 과목코드 없이 학번만으로도 정해지므로 부분 함수 종속입니다. - 이행적 함수 종속:
X → Y이고Y → Z이면 결과적으로X → Z가 되는 경우.학번 → 학과이고학과 → 학과사무실이므로,학번 → 학과사무실도 성립합니다. 학번이 학과사무실을 "간접적으로" 결정하는 셈입니다.
이 세 가지 종속을 하나씩 없애 나가는 과정이 바로 다음에 나올 정규화입니다.
참고: 개인 Notion 학습 노트