2.데이터 종속성
각 컬럼 내 데이터가 다른 컬럼의 데이터에 종속되는 성질을 의미하며, 정규화 과정을 수행하기 위해 필요한 기반 개념
이러한 데이터 종속성(Data Dependency)의 개념에는 크게 함수 종속, 다가 종속, 조인 종속으로 구분됨
2. 함수 종속, Functional Dependency
함수 종속이란 릴레이션 내 attribute들 간의 관계성, 종속성을 나타내는 성질을 말함
어떤 집합이든 그 집합을 대표할 수 있는 속성이 존재한다고 할 경우,
대표 속성(식별자)과 나머지 속성 사이의 연관 관계가 함수 종속
→ 어떤 한 속성이 다른 속성을 유일하게 식별할 수 있는지?를 나타내는 성질
만약 A 속성이 B 속성을 유일하게 식별할 수 있는 식별자라면,
B 속성은 A 속성에 함수적으로 종속되었다고함
이러한 함수적 종속은 업무 요건 및 요구사항을 기반으로 고려해야함
왜냐하면 어떤 한 속성이 다른 속성을 유일하게 식별할 수 있는지에 대한 여부는 업무 요건에 따라 달라질 수 있기 때문
2-1. 함수 종속 표기 방식

X: 결정자(Determinant) Y: 종속자(Dependent)
X → Y or y = f(x)
Y의 값을 식별하기 위한 유일한 기준은 X의 값
따라서, X의 값에 대해 Y의 값이 오직 하나만 연관되어 있음
2-2. 함수적 종속 예시
Q. 아래의 릴레이션에서 함수적 종속 관계 파악해보기
#주민등록번호 | 이름 | 휴대폰 번호 | 주소 |
|---|
정답 예시
설명
주민등록번호는 유일하기 때문에 식별자가 될 수 있고, 따라서 이름, 휴대폰 번호, 주소 속성은 주민등록번호 속성에 함수적으로 종속되어 있음
따라서 주민등록번호가 그 외 속성들을 유일하게 결정할 수 있음
조건
역이 성립하지 않아야 함수적 종속이 성립될 수 있음
이름 속성의 경우에는 동명이인이 존재하기 때문에 이 속성을 통해 주민등록번호를 결정할 수는 없음
반례가 하나라도 있을 경우, 함수적 종속이 성립하지 않음
2-3. 함수적 종속 도출하기
다음의 테이블에서도 함수적 종속을 도출해보기
#주문번호 | 주문일자 | 고객번호 | 상품번호 | 고객명 | 상품명 |
|---|---|---|---|---|---|
| 10523123 | 20220922 | 101 | 5122 | 고윤기 | 식빵 |
| 10523124 | 20220923 | 102 | 5132 | 안문정 | 참기름 |
| 10553243 | 20220923 | 103 | 5362 | 문유준 | 두유 |
| 10523126 | 20220927 | 104 | 5251 | 한성수 | 삼겹살 |
| 10523127 | 20220927 | 105 | 5122 | 최해원 | 식빵 |
| 10723128 | 20220928 | 106 | 5655 | 남다솜 | 라면 |
| 10723130 | 20220929 | 107 | 5232 | 예나라 | 카레 |
| 10724512 | 20221005 | 108 | 5224 | 서나길 | 샐러드 |
정답 예시
주문번호 → 주문일자
주문번호 → 고객번호
주문번호 → 상품번호
고객번호 → 고객명
상품번호 → 상품명
함수적 종속이 성립되기 위한 결정자는 복합으로 구성할 수도 있음(복합키)
3. 함수 종속과 키, 정규화의 관계
함수 종속은 키(Key)와 밀접한 연관이 있음
왜냐하면 함수 종속의 결정자가 키가 되도록 릴레이션을 분해하는 과정이 정규화이기 때문
따라서 키가 아닌 모든 속성이 키에 직접 종속되도록 분해하는 것이 정규화라고 볼 수 있음
임의의 릴레이션에서 결정자(키)를 찾지 못하면 정규화를 진행할 수 없고,
키가 없이는 엔티티가 될 수 없으므로 키와 함수 종속은 밀접한 관계가 있음
요건을 명확하게 정의해야 해당 프로그램에서 어떤 속성이 필요한지 파악할 수 있고,
정의된 각 속성들의 의미를 명확하게 알아야 결정자를 찾을 수 있으며,
결정자가 있어야 함수 종속을 확인할 수 있고
함수 종속이 기반이 되어야 정규화를 제대로 수행할 수 있으며,
이러한 정규화를 기반으로 엔티티들이 결정됨
요건 정의
↓
속성 파악
↓
각 속성들의 의미 명확화
↓
속성들 중에서 결정자 찾기
↓
결정자를 기반으로 함수 종속 확인
↓
함수 종속을 기반으로 정규화 수행
↓
정규화를 기반으로 엔티티(릴레이션) 결정