Skip to content

함수 종속성: X를 알면 Y를 알 수 있다 ​

함수 종속성은 "속성 X의 값을 알면 속성 Y의 값이 자동으로 하나로 정해진다"는 관계입니다. X → Y로 표기하고, X를 결정자, Y를 종속자라고 부릅니다.

주의할 점: 화살표는 한쪽 방향으로만 성립합니다. X → Y가 성립한다고 Y → X도 성립하는 건 아닙니다. (학번을 알면 이름을 알 수 있지만, 이름만으로는 학번을 알 수 없는 것처럼요.)

정규화를 이해하려면 세 가지 종속을 구분할 수 있어야 합니다. 기본키가 [학번, 과목코드] 두 개로 이루어진 성적 테이블을 예로 들어보겠습니다.

학번과목코드학생이름성적학과학과사무실
100C1철수A컴공3동 401호
100C2철수B컴공3동 401호
  • 완전 함수 종속: 기본키 전체에 종속되는 경우. [학번, 과목코드] → 성적은 학번과 과목코드가 둘 다 있어야 성적이 정해지므로 완전 함수 종속입니다.
  • 부분 함수 종속: 기본키의 일부에만 종속되는 경우. 학번 → 학생이름은 과목코드 없이 학번만으로도 정해지므로 부분 함수 종속입니다.
  • 이행적 함수 종속: X → Y이고 Y → Z이면 결과적으로 X → Z가 되는 경우. 학번 → 학과이고 학과 → 학과사무실이므로, 학번 → 학과사무실도 성립합니다. 학번이 학과사무실을 "간접적으로" 결정하는 셈입니다.

이 세 가지 종속을 하나씩 없애 나가는 과정이 바로 다음에 나올 정규화입니다.

참고: 개인 Notion 학습 노트