함수적 종속성
관계형 데이터베이스에서 속성 간 결정 관계를 정의하고, 후보키 도출·정규화·이상 현상 제거의 논리적 근거가 되는 데이터 종속성 개념이다.
Ⅰ. 개요 및 등장배경
가. 함수적 종속성의 개념
함수적 종속성(Functional Dependency, FD)은 관계형 데이터 모델에서 특정 속성 집합의 값이 정해지면 다른 속성 집합의 값이 하나로 결정되는 관계를 의미한다. 릴레이션 R에서 속성 집합 X와 Y가 있을 때, 임의의 두 튜플 t1, t2에 대해 t1[X] = t2[X]이면 항상 t1[Y] = t2[Y]가 성립하는 경우 X → Y로 표현한다. 이때 X는 결정자(Determinant), Y는 종속자(Dependent)라고 하며, “X가 Y를 함수적으로 결정한다”라고 설명한다. 예를 들어 학생 릴레이션에서 학번이 동일하면 학생명, 학과, 입학연도도 동일하게 결정된다면 학번 → 학생명, 학번 → 학과, 학번 → 입학연도가 성립한다.
나. 등장배경
관계형 데이터베이스에서는 하나의 테이블에 여러 속성을 함께 저장할 때 중복 저장, 갱신 불일치, 삽입 제약, 삭제 손실과 같은 이상 현상이 발생할 수 있다. 이러한 문제는 대부분 속성 간 결정 관계를 고려하지 않고 테이블을 설계한 결과로 나타난다. 예를 들어 주문상세 테이블에 고객번호, 고객명, 고객등급, 상품번호, 상품명, 주문수량을 모두 저장하면 고객번호가 고객명과 고객등급을 결정하고, 상품번호가 상품명을 결정하는데도 주문 행마다 같은 정보가 반복된다. 고객등급이 변경될 경우 여러 주문 행을 동시에 수정해야 하며, 일부 행만 수정되면 데이터 불일치가 생긴다.
다. 기술사 답안 관점의 설명 방향
- 정의는 X → Y 형식과 튜플 비교 조건으로 명확히 기술한다.
- 결정자와 종속자의 의미를 업무 규칙과 연결해 설명한다.
- 정규화, 후보키, 이상 현상 제거와 연결하여 데이터 모델링 관점의 활용성을 제시한다.
- 완전 함수 종속, 부분 함수 종속, 이행 함수 종속, 다치 종속과 구분해 설명하면 답안의 논리성이 높아진다.
함수적 종속성은 속성 값 사이의 결정 관계를 표현하는 관계형 데이터베이스 제약조건이다.
정규화 과정에서 키 식별, 중복 제거, 이상 현상 해소의 근거로 사용된다.
Ⅱ. 구성도 및 구성요소
가. 구성도
식별 기준 정의
X → Y 관계 식별
후보키·슈퍼키 도출
2NF·3NF·BCNF 판단
무손실·종속성 보존 확인
나. 구성요소
| 구분 | 요소 | 설명 |
|---|---|---|
| 표현 요소 | 결정자 X | 다른 속성 값을 결정하는 기준 속성 또는 속성 집합이다. 단일 속성일 수도 있고 복합 속성일 수도 있다. |
| 표현 요소 | 종속자 Y | 결정자 값이 같을 때 동일하게 유지되어야 하는 속성 또는 속성 집합이다. |
| 릴레이션 요소 | 튜플 비교 조건 | 두 튜플의 X 값이 동일하면 Y 값도 동일해야 한다는 조건으로 FD 성립 여부를 판단한다. |
| 키 분석 | 후보키 | 릴레이션의 모든 속성을 함수적으로 결정할 수 있는 최소 속성 집합이다. X+가 전체 속성을 포함하면 X는 슈퍼키가 될 수 있다. |
| 추론 규칙 | Armstrong 공리 | 반사성, 증가성, 이행성을 기반으로 새로운 함수적 종속성을 논리적으로 유도하는 규칙이다. |
| 정규화 요소 | 부분 함수 종속 | 복합키의 일부 속성이 비주요 속성을 결정하는 경우로, 제2정규형 위반의 주요 원인이다. |
| 정규화 요소 | 이행 함수 종속 | 키가 아닌 속성이 다른 비주요 속성을 결정하는 구조로, 제3정규형 위반을 유발한다. |
| 검증 요소 | 속성 폐포 | 특정 속성 집합으로부터 함수적 종속성을 반복 적용해 도달 가능한 모든 속성 집합을 계산한 결과이다. |
| 분해 요소 | 무손실 분해 | 릴레이션을 여러 릴레이션으로 나눈 뒤 조인했을 때 원래 릴레이션을 정보 손실 없이 복원할 수 있는 성질이다. |
함수적 종속성은 결정자, 종속자, 튜플 비교 조건, 추론 규칙, 속성 폐포로 구성된다.
구성요소를 통해 후보키 산정과 정규화 위반 여부를 체계적으로 판단할 수 있다.
Ⅲ. 동작방식 및 아키텍처
가. 함수적 종속성 성립 조건
릴레이션 R(A, B, C, D)에서 A → B가 성립하려면, R에 존재할 수 있는 모든 합법적 튜플 쌍에 대해 A 값이 같은 경우 B 값도 반드시 같아야 한다. 예를 들어 사원번호 → 사원명이 성립한다면 사원번호가 1001인 모든 튜플의 사원명은 항상 동일해야 한다. 만약 같은 사원번호에 서로 다른 사원명이 존재한다면 FD는 위반된다.
나. Armstrong 공리에 의한 추론
Armstrong 공리는 주어진 함수적 종속성 집합 F로부터 논리적으로 성립하는 새로운 함수적 종속성을 도출하기 위한 기본 규칙이다. 반사성은 Y가 X의 부분집합이면 X → Y가 성립한다는 규칙이다. 증가성은 X → Y가 성립하면 임의의 속성 집합 Z를 양쪽에 추가해 XZ → YZ가 성립한다는 규칙이다. 이행성은 X → Y이고 Y → Z이면 X → Z가 성립한다는 규칙이다.
- 반사성: X ⊇ Y이면 X → Y 성립
- 증가성: X → Y이면 XZ → YZ 성립
- 이행성: X → Y, Y → Z이면 X → Z 성립
- 합집합: X → Y, X → Z이면 X → YZ 성립
- 분해: X → YZ이면 X → Y, X → Z 성립
- 의사이행: X → Y, WY → Z이면 WX → Z 성립
다. 속성 폐포 계산 방식
속성 폐포 X+는 특정 속성 집합 X가 주어진 함수적 종속성 집합 F를 통해 결정할 수 있는 모든 속성을 의미한다. 계산은 X+를 X로 초기화한 뒤, F에 포함된 FD 중 왼쪽 결정자가 현재 X+에 포함되는 규칙을 찾아 오른쪽 종속자를 X+에 추가하는 방식으로 반복한다. 더 이상 추가되는 속성이 없을 때 계산을 종료한다.
예를 들어 R(A, B, C, D, E), F = {A → B, B → C, CD → E}일 때 A+는 처음에 {A}에서 시작한다. A → B에 의해 B가 추가되고, B → C에 의해 C가 추가된다. 그러나 D가 없으므로 CD → E는 적용할 수 없다. 따라서 A+ = {A, B, C}가 되며 A만으로는 전체 릴레이션을 결정하지 못한다. 반면 AD+는 {A, D}에서 시작해 B, C가 추가되고, C와 D가 모두 있으므로 E까지 추가되어 {A, B, C, D, E}가 된다.
라. 정규화와의 연결 구조
제2정규형은 기본키가 복합키일 때 비주요 속성이 기본키 전체에 완전 함수 종속되어야 함을 요구한다. 제3정규형은 비주요 속성이 기본키에 이행적으로 종속되지 않아야 함을 요구한다. BCNF는 모든 비자명 함수적 종속성 X → Y에 대해 X가 슈퍼키여야 한다는 더 강한 조건을 요구한다.
함수적 종속성은 튜플 비교 조건으로 성립 여부를 판단하고 Armstrong 공리로 새로운 종속성을 추론한다.
속성 폐포 계산은 후보키 판별과 정규화 분해의 실무적 출발점이 된다.
Ⅳ. 실무적용 및 사례
가. 주문 업무 데이터 모델링 사례
주문상세 릴레이션을 R(주문번호, 상품번호, 고객번호, 고객명, 상품명, 주문일자, 수량, 단가)로 설계했다고 가정한다. 업무 규칙상 주문번호는 고객번호와 주문일자를 결정하고, 고객번호는 고객명을 결정하며, 상품번호는 상품명과 단가를 결정한다. 또한 하나의 주문에서 여러 상품이 주문될 수 있으므로 주문번호와 상품번호의 조합이 수량을 결정한다.
나. 정규화 적용 결과
| 분해 릴레이션 | 주요 함수적 종속성 | 설계 효과 |
|---|---|---|
| 주문(주문번호, 고객번호, 주문일자) | 주문번호 → 고객번호, 주문일자 | 주문 단위 정보를 주문상세 반복 행에서 분리한다. |
| 고객(고객번호, 고객명) | 고객번호 → 고객명 | 고객명 변경 시 고객 테이블 한 행만 수정하면 된다. |
| 상품(상품번호, 상품명, 단가) | 상품번호 → 상품명, 단가 | 상품 정보와 가격 정보를 주문상세 중복 저장에서 제거한다. |
| 주문상세(주문번호, 상품번호, 수량) | 주문번호·상품번호 → 수량 | 주문과 상품의 조합별 수량만 저장하여 관계 의미를 명확히 한다. |
다. 이상 현상 제거 효과
- 갱신 이상 제거: 고객명 또는 상품명을 여러 주문상세 행에서 반복 수정하지 않아도 된다.
- 삽입 이상 완화: 아직 주문되지 않은 상품도 상품 테이블에 독립적으로 등록할 수 있다.
- 삭제 이상 방지: 특정 주문상세를 삭제해도 고객 정보나 상품 정보가 함께 사라지지 않는다.
- 무결성 향상: 결정자별로 데이터 저장 위치가 분리되어 동일 의미의 속성 값이 일관되게 유지된다.
실무에서는 업무 규칙에서 FD를 도출한 뒤 주문, 고객, 상품처럼 의미 단위로 릴레이션을 분해한다.
정규화 이후에는 중복과 이상 현상이 줄어들지만, 성능 목적의 비정규화는 별도 통제 기준이 필요하다.
Ⅴ. 비교분석 및 발전전망
가. 함수적 종속성 유형 비교
| 구분 | 의미 | 정규화 관련성 |
|---|---|---|
| 완전 함수 종속 | 복합 결정자의 전체 속성이 있어야 종속자를 결정할 수 있는 관계이다. | 제2정규형 만족 판단에 필요하다. |
| 부분 함수 종속 | 복합키의 일부 속성만으로 비주요 속성이 결정되는 관계이다. | 제2정규형 위반 원인이 된다. |
| 이행 함수 종속 | 키가 비키 속성을 결정하고, 그 비키 속성이 다시 다른 비키 속성을 결정하는 관계이다. | 제3정규형 위반 원인이 된다. |
| 자명 함수 종속 | Y가 X의 부분집합일 때 성립하는 X → Y 관계이다. | 반사성에 의해 항상 성립하므로 설계 개선 효과는 제한적이다. |
| 비자명 함수 종속 | Y가 X의 부분집합이 아닌 경우의 X → Y 관계이다. | BCNF 판단에서 중요하게 다룬다. |
| 다치 종속 | 하나의 결정자에 대해 독립적인 값 집합이 여러 개 존재하는 종속성이다. | 제4정규형에서 다룬다. |
나. 함수적 종속성과 키의 비교
함수적 종속성은 속성 간 결정 관계이고, 키는 릴레이션의 튜플을 유일하게 식별할 수 있는 속성 집합이다. 모든 후보키는 릴레이션의 전체 속성을 함수적으로 결정하지만, 모든 결정자가 후보키가 되는 것은 아니다. 예를 들어 고객번호 → 고객명은 성립하지만 주문상세 릴레이션 전체에서 고객번호만으로 주문번호, 상품번호, 수량을 모두 결정할 수 없다면 고객번호는 해당 릴레이션의 후보키가 아니다.
다. 데이터 모델링·품질관리 관점의 발전
함수적 종속성은 전통적인 정규화 이론에서 출발했지만, 현재는 데이터 품질 진단과 데이터 거버넌스에서도 활용 가치가 높다. 대규모 운영 데이터에서는 업무 규칙이 문서화되어 있지 않거나, 시스템 통합 과정에서 동일 개념의 속성이 여러 이름으로 존재하는 경우가 많다. 이때 데이터 프로파일링을 통해 특정 속성이 다른 속성을 얼마나 일관되게 결정하는지 분석하면 후보 식별자, 중복 레코드, 코드 불일치, 참조 무결성 문제를 찾아낼 수 있다.
함수적 종속성은 키와 동일한 개념이 아니라, 키를 판별하고 정규화를 수행하기 위한 속성 결정 관계이다.
향후 데이터 품질 진단, 기준정보 정합성 검증, 데이터 프로파일링에서도 FD 기반 분석이 계속 활용된다.
'데이터베이스' 카테고리의 다른 글
| 모든 결정자가 후보키인 정규형: 제3정규형(3NF)의 한계 극복과 BCNF(3.5NF) 변환 원리 (0) | 2026.05.26 |
|---|---|
| 장바구니 분석의 비밀: 연관 분석(Association Analysis) 개념과 주요 알고리즘 (0) | 2026.05.23 |
| DB 동시성 제어의 절대 규칙: 2PL의 확장/수축 단계와 연쇄 복귀 방지(Strict 2PL) (0) | 2026.04.16 |
| MSA 환경의 데이터 일관성 보장: 2PC의 Prepare-Commit 원리와 Saga(사가) 패턴 비교 (0) | 2026.04.16 |
| 데이터 파이프라인의 진화: Data Lake에서 Data Mesh, 그리고 카파(Kappa) 아키텍처까지 (0) | 2026.04.09 |