함수 종속(Functional Dependency)

함수 종속(Functional Dependency)

함수 종속(Functional Dependency), 데이터베이스 설계에서 사용되는 중요한 개념으로, 어떤 속성이 다른 속성에 의해 고유하게 결정되는 관계를 말합니다. 함수 종속은 데이터의 무결성을 유지하고, 중복을 최소화하며, 데이터베이스를 정규화할 때 주로 사용됩니다.

 

함수 종속이란?

함수 종속은 “한 속성이 다른 속성을 고유하게 결정짓는 관계”를 말합니다. 이를 수식으로 표현하면 다음과 같습니다.

X → Y

  • X: 결정자(Determinant)

  • Y: 종속자(Dependent)

의미: X의 값이 고유하게 주어지면 Y의 값도 고유하게 결정됩니다. 예를 들어, 주민등록번호가 유일하면 그 사람의 이름과 생년월일도 유일하게 정해집니다.

함수 종속의 예시

실생활 예시 1: 학생과 수업

학교 데이터베이스를 예로 들어 보겠습니다.

학번 이름 과목 성적
101 김철수 수학 A
102 이영희 영어 B
103 박민수 과학 C

위 표에서 우리는 몇 가지 중요한 관계를 확인할 수 있습니다.

  1. 학번 → 이름

    • 학번이 유일하므로 이름이 고유하게 결정됩니다.

  2. 학번, 과목 → 성적

    • 학번과 과목이 주어지면 성적이 고유하게 결정됩니다. 예를 들어, 101번 학생이 수학에서 A를 받았다는 정보는 유일합니다.

실생활 예시 2: 쇼핑몰 데이터베이스

주문 번호 고객 ID 상품 ID 주문 날짜
001 C101 P201 2025-01-01
002 C102 P202 2025-01-02
  1. 주문 번호 → 고객 ID, 상품 ID, 주문 날짜

    • 주문 번호가 고유하기 때문에 주문 번호로 모든 정보를 찾을 수 있습니다.

  2. 상품 ID → 상품 이름

    • 상품 ID가 주어지면 상품 이름도 고유하게 결정됩니다.

함수 종속의 종류

함수 종속에는 몇 가지 유형이 있습니다. 이를 잘 이해하면 데이터베이스를 설계하는 데 큰 도움이 됩니다.

(1) 완전 함수 종속 (Full Functional Dependency)

  • 정의: 속성 전체가 있어야 다른 속성을 고유하게 결정할 수 있는 경우.

  • 예: (학번, 과목) → 성적

    • 학번과 과목을 모두 알아야 성적이 유일하게 결정됩니다.

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

  • 정의: 속성의 일부만으로도 다른 속성을 결정할 수 있는 경우.

  • 예: 학번 → 이름

    • 학번 하나만 알아도 이름을 결정할 수 있습니다. 하지만 학번은 과목을 고유하게 결정하지 못합니다.

(3) 이행 함수 종속 (Transitive Dependency)

  • 정의: X → Y, Y → Z일 때, X → Z도 성립하는 경우.

  • 예: 학번 → 학과, 학과 → 교수

    • 학번이 학과를, 학과가 교수를 결정하므로 학번이 교수를 결정합니다.

(4) 결정 함수 종속 (Deterministic Dependency)

  • 정의: 항상 같은 값이 다른 값을 결정하는 경우.

  • 예: 주민등록번호 → 이름, 생년월일

함수 종속과 데이터베이스 설계

함수 종속은 데이터베이스의 정규화 과정에서 매우 중요합니다. 정규화는 데이터를 효율적으로 저장하고 중복을 최소화하기 위해 테이블을 나누는 과정입니다. 정규화 과정에서 함수 종속을 분석하여 데이터를 적절히 분리하면 갱신 이상(Anomaly)을 방지할 수 있습니다.

정규화의 단계

  1. 1NF (제1정규형): 데이터가 원자값으로만 이루어져야 함.

  2. 2NF (제2정규형): 부분 함수 종속을 제거.

  3. 3NF (제3정규형): 이행 함수 종속을 제거.

  4. BCNF (보이스-코드 정규형): 결정자가 후보 키가 아닌 경우 제거.

함수 종속 확인 방법

함수 종속 관계를 확인하려면 데이터를 분석하고 다음과 같은 질문을 던져보세요.

  • 특정 속성이 주어졌을 때 다른 속성이 유일하게 결정되는가?

  • 종속 관계가 속성의 전체를 필요로 하는가, 일부만으로도 성립하는가?

  • 중간 속성을 통해 간접적으로 다른 속성을 결정하고 있는가?

예제 테이블

학번 과목 교수 성적
101 데이터베이스 김교수 A
102 네트워크 이교수 B
  1. 학번 → 성적: 부분 함수 종속 (학번만으로 과목에 따른 성적을 고유하게 결정할 수 없음)

  2. 과목 → 교수: 완전 함수 종속 (과목마다 교수는 유일)

마무리

함수 종속은 데이터베이스 설계의 기초이자 핵심입니다. 이를 잘 이해하면 데이터의 중복과 갱신 이상을 줄이고, 효율적이고 무결성이 높은 데이터베이스를 구축할 수 있습니다. 이제 함수 종속의 개념을 기억하며, 데이터베이스 설계에 적용해 보세요!

효율적인 네트워크 관리를 위한 스위치 설정 방법

0 0 votes
Article Rating
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] 함수 종속(Functional Dependency) […]