[DB] functional dependency

mary·2024년 3월 14일

DB

목록 보기
12/15

functional dependency(FD : 함수 종속)

한 테이블에 있는 두 개의 attributes 집합 사이의 제약


X값에 따라 Y값이 유일한 값으로 결정될 때, 'X가 Y를 함수적으로 결정한다 = Y가 X에 함수적으로 의존한다' 라고 말함.

이러한 두 집합 사이의 제약 관계를 X -> Y로 나타낸다.

  • 특성
  1. 테이블의 스키마를 보고 '의미적으로' FD가 존재하는지 파악해야됨.

  2. company attribute가 특정attribute에 따라서 값이 바뀌는게 아니라 항상 동일한 값을 갖는다면

    left-hand side를 공집합으로 표현한다.

  • 종류

    • Trivial functional dependency
      : X->Y 관계의 FD에서 Y가 X의 부분집합인 경우.
    • Non-trivial functional dependency
      : X->Y 관계의 FD에서 Y가 X의 부분집합이 아닌 경우.

      공통된 attribute가 하나도 없으면 completely non-trivial FD라고 함.

    • Partial functional dependency
      : X->Y 관계의 FD에서 X의 proper subset 중에 어떤 하나라도 Y의 값을 함수적으로 결정할 때.

      {empl_id, empl_name} -> {birth_date}일 때 {empl_id}만으로도 {birth_date}를 결정할 수 있을 때(=id가 같으면 생일정보도 같음) partial FD임.

    • Full functional dependency
      : Partial FD와 반대로 X->Y 관계의 FD에서 X의 모든proper subset이 Y의 값을 함수적으로 결정할 수 없을 때.
      {stu_id, class_id} -> {grad}일 때
      {stu_id}, {class_id}, {}{grade}를 결정할 수 없음.
      왜?
      학생이 여러 수업을 들을 수 있기 때문에 학생아이디만으로 유일한 성적 값을 결정할 수 없고(다른 수업마다 다른 성적을 받을 수 있음), 같은 반 안에서도 누구는 A, 누구는 B+ 이런식으로 성적을 받을 수 있기 때문.


출처: https://www.youtube.com/watch?v=fw8hvolebLw&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=22

profile
내 인생을 망치러 온 나의 구원, 개발

0개의 댓글