2017-12-11 1 views
-1

함수 종속의 집합을 관계형 스키마 R (A, B, C, D, E, G)데이터베이스 - 함수 종속

제공 : 어떻게

F = {A->BC,C->BG,CD->E,G->D,E->B,CE->A,BH->E} 

이 사람이 나에게 설명 할 수를 C와 E의 관계를 찾으시겠습니까? 그리고 C와 A 사이에?

+0

안녕하세요. "사이의 관계"는 아무 의미도 없습니다. 기술 용어를 올바르게 사용하려면 게시물을 수정하십시오. (FD A -> A가 보유하고 있는지 여부 등을 알고 싶습니까?) 거기에있는 동안 제목을 수정하여 인터넷 검색을 할 때 찾을 수있는 제목으로 편집하십시오. 또한 google 'stackexchange homework'& 편집 한 일부 작업을 편집하십시오. – philipxy

답변

1

함수 종속성이있는 관계 스키마가있는 경우 "두 속성 간의 관계 찾기"라는 문구가 명확하지 않습니다. C와 E의 관계는 무엇입니까? C가 E를 결정한다면 하나는 찾아야합니까? 또는 E가 C를 결정한다면? 아니면 그들이 같은 후보 키에 속하는 경우? 아니면 또 뭐야?

예를 들어, C가 E 또는 viceversa를 결정하는지 알고 싶다면 두 중 하나의 닫음을 계산하고 다른 하나가이 닫음에 속하는지 찾을 수 있습니다.

예를 들어 E가 C의 폐쇄 (C +로 작성)에 속하면 C -> E가 성립한다는 것을 알 수 있습니다 (즉, 함수 종속성 C -> E는 주어진 기능 의존성). 또는 C가 E의 종결에 속하면, 우리는 E -> C가 성립한다는 것을 알고 있습니다.

사용 가능한 종속성을 사용하는 간단한 알고리즘을 사용하여 일련의 속성을 닫을 수 있습니다. 속성 세트로 시작하고 왼쪽 부분이 클로저에 포함되도록 각 종속성에 대해 그리고 오른쪽 부분이 포함되지 않은 경우 오른쪽 파트를 클로저에 추가합니다. 예를 들어 :

C+ = C (we start with the attribute itself) 
C+ = CBG (using C->BG, we add BG to the closure) 
C+ = CBGD (using G -> D) 
C+ = CBGDE (using CD -> E) 
C+ = CBGDEA (using CE -> A) 

없음 종속

사용할 수 있습니다, 그래서 우리가 여기 중지하고 E는 C의 폐쇄에 속하기 때문에, 그주의 (실제로 C가 후보 키이다), C-> E는 동안, 보유, E +를 계산하면 클로저는 BE이므로 E는 C를 결정하지 않습니다.