함수적 종속(Functional Dependency)

고봉진·2023년 4월 13일
0

TIL/SQL&DB

목록 보기
2/2

함수적 종속(Funtional Dependency)

종속자와 결정자
어떤 릴레이션에서 X와 Y를 속성의 부분집합이라고 할 때, X의 값을 알면 Y를 식별할 수 있고, X가 달라지면 Y의 값 또한 달라질 때, Y는 X에 함수적 종속이라고 하며, X는 결정자, Y는 종속자라고 한다(X -> Y).

완전 함수적 종속(Fully Functional Dependency)

  • 종속자가 기본키에만 종속되는 경우.
  • 기본키가 여러 속성으로 구성되어 있다면, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합(?)에 종속된 경우.

예시:

회원번호이름나이거주지역
A001송민지17서울
A002박아람15대구
A003이예은16부산
  • 결정자 : 회원번호

  • 종속자 : 이름, 나이, 거주지역

  • 종속관계 :
    - 회원번호 -> 이름, 나이, 거주지역

  • candidate key : 회원번호

  • non-prime attribute : 이름, 나이, 거주지역(같은 값이 존재할 수 있다)

회원번호가 기본키이며 이름, 나이, 거주지역 속성은 회원번호을 알아야 식별 가능하다. 이 경우 이름, 나이, 거주지역이 회원번호에 완전 함수적 종속된 관계이다. (이름, 나이, 거주지역은 회원번호에 완전 함수적 종속되어있다.)


예시2:

고객ID상품코드주문상품수량가격
A01T001티셔츠212,000
A01B110청바지124,000
A02B110청바지248,000
A03T091셔츠121,000
A03O100원피스252,000
  • 결정자 : 고객ID, 상품코드
  • 종속자 : 주문상품, 수량, 가격
  • 종속관계 :
    - 고객ID, 상품코드 -> d
  • Candidate Key : 고객ID, 상품코드
  • Non-prime Attribute : 주문상품, 수량 가격

이 릴레이션의 기본키는 고객ID와 상품코드 속성으로 구성되어있다. 여기서 수량 속성은 기본키를 구성하는 고객ID와 상품코드 속성을 모두 알아야 식별할 수 있다. (수량은 고객ID와 상품코드에 완전 함수적 종속된 관계.)


부분 함수적 종속(Partial Functional Dependency)

반면 위 테이블에서 주문상품은 고객ID가 없어도 상품코드로만 식별할 수 있다(상품코드에만 종속되어있다). 기본키의 일부인 상품코드에 의해 주문상품이 결정되므로 주문상품은 부분 함수적 종속이라고 한다.



참고자료

profile
이토록 멋진 휴식!

0개의 댓글