함수적 종속성
✒️ 2025-05-28 15:26 내용 수정
참고 자료 : JI-DUM 함수종속성, 위키백과 데이터베이스 정규화, 코딩공장공장장's 함수 종속성(완전 함수 종속, 부분함수 종속, 이행함수 종속)의 개념
관계 스키마 중에서 어느 속성군의 값이 정해지면 다른 속성군의 값이 정해지는 것
- 하나의 테이블에서 한 컬럼의 값(A)이 다른 컬럼의 값(B)를 결정하게 되는 관계를 말한다.
- B가 A에 종속적일 때 A->B와 같이 표기한다.
- ex) 학생 테이블에서 학생 ID, 학생 이름, 학생 전공 속성이 존재한다고 할 때 학생 이름과 학생 전공은 학생 ID에 함수 종속이다.
| 학생ID | 이름 | 전공 |
|---|---|---|
| 1000 | 김학생 | 물리학과 |
| 1001 | 박학생 | 전자공학과 |
| 1002 | 최학생 | 경영학과 |
1. 완전 함수 종속
A와 B가 관계 R의 속성이고, B가 A에 함수 종속(A->B)일 때 B의 어떤 값도 A의 부분 집합에 대응되지 않을 때
- X’⊂X 이고 X’→Y를 만족하는 속성 X'이 존재하지 않음
- 종속자가 기본키에만 종속되어 있고, 기본 키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분 집합에 종속되는 경우
- 설명이 어려우니 예시로 직접 확인해보자.
- ex1) 학생 테이블에서 학생 ID, 학생 이름, 학생 전공, 거주지, 전화번호 속성이 존재한다고 할 때 학생 ID를 알면 이름, 전공, 거주지, 전화번호를 식별할 수 있다.
- ex2) 하지만 이름만으로는 이 학생의 ID, 전공, 거주지, 전화번호를 식별하기 어렵다.
- ex3) 마찬가지로 거주지만으로는 학생의 다른 속성들을 식별하기 어렵다.
- 즉 이 예제에서 학생 ID를 제외한 다른 속성들은 테이블의 서로 다른 속성들에 종속되어 있지 않기 때문에 완전 함수 종속이다.
| 학생ID | 이름 | 전공 | 거주지 | 전화번호 |
|---|---|---|---|---|
| 1000 | 김학생 | 물리학과 | 인천 | 123-4567 |
| 1001 | 박학생 | 전자공학과 | 서울 | 147-2589 |
| 1002 | 최학생 | 경영학과 | 경기 | 369-2574 |
| 1003 | 최학생 | 건축학과 | 서울 | 541-8754 |
2. 부분 함수 종속
관계에서 종속자가 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 되어 있어 기본키를 구성하는 속성 중 일부에게 종속된 경우
- X’⊂X 이고 X’→Y를 만족하는 속성 X'이 존재함
- ex) 제품 테이블에 제품 번호, 이름, 개수, 종류 속성이 존재하고, 제품 번호와 이름을 기본키로 지정했다. (예시가 적합하지 않을 수 있다.)
- 제품 번호와 이름에 개수, 종류가 종속되어 있다. ((제품 번호, 이름) -> 개수, 종류)
- 이름을 통해 종류를 알 수 있다. (이름 -> 종류)
| 제품 번호 | 이름 | 개수 | 종류 |
|---|---|---|---|
| 001 | 사과 | 12개 | 과일 |
| 002 | 서랍 | 3개 | 가구 |
| 003 | 볼펜 | 10개 | 필기구 |
| 004 | 바나나 | 4개 | 과일 |
3. 이행 함수 종속
A, B, C가 각각 관계 R에 상호 중복되지 않고 A는 1차 키 외의 속성인 경우에, A->B, B->C 종속 관계라면 A->C가 성립
- ex) 제품 테이블에 제품 번호, 이름, 개수, 종류, 매장 위치 속성이 존재하고, 제품 번호를 기본키로 지정했다. (예시가 적합하지 않을 수 있다.)
- 이름에 종류가 종속되어 있다. (이름 -> 종류)
- 매장 위치가 종류에 종속되어 있다. (종류 -> 매장 위치)
- 이름에 매장 위치가 종속되어 있다. (이름 -> 매장 위치)
| 제품 번호 | 이름 | 개수 | 종류 | 매장 위치 |
|---|---|---|---|---|
| 001 | 사과 | 12개 | 과일 | 식료품 |
| 002 | 서랍 | 3개 | 가구 | 가구매장 |
| 003 | 볼펜 | 10개 | 필기구 | 사무용품 |
| 004 | 바나나 | 4개 | 과일 | 식료품 |