Tech

Diary

Lecture

About Me

개발중

functional dependency

JeongSeulho

2025년 01월 19일

준비중...
클립보드로 복사

functional dependency(함수적 종속성)

  • X라는 집합의 값에 따라 Y 집합이 유일하게 결정될 때

Image

다음과 같이 말하거나 표현가능
XY를 함수적으로 결정한다.
YX에 함수적으로 의존한다.
X -> Y

FD 파악하기

  • 테이블의 스키마를 보고 의미적으로 파악
  • 테이블의 상태를 보고 파악하면 안된다.

Image

  • 특정 상태(순간)에 {empl_name} -> {birth_date}가 성립하더라도 함수적 종속성이 아님

FD 의미적으로 파악

  • FD는 상황과 정책, attribute사이 관계에 따라 달라진다.

Image

  • 위와 같은 집합에서 임직원이 하나의 부서에만 속한다면 => X -> Y
  • 임직원이 여러 부서에 속할 수 있다면 => X -> Y가 아님

역 성립 여부

  • X -> Y가 성립한다고 Y -> X가 항상 성립하는 것은 아님
  • {empl_id} -> {empl_name}이 성립하더라도 동명이인이 있는 경우 {empl_name} -> {empl_id}는 성립하지 않음

{} -> Y의 의미

  • 공집합 -> Y이라는 것은 Y가 항상 같은 값을 가진다는 것을 의미

Image

trivial FD

  • X -> Y가 성립할때, YX의 부분집합인 것

trivial FD 예시
{a, b, c} -> {a, b}
{a, b, c} -> {a, b, c}

non-trivial FD

  • X -> Y가 성립할때, YX의 부분집합이 아닌 것

non-trivial FD 예시
{a, b, c} -> {b, c, d}
{a, b, c} -> {d, e}
겹치는 속성이 하나도 없다면 non-trivial FD인 동시에 completely non-trivial FD

partial FD

  • X -> Y가 성립할때, 어떤 1개의 X'(proper subset of X)에 대해서 X' -> Y가 성립하는 경우
  • proper subset of XX의 부분집합이지만 X와 같지 않은 것을 지칭

partial FD 예시
{empl_id, empl_name} -> {birth_date}인 경우
{empl_id} -> {birth_date}도 성립하므로
{empl_id, empl_name} -> {birth_date}는 partial FD

full FD

  • X -> Y가 성립할때, 모든 proper subset of X에 대해서 X' -> Y가 성립하지 않는 경우

full FD 예시
{stu_id, class_id} -> {grade}인 경우
{stu_id}, {class_id}, {}에 대해서 {grade}를 유일하게 결정하지 못함
따라서 {stu_id, class_id} -> {grade}는 full FD