본문 바로가기
Category/정보처리기사

함수 종속성 (Functional Dependency)이란?

by Corinee 2024. 10. 11.
728x90
반응형

함수 종속성 (Functional Dependency)은 데이터베이스에서 두 속성(컬럼) 간의 관계를 설명하는 개념입니다. 하나의 속성 값이 고유하게 다른 속성 값을 결정하는 경우에 함수 종속성이 존재한다고 말합니다. 이는 관계형 데이터베이스에서 정규화를 통해 데이터 무결성을 유지하고 중복을 최소화하는 데 중요한 역할을 합니다.

함수 종속성의 정의

  • 속성 A의 값에 따라 속성 B의 값이 유일하게 결정될 때, 속성 BA에 함수 종속적이라고 합니다.
  • A → B라고 표현하며, 이는 A가 B를 결정한다는 의미입니다.

예를 들어, 학생 테이블에서:

  • 학번 → 이름: 학번이 같으면 이름도 동일해야 하므로, 학번이 이름을 결정합니다.
  • 주민등록번호 → 이름: 주민등록번호가 같으면 이름도 동일해야 하므로, 주민등록번호가 이름을 결정합니다.

종류

  1. 완전 함수 종속 (Full Functional Dependency):
    • 기본키 전체가 다른 속성을 결정할 때 발생하는 종속성입니다.
    • 예: 학번, 과목코드 → 성적 (학번과 과목코드가 성적을 결정함)
  2. 부분 함수 종속 (Partial Dependency):
    • 기본키의 일부 속성만으로 다른 속성이 결정되는 경우입니다. 제 2정규형에서 이를 제거해야 합니다.
    • 예: 학번, 과목코드 → 학생이름 (학생이름은 과목코드와 상관없이 학번만으로 결정됨)
  3. 이행적 함수 종속 (Transitive Dependency):
    • 속성 A가 속성 B를 결정하고, 속성 B가 속성 C를 결정할 때, 속성 A는 속성 C를 간접적으로 결정하게 되는 종속성입니다. 제 3정규형에서 이를 제거해야 합니다.
    • 예: 학번 → 학과, 학과 → 교수라면, 학번 → 교수도 성립하게 됩니다.

함수 종속성의 중요성

  • 데이터 무결성을 유지하고 데이터 중복을 줄이기 위해 사용됩니다.
  • 정규화 과정에서 중요한 역할을 하며, 함수 종속성을 잘 정의해야 데이터베이스에서 중복이상 현상을 방지할 수 있습니다.

예시

학번이름학과
101 홍길동 컴퓨터공학
102 김철수 전자공학
  • 이 테이블에서, 학번이 이름과 학과를 결정합니다. 즉, 학번이 같으면 이름과 학과도 반드시 같아야 합니다. 이를 함수 종속성으로 표현하면:
    • 학번 → 이름
    • 학번 → 학과

함수 종속성을 사용한 정규화 과정

  • 1NF (제 1 정규형): 모든 속성이 원자값(단일 값)만을 가짐.
  • 2NF (제 2 정규형): 부분 함수 종속성을 제거.
  • 3NF (제 3 정규형): 이행적 함수 종속성을 제거.

이와 같은 방식으로 함수 종속성은 데이터베이스의 설계에서 중복을 최소화하고, 효율적이고 무결성을 유지하는 설계를 도와줍니다.