Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

DBMS의 기능적 종속성

<시간/>

함수 종속성이란 무엇입니까

DBMS의 기능적 종속성은 이름에서 알 수 있듯이 서로 종속된 테이블 속성 간의 관계입니다. E. F. Codd가 도입하여 데이터 중복을 방지하고 잘못된 설계에 대해 알 수 있습니다.

개념을 철저히 이해하기 위해 P가 속성 A 및 B와의 관계라고 가정하겠습니다. 기능적 종속성은 ->(화살표 기호)

로 표시됩니다.

그러면 다음은 화살표 기호로 속성 간의 기능적 종속성을 나타냅니다. -

A -> B


위의 내용은 다음을 제안합니다.

DBMS의 기능적 종속성

예시

다음은 기능적 종속성을 더 쉽게 이해할 수 있는 예입니다 -

<부서>가 있습니다. 두 개의 속성이 있는 테이블 - 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인 경우