이상 현상과 함수 종속

망고·2024년 6월 2일
0

데이터베이스

목록 보기
5/8
post-thumbnail

🗿 이상(anomaly) 현상

불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입/수정/삭제 연산을 수행할 때 발생할 수 있는 부작용


🌀 이상 현상의 종류

삽입 이상

  • 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야하는 문제

갱신 이상

  • 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제

삭제 이상

  • 튜플을 삭제하면 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제

📎 함수적 종속성(FD; Functional Dependency)

  • 속성들 간의 관련성
  • 데이터베이스의 릴레이션 R에서 X와 Y를 R의 부분집합이라 할 때,
    하나의 X 값에 대해 Y의 값이 오직 하나로 특정되는 경우
    'Y는 X에 종속된다'라고 표현합니다.

🔗 함수 종속

  • X가 Y를 함수적으로 결정합니다.
    • 릴레이션 내의 모든 튜플을 대상으로 하나의 X 값에 대한 Y 값이 항상 하나
    • X와 Y는 하나의 릴레이션을 구성하는 속성들의 부분 집합
    • Y가 X에 함수적으로 종속되어 있다와 같은 의미
    • X->Y로 표현 (X는 결정자, Y는 종속자)
    • X의 값을 알면 Y의 값을 바로 식별 가능하고,
      X에 의해 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 합니다.

함수 종속 관계 판단 시 유의 사항

  • 속성 자체의 특성과 의미를 기반으로 함수 종속성을 판단해야 합니다.
    • 속성 값은 계속 변할 수 있으므로 현재 릴레이션에 포함된 속성 값만으로 판단하면 안됩니다. (논리적인 관계가 중요)
  • 일반적으로 기본키후보키는 릴레이션의 다른 모든 속성들을 함수적으로 결정합니다.
  • 기본키나 후보키가 아니어도 다른 속성 값을 유지하게 결정하는 속성은 함수 종속 관계에서 결정자가 될 수 있습니다.

🧶 함수 종속의 종류

완전 함수 종속(FFD; Full Functional Dependency)

  • 릴레이션에서 속성 집합 Y가 속성 집합 X에 함수적으로 종속되어 있지만, 속성 집합 X의 전체가 아닌 일부분에는 종속되지 않음을 의미합니다.
  • ex) 당첨 여부는 {ID, 이벤트 번호}에 완전 종속되어 있습니다.

부분 함수 종속(PFD; Partial Functional Dependency)

  • 릴레이션에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨을 의미
  • ex) 이름은 {ID, 이벤트 번호}에 부분 종속되어 있습니다.
    • {ID, 이벤트 번호}로도 이름을 식별할 수 있지만,
      ID만으로도 이름을 식별할 수 있습니다.

이행 함수 종속 (transitive FD)

  • 릴레이션을 구성하는 세 개의 속성 집합 X, Y, Z에 대해 함수적 종속 관계
  • X->Y와 Y->Z가 존재하면 X->Z가 성립되는데 (transitive)
    이것을 Z가 X에 이행적으로 함수 종속되었다고 합니다.

고려할 필요가 없는 함수 종속 관계

  • 결정자와 종속자가 같거나, 결정자가 종속자를 포함하는 것처럼 당연한 함수 종속 관계는 고려하지 않습니다.
  • ex) ID -> ID, {ID, 이벤트 번호} -> 이벤트 번호

📚 참고자료

관련 강의 - 데이터베이스의 원리와 응용(KOCW) 8강

0개의 댓글