3

나는 함수 종속 집합과 입력 후보 키를 입력으로 받아들이고 연습하고있다. 알고리즘이 있나요? 그리고 그런 경우에 어떻게 FD를 입력 할 수있는 웹 기반 구현이 없습니까? 그리고 출력으로 수퍼 키/후보 키의 목록을 얻으시겠습니까?주어진 후보 키를 찾는 방법 FD : s?

내가 지금 여기에 발견하고 적절한 질문이 언급 한 함수 종속이

B- 곳 how to find the highest normal form for a given relation 무엇인지 내가 연습> G

양방향> CD

EH-> AG

G-> DE

내가이 일을하는지 확인하십시오. 내가 BFHI :

FD_B-> G는 ABCDEFHI-> ABCDEFGHI로 다시 쓰여질 수 있으므로 ABCDEFHI가 수퍼 키인 것으로 나타납니다. FD BI-> CD는 ABEFGHI-> ABCDEFGHI로 다시 쓸 수 있으므로 ABEFGHI는 수퍼 키입니다. FD EH-> AG는 BCDEEFHI-> ABCDEFGHI로 다시 쓸 수 있으므로 BCDEEFHI는 수퍼 키입니다. FD G-> DE는 ABCFGHI-> ABCDEFGHI로 다시 쓸 수 있으므로 ABCFGHI는 수퍼 키입니다.

우리의 수퍼 키에는 BFHI가 모두 들어 있습니다. 따라서 BFHI가 후보 키이고 검사에서 볼 수있는 더 이상 줄일 수 없습니다 (?)

나는 올바른 방법으로 추론합니까? 여기

작동하는지 증대시키는 알고리즘이 처리 할 수있는 또 다른 질문이 있습니다

, Database extraneous attributes and decomposition

의 FD : S는

A-> BCD

BC-> DE

B-> D

D-> A

여기서 FB A-> BCD는 AEF-> ABCDEF로 쓸 수 있으므로 AEF는 수퍼 키입니다. FD BC-> DE는 ABCF-> ABCDEF로 재 작성 될 수 있으므로 ABCF는 수퍼 키입니다. FD B-> D는 ABCEF-> ABCDEF로 다시 쓸 수 있으므로 ABCEF는 수퍼 키입니다. FD D -> A는 BCDEF -> ABCDEF로 다시 쓸 수 있으므로 BCDEF는 수퍼 키입니다. 모든 수퍼 키에 대해 F는 모든 슈퍼 키에있는 유일한 구성원이므로 F가 유일한 후보 키입니다.

이 방법이 효과가 있습니까? 어떤 대답/코멘트

+1

에 대한

감사합니다 "이 경우 올 방법에는 웹 기반의 구현은 없다"- 아직 하나를 구축하지 않았기 때문에! –

+1

예 암스트롱의 공리가 있지만 그 방법이 아닙니다. 그것은 단지 FD로 할 수있는 일을 말해줍니다 : s. 나는 정의/공리보다 방법을 찾고 있습니다. 일반적으로 적용 가능한지 확인하기 위해 확대 알고리즘의 다른 응용 프로그램으로 질문을 업데이트하고 있습니다. 귀하의 의견에 많은 감사드립니다. –

답변

4
No, but as F is not in any of the FD:s then it has to be a member of every candidate key. 

Also, A->BCD, BC->DE, B->D, D->A give us 
A+ (the cover of A) = ABCDE 
B+ = ABCDE 
C+ = C 
D+ = ABCDE so the 
E+ = E 
F+ = F. 

The combinations giving ABCDEF are 
AF 
BF 
DF 
and hence the candidate keys are {AF, BF, DF} 
and every enhancement of any of those three are the superkeys 
+0

이제보기가 쉽습니다. 고맙습니다. –

관련 문제