[DB] 함수 종속성

·2025년 1월 20일

데이터베이스

목록 보기
19/22
post-thumbnail

함수 종속성

함수 종속성이란?

  • 함수 종속성(Function Dependency)은 데이터베이스에서 특정 컬럼의 값이 다른 컬럼의 값을 고유하게 결정짓는 관계
  • 어떤 테이블에서 속성 A와 B에 대하여, A값에 의해 B값이 유일하게 정해지는 관계
  • B는 A에 함수적 종속 or A가 B를 함수적으로 결정 , A->B
  • A->B에서 A는 결정자, B는 종속자라고함

함수 종속성 종류

학번(PK)과목코드(PK)성적이름학과ID학과명
101CS101A홍길동CS컴퓨터공학과
101CS102B홍길동CS컴퓨터공학과
102CS101A이순신EE전기전자과
102CS102C이순신EE전기전자과
  • 기본키: (학번, 과목코드)

1. 완전 함수적 종속

  • 기본키의 모든 속성에 어떤 속성이 완전하게 종속된 경우
  • 즉, 기본키의 모든 구성 요소가 함께 있어야만 해당 속성의 값을 고유하게 결정할 수 있음
  • 기본키의 일부만으로는 종속 관계가 성립되지 않음

예시: (학번, 과목코드)성적

  • 성적은 학번과 과목코드 모두가 필요하여 고유하게 결정

2. 부분 함수적 종속

  • 기본키의 일부 속성에 어떤 속성이 종속된 경우

예시: 학번이름

  • 이름은 학번만으로도 고유하게 결정됨
  • 즉, 기본키 (학번, 과목코드) 중 일부인 학번에만 종속됨

문제점:

  • 기본키의 일부 속성(학번)만으로 이름이 결정되는 경우, 중복 데이터가 발생할 수 있음
  • 발생 가능한 이상 현상:
    • 삽입 이상: 특정 학생의 이름을 추가하려면 과목 정보가 없어도 과목코드에 임의의 값을 넣어야 함
    • 갱신 이상: 한 학생의 이름을 변경할 때 모든 관련 행을 수정하지 않으면 데이터 불일치 발생
    • 삭제 이상: 특정 과목 데이터를 삭제하면, 학생의 이름 정보도 함께 삭제될 수 있음

3. 이행적 함수적 종속

  • 어떤 속성 A가 B를 결정하고, B가 C를 결정할때, A → C로 간접적으로 종속된 경우

예시: 학번학과ID, 학과ID학과명

  • 따라서, 학번학과명 (이행적 종속)

문제점:

  • 학번이 학과명에 간접적으로 종속되는 경우, 중복 데이터가 발생할 수 있음
  • 발생 가능한 이상 현상:
    • 삽입 이상: 새로운 학과를 추가하려면 학생 정보도 함께 추가해야 함
    • 갱신 이상: 학과명이 변경되었을 때 모든 행을 수정하지 않으면 데이터 불일치 발생
    • 삭제 이상: 특정 학번의 데이터를 삭제하면 학과 정보까지 삭제될 수 있음

다음 포스트에서는 정규화를 통해 이상현상을 초래하는 부분 함수적 종속이행적 함수적 종속 을 해결

0개의 댓글