함수 종속성이란 무엇입니까
DBMS의 기능적 종속성은 이름에서 알 수 있듯이 서로 종속된 테이블 속성 간의 관계입니다. E. F. Codd가 도입하여 데이터 중복을 방지하고 잘못된 설계에 대해 알 수 있습니다.
개념을 철저히 이해하기 위해 P가 속성 A 및 B와의 관계라고 가정하겠습니다. 기능적 종속성은 ->(화살표 기호)
로 표시됩니다.그러면 다음은 화살표 기호로 속성 간의 기능적 종속성을 나타냅니다. -
A -> B |
위의 내용은 다음을 제안합니다.
예시
다음은 기능적 종속성을 더 쉽게 이해할 수 있는 예입니다 -
<부서>가 있습니다. 두 개의 속성이 있는 테이블 - DeptId 및 부서명 .
DeptId =부서 ID 부서명 =부서 이름 |
부서 ID 우리의 기본 키입니다. 여기, DeptId 고유하게 DeptName 식별 기인하다. 이는 부서 이름을 알고 싶다면 먼저 DeptId가 있어야 하기 때문입니다. .
DeptId | 부서명 |
001 | 재무 |
002 | 마케팅 |
003 | HR |
따라서 위의 DeptId 간의 기능적 종속성은 및 부서명 DeptId 로 결정할 수 있습니다. 기능적으로 DeptName에 종속됨 -
DeptId -> DeptName |
기능적 종속성의 유형
기능적 종속성은 세 가지 형식이 있습니다 -
- 사소한 기능 종속성
- 사소하지 않은 기능 종속성
- 완전히 중요하지 않은 기능 종속성
사소한 기능 종속성으로 시작하겠습니다 -
사소한 함수 종속성
B가 −
에서 A의 부분집합일 때 발생합니다.A ->B |
예
동일한 <부서>를 고려하고 있습니다. 사소한 종속성의 개념을 이해하기 위해 두 가지 속성이 있는 테이블입니다.
다음은 DeptId 이후의 사소한 기능 종속성입니다. DeptId 의 하위 집합입니다. 및 부서명
{ DeptId, DeptName } -> Dept Id |
중요하지 않은 기능 종속성
−
에서 B가 A의 부분집합이 아닐 때 발생합니다.A ->B |
예
DeptId -> DeptName |
DeptName이 DeptId의 하위 집합이 아니기 때문에 위의 내용은 중요하지 않은 기능적 종속성입니다.
완전히 사소하지 않은 기능 종속성
−
에서 A 교집합 B가 null일 때 발생합니다.A ->B |
암스트롱의 기능적 종속성의 공리 속성
Armstrong의 Axioms 속성은 1974년 William Armstrong이 기능적 종속성을 추론하기 위해 개발했습니다.
속성은 다음이 충족되는 경우 적용되는 규칙을 제안합니다.
- 전이성
A->B 및 B->C이면 A->C, 즉 전이 관계입니다. - 반성
A-> B, B가 A의 부분집합인 경우 - 증강
마지막 규칙은 다음을 제안합니다:AC->BC, A->B인 경우