함수적 종속이란?
함수적 종속(Functional Dependency)은 관계형 데이터베이스에서
두 개의 속성(Attribute)이나 열(Column) 사이의 종속성을 말한다.
어떤 릴레이션 R이 있을 때 X와 Y를 각각 속성의 부분집합이라고 가정해보자.
여기서 X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때,
"Y는 X에 함수적 종속된다." 라고 한다.
이 경우 X를 결정자, Y를 종속자라고 한다.
이를 기호로 표현하면 X→Y 이다.
이런 함수적 종속관계에는 아래와 같이 분류할 수 있다.
1. 완전 함수적 종속
2. 부분 함수적 종속
3.이행적 함수 종속
1. 완전 함수적 종속
완전 함수적 종속이란, 종속자가 기본키에만 종속되며,
기본키가 여러 속성으로 구성되어 있을 경우 종속자가
기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우를 말한다.
위 릴레이션에서는 기본키가 '회원번호' 속성으로 구성되어 있다.
여기서 '이름', '나이', '거주지역' 속성은 기본키인 '회원번호'를 알아야 식별이 가능해진다.
따라서 '이름', '나이', '거주지역'은 '회원번호'에 완전 함수 종속된 관계라고 볼 수 있다.
2. 부분 함수적 종속
부분 함수적 종속이란, 릴레이션에서 종속자가 기본키가 아닌 다른 속성에 종속되거나,
기본키가 여러 속성으로 구성되어 있을 경우
종속자가 기본키를 구성하는 속성 중 일부에만 종속되는 경우이다.
기본키가 '고객ID' 와 '제품 코드' 속성으로 구성된 위의 릴레이션에서
'주문 상품'은 기본키 중 '제품 코드만' 알아도 식별할 수 있다.
이 경우에는 '주문 상품' 속성은 기본키에 부분 함수 종속된 관계라고 말할 수 있다.
3. 이행적 함수 종속
릴레이션에서 X, Y, Z라는 3 개의 속성이 존재하고 X→Y, Y→Z 이란 종속 관계가 있을 경우,
X→Z가 성립될 때 이행적 함수 종속이라고 한다.
즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우를 말한다.
위의 릴레이션의 종속성을 표현해보면 아래의 그림과 같다.
여기서 보면, 상품아이디가 판매자를 결정하고 판매자가 판매자 전화번호를 결정하고 있다.
즉, 상품 아이디 → 판매자 → 판매자 전화번호 => 상품 아이디 → 판매자 전화번호
가 이행적 함수 종속성을 띄고 있는것이다.
'DB ARCHITECTURE' 카테고리의 다른 글
SQL-SERVER SCHEDULER : sqlserver 스케쥴러(2) (7) | 2021.12.15 |
---|---|
SQL-SERVER SCHEDULER : sqlserver 스케쥴러(1) (0) | 2021.12.15 |
SQL-SERVER SCHEDULER : 윈도우 스케쥴러 (0) | 2021.12.15 |
정규화(Normalization) (0) | 2021.08.02 |
제약조건(Constraint) 이란 (0) | 2021.07.29 |