Wyznaczanie klucza kandydującego

0

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}.

1

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.

  1. 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)

  1. Do B dokładamy E i analizujemy:
    ...

  2. Do B dokładamy G i analizujemy:
    ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1