Proszę o pomoc w rozwiązaniu zadania:
Wyznaczyć wszystkie klucze kandydujące schematu R=(U,F), gdzie:
U={A,D,E,B,G}, a F={B->D, E->GA, DG->A, G->E}.
Proszę o pomoc w rozwiązaniu zadania:
Wyznaczyć wszystkie klucze kandydujące schematu R=(U,F), gdzie:
U={A,D,E,B,G}, a F={B->D, E->GA, DG->A, G->E}.
U - zbiór atrybutów
F - zależności funkcyjne
Klucze kandydujące wybierasz z super kluczy, tj. zbioru atrybutów, które jednoznacznie identyfikują krotkę/rekord. Wybierasz tak, by zbiór atrybutów nie był redundantny. Tu masz 5 atrybutów => 31 możliwości wyboru klucza (bo zbiór pusty odpada). Możesz sobie wszystko wypisać i sprawdzać ręcznie, albo jakoś zawężać analizę przez różne obserwacje.
Z zależności funkcyjnych widać, że B musi wystąpić w takim kluczu, bo nie ma zależności, z której da się wywnioskować B. Wybieramy B -> tzn. że mamy też D, bo jest zależność funkcyjna B->D.
Pozostaje rozważyć A,E,G.
Do B dokładamy atrybut A i analizujemy:
BA generuje nam B(D)A, więc brakuje brakuje G i E. Jak dołożymy G, to z G->E mamy E.
BAG generuje nam: B(D)AG(E) - czyli pokryliśmy wszystkie atrybuty -> Hura, mamy klucz kandydujący!
BAE generuje nam: B(D)AE(GA) - A jest redundantne (bo jest generowane z zależności: E->GA), jak wywalimy z A z BAE, to mamy kolejny klucz kandydujący : BE
B(D)E(GA)
Do B dokładamy E i analizujemy:
...
Do B dokładamy G i analizujemy:
...