데이터베이스 함수 종속성(Functional Dependency)
DB
읽는데 6분 소요
처음 쓰여진 날: 2025-09-21
마지막 수정일: 2025-09-21
조회수: 60
요약
데이터베이스 정규화의 핵심 개념인 함수 종속성에 대해 알아봅니다. 완전 함수 종속, 부분 함수 종속, 이행 함수 종속의 개념과 구체적인 예시를 통해 정규화 과정을 이해해봅니다.
함수 종속성(Functional Dependency)이란?
정규화를 이해하기 위해선 함수 종속성 개념을 먼저 알아야 합니다.
어떤 릴레이션에서 속성 A의 값이 속성 B의 값을 유일하게 결정할 때, "속성 B는 속성 A에 함수적으로 종속된다"고 말하며, A → B
로 표기합니다. 여기서 A를 결정자(Determinant), B를 종속자(Dependent) 라고 합니다.
함수 종속성의 유형
함수 종속성은 영어와 한글을 둘다 알아두세요
완전 함수 종속 (Full Functional Dependency)
기본키 전체에 대해서만 종속되며, 기본키의 일부에는 종속되지 않는 경우입니다. 제2정규형(2NF)의 핵심 개념입니다.

부분 함수 종속 (Partial Functional Dependency)
기본키의 일부 속성에 종속되는 경우입니다. 이는 2NF에서 제거되어야 하는 종속성입니다.

이행 함수 종속 (Transitive Functional Dependency)
A → B
이고 B → C
일 때, A → C
가 성립하는 관계입니다. 제3정규형(3NF)의 핵심 개념입니다.
함수 종속성 예시
1. 기본적인 함수 종속성
학번 | 이름 | 입학년도 |
---|---|---|
13-1001 | 김철수 | 2013 |
14-1002 | 이영희 | 2014 |
12-1003 | 박민준 | 2012 |
학번 → 이름
: 학번이 결정되면 이름이 유일하게 결정됩니다.(학번 = 결정자, 이름 = 종속자)학번 → 입학년도
: 학번 앞 2자리가 입학년도(20xx년의 뒤 2자리)를 나타내므로 유일하게 결정됩니다.(학번 = 결정자, 입학년도 = 종속자)
2. 완전 함수 종속 vs 부분 함수 종속
[수강 테이블 - 기본키: (학번, 과목코드)]
학번 | 과목코드 | 과목명 | 교수명 | 성적 |
---|---|---|---|---|
13-1001 | CS101 | 자료구조 | 김교수 | A+ |
13-1001 | CS202 | 알고리즘 | 이교수 | A0 |
14-1002 | CS101 | 자료구조 | 김교수 | B+ |
- 완전 함수 종속:
(학번, 과목코드) → 성적
- 기본키 전체에 종속 - 부분 함수 종속:
과목코드 → 과목명
,과목코드 → 교수명
- 기본키 일부(과목코드)에만 종속
문제점: 부분 함수 종속으로 인해 이상 현상이 발생할 수 있습니다.
3. 이행 함수 종속
[학생 테이블]
학번 | 이름 | 학과코드 | 학과명 |
---|---|---|---|
13-1001 | 김철수 | CS | 컴퓨터과학 |
14-1002 | 이영희 | EE | 전자공학 |
12-1003 | 박민준 | CS | 컴퓨터과학 |
함수 종속 관계:
학번 → 학과코드
(기본키인 학번이 학과코드를 결정)학과코드 → 학과명
(학과코드가 학과명을 결정)- 이행 함수 종속:
학번 → 학과명
(학번 → 학과코드 → 학과명)
문제점: 이행 함수 종속으로 인해 데이터 중복과 이상 현상이 발생할 수 있습니다.
함수 종속성과 정규화
함수 종속성은 각 정규형에서 다음과 같이 활용됩니다:
연습 문제
문제 | 속성 A의 값이 속성 B의 값을 유일하게 결정할 때, 이를 기호로 어떻게 표현하는가? |
답변 | |
정답 | 정답 보기 |
문제 | 기본키 전체에 대해서만 종속되며, 기본키의 일부에는 종속되지 않는 함수 종속성을 무엇이라고 하는가? |
답변 | |
정답 | 정답 보기 |
문제 | A → B이고 B → C일 때, A → C가 성립하는 함수 종속성을 무엇이라고 하는가? |
답변 | |
정답 | 정답 보기 |
문제 | 함수 종속성에서 다른 속성의 값을 결정하는 속성을 무엇이라고 하는가? |
답변 | |
정답 | 정답 보기 |
기출 | |||||||||||||||||||||||||||||||
문제 | 다음 테이블을 보고 빈칸을 영어로 채우시오.
[수강 테이블 - 기본키: (학생, 학과)]
성적은 (학생,학과)에 대해서 ( 1 ) Functional Dependency이다.
학과교수는 학과만 알아도 식별이 가능하므로, 이 경우에는 학과교수 속성은 기본키에 ( 2 ) Functional Dependency이다.
테이블에 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 성립되고, X→Z가 성립되면 ( 3 ) Functional Dependency라고 한다. | ||||||||||||||||||||||||||||||
보기 | |||||||||||||||||||||||||||||||
답변 | 1: 2: 3: | ||||||||||||||||||||||||||||||
정답 | 정답 보기 |