- HOME
- [종료]구루비 DB 스터디
- 2014년 상반기 - 오라클 데이터베이스 스터디
- 함수 종속
1. 함수 종속(Functional Dependency)
1) 데이터 종속성(Data Dependency)
- 데이터 종속성에는 3가지 종속이 존재하며, 그 중 대표적인 종속은 함수 종속임
- 함수 종속(Functional Dependency)
- 다가 종속(Multivalued Dependency)
- 조인 종속(Join Dependency)
- 함수 종속은 엔터티내에 존재하는 속성 간의 종속성을 의미함
- 엔터티 내 A 속성의 값이 B 속성의 값을 유일하게 식별할 수 있다면 B 속성은 A 속성에 함수적으로 종속되었음을 의미
- 속성 간 종속성을 규명해 집합을 분리하므로, 속성과 엔터티를 정의하고 관계를 파악하는 데 절대적 역할
- 이를 기반으로 정규화 과정을 거치면 업무 요건을 만족하면서 엔터티 주제에 맞도록 속성이 배치됨
2. 결정자(Determinant) / 종속자(Dependent)
- 결정자 / 종속자
- 결정자 : 속성 간의 종속성을 규명할 때 기준이 되는 값
- 종속자 : 결정자의 값에 의해 정해지는 값
- 속성 Y가 속성X에 의해 함수적으로 종속된다는 말은 속성 X의 값을 이용해 속성 Y의 값을 유일하게 식별할 수 있다는 의미
- 결정자 X의 값은 반드시 하나의 Y값과 연관됨
- X 값에 의존하는 Y 값은 하나뿐이지 다른 Y 값이 있을 수 없음
- 기호
- X → Y
- Y = F(X)
- X : 결정자(Determinant), Y : 종속자(Dependent)
- 결정자 사례
- 주민등록번호, 이름, 휴대전화번호, 주소로 이루어진 엔터티일 경우 주민등록번호는 결정자
- 주민등록번호를 알 경우 나머지들은 모두 유일하게 식별이 가능함
- 종속자 사례
- 이름으로 주민등록번호가 고유하게 결정되지 않으므로 종속자
3. 함수 종속 사례
- 주문번호, 주문일자, 고객번호, 상품코드, 고객명, 상품명으로 구성된 엔터티에서 함수 종속(FD) 도출
- FD1 : 주문번호 → 주문일자
- FD2 : 주문번호 → 고객번호
- FD3 : 주문번호 → 상품코드
- FD4 : 고객번호 → 고객명
- FD5 : 상품코드 → 상품명
- X → Y와 같이 속성 간의 종속 관계 발생 시, X와 Y는 항상 함께 존재해야 하며, 결정자는 엔터티의 주 식별자가 됨
- 엔터티_1 : #주문번호, 주문일자, 고객번호, 상품코드
- 엔터티_2 : #고객번호, 고객명
- 엔터티_3 : #상품코드, 상품명
- 다른 방식 표현
- FD6 : 주문번호 → (주문일자, 고객번호, 상품코드)
- FD7 : (주문번호, 상품코드) → 주문수량
- FD6, FD7 역 사례
- FD6은 FD1, FD2, FD3으로 분리 가능
- FD7은 FD8, FD9로 분리 불가
- 직접 / 간접 속성
- X → Y → Z 종속이 있을 경우, Z는 X에 간접종속이 되는데 이 경우 X, Y, Z를 하나의 엔터티에 포함시키면 안되고, X, Y를 엔터티_1, Y, Z를 엔터티_2로 도출해야 함
- X → Y → Z 와 같은 종속을 이행 종속(Transitive Dependency)이라 하며, 3정규형과 관련된 종속
- 함수종속은 일반적으로 직접 종속을 의미함
4. 폐포(Closure)
- 정규화는 함수 종속의 결정자가 키가 되도록 엔터티를 분해하는 과정
- 키가 아닌 모든 속성이 키에 직접 종속되도록 분해하는 것이며, 이로 인해 키와 함수 종속은 밀접한 관련이 있음
- 폐포(Closure)
- X의 폐포는 X에 종속됐다고 추론할 수 있는 모든 속성의 집합을 의미함
- X → Y, Z 라면 X의 폐포는 X, Y, Z라고 함
- 폐포 사례
- 엔터티 R에 {A, B, C, D, E| 아래와 같은 함수 종속이 있을 경우
- 폐포
- A+ = A, C
- B+ = B, D
- (A, B)+ = A, B, C, D, E
- 폐포 (A, B)+가 엔터티 R의 모든 속성을 가지고 있으므로, R 엔터티의 키는 A, B가 됨
- 종속성 추론 규칙
- Y ⊆ X 이면 X → Y 성립함
- X → Y 이면 XZ → YZ 성립함
- X → Y 이고, Y → Z 이면 X → Z 성립함
- X → YZ 이면, X → Y 이면 X → Z 성립함
- X → Y 이고, X → Z 이면 X → YZ 성립함
- X → Y 이고, YZ → W 이면 XZ → W 성립함
- 함수 종속을 활용한 정규형 도출 방법
- 방법_1 : 엔터티에 존재하는 모든 함수 종속을 구하면 각 FD가 정규형 엔터티가 됨
- 방법_2 : 엔터티의 키를 먼저 도출한 후, 2/3정규화를 수행해 더는 분해될 수 없는 엔터티를 만드는 것
- 방법_2의 경우 키를 도출하려면 폐포를 알아야 하고, 폐포를 구하려면 엔터티에 존재하는 모든 함수 종속을 알아야 하므로, 방법_1과 같아짐
- 엔터티는 정규화에 의해 생성되고, 정규화는 함수 종속에 의해 생성되며, 함수 종속은 결정자가 없이는 존재할 수 없음
- HOME
- [종료]구루비 DB 스터디
- 2014년 상반기 - 오라클 데이터베이스 스터디
- 함수 종속