2012-12-14 3 views
4

저는 현재 기능적 종속성에 대해 배우고 있으며 그 뒤에있는 개념을 고민하기 위해 고심하고 있습니다.Functional Dependencies 이해

고객

|-----------|--------------|------------|------------------|------------------| 
|Cust-ID | Cust-FName |Cust-LName |Cust-Email  |Cust-Pw   | 
|-----------|--------------|------------|------------------|------------------| 
|1   |John   |Smith  |[email protected] |srt6564sdgjhy55y | 
|2   |Adam   |Borneo  |[email protected] |45657ythjdfgqAfd | 
------------------------------------------------------------------------------- 

두 후보 키가 있습니다 : CUST-ID 및 CUST-리스팅 (하나 개의 이메일 주소가 속할 수 한 고객)

내가 테이블을 말해봐. P.K로 cust-ID를 선출하면 유일한 기능 종속성은 다음과 같습니다.

{Cust-ID} -> {Cust-FName, Cust-LName, Cust-Email, Cust-Pw}?

또는, 나는/두 후보 키를 나타냅니다 그릴 것 :

{Cust-ID} -> {Cust-FName, Cust-LName, Cust-Email, Cust-Pw}

{Cust-Email} -> {Cust-ID, Cust-FName, Cust-LName, Cust-Pw}?

본능은 나에게 말해 줘요. ​​그러나 이것은 완전히 새로운 주제입니다. 나는 어떤 도움을 주셔서 감사합니다!

답변

1

기능 종속성 설정은 항상 [후보] 키의 수퍼 세트입니다. 즉, 은 전체 관계를 포괄하는 속성 목록과의 기능 종속성입니다. 따라서 나열된 두 개의 후보 키도 기능 종속성입니다.

0

{Cust-ID} -> {Cust-FName, Cust-LName, Cust-Email, Cust-Pw} 

{Cust-Email} -> {Cust-ID, Cust-FName, Cust-LName, Cust-Pw}

는 귀하의 경우 함수 종속 있습니다.

기능 종속성은 다음과 같은 상황입니다. 화살표의 왼쪽에있는 열에 대해 동일한 값을 갖는 두 행이있을 때마다 화살표 오른쪽에있는 열의 값 평등해야합니다. 동일한 Cust-ID를 가진 두 개의 행이있는 경우 이름, 전자 메일 및 암호 열이 동일해야합니다. 동일한 Cust-Email을 가진 두 개의 행이있는 경우 (예에서) 이름, 전자 메일 및 암호 열은 동일해야합니다.

테이블이 세 번째 정규 형식이 아닌 경우 왼쪽에있는 키의 적절한 하위 집합과 기능 종속성을 가질 수 있습니다. 실제로 함수 종속성 측면에서 후보 키와 일반 양식 (2NF, 3NF, BCNF)을 정의합니다.

functional dependencies on our company blog에 대한 자세한 내용을 볼 수 있습니다. 그것은 데이터 정규화에 대한 일련의 게시물 중 첫 번째 부분입니다.