ZAPOCET [2008-05-21] B, Reseno

kukmuk at 2009-05-03 17:43:56

Reseni zadani B z 2008-05-21, http://siret.ms.mff.cuni.cz/skopal/data ... 0508/B.pdf.
1.Navrh relacnich schemat

  • Klice

  • Redundantni atributy a zavislost

  • Minimalni pokryti

  • Synteza

2.Dotazovani
A)
Dotaz:

((TvKanal*Vysilani)*Porad)[Nazev, Kategorie]  %  Porad[Kategorie]

Vrati Nazev pro vsechny TvKanaly vysilajici vsechny kategorie poradu.
Strom:

TvKanal
        prirozene spojeni
Vysilani
                       prirozene spojeni
        Porad
                                               projekce (nazev, kategorie)
                                                                                    deleni
Porad
       projekce (kategorie)

Poradi:

  • prirozene spojeni (TvKanal, Vysilani)

  • prirozene spojeni (Porad)

  • projekce (nazev, kategorie)

  • projekce (kategorie)

  • deleni

B)
Porady, ktere se vysilaji na kanalech, ktere nejsou v relaci TvKanal nebo se na kanalech z relace TvKanal nevysilaji (nejsou v relaci Vysilani).

Dotaz neni bezpecny - obsahuje neomezene ohodnoceni promennych kvuli FA (vyskyt symbolu "pro vsechny").

Bezpecny dotaz je:

{(o) | Ex minutaz Ex kategorie ( Porad(o, minutaz, kategorie) & non ( Ex n ( (Ex vlastnik TvKanal(n, vlastnik)) & (Ex datum Vysilani(n, o, datum))  ))) }
hkvm at 2009-05-03 18:38:56

kukmuk wrote:

  • Klice
    Na hledani klicu potrebujeme minimalni pokryti, tedy
    a)Kanonicke pokryti
    F->D, F->U, F->Z, FK->R, FR->C, FR->D, FR->K, FR->U, FR->Z, K->C, D->Z, Z->D, Z->U
    b)Redukovane atributy u zavislosti (ty uz jsou redukovane v zadani), tedy:
    F->D, F->U, F->Z, FK->R, FR->C, FR->K, K->C, D->Z, Z->D, Z->U
    c)Odstraneni redundatnich zavislost:
    F->Z, FK->R, FR->K, K->C, D->Z, Z->D, Z->U

ad b) Jak to, že jsou atributy redukované už v zadání? Když vezmu to kanonické pokrytí, tak v závislostech FR->D, FR->U, FR->Z je redundantní atribut R, protože {F}<sup>+</sup> = {D,U,Z} (a taky jsi je odebral).

kukmuk wrote: [*]Redundantni atributy a zavislost
Viz "Klice".[/list]

Kde jsou tam vidět ty redundatní závislosti? Jestli tím myslíš ty, co zmizely mezi a) a c), resp. b) a c), tak to si myslím, že nejsou všechny, protože třeba F->Z je v tom kanonickém pokrytí redundatní taky (můžu jít F->D, D->Z a mám F->Z). Neredundantní se stane teprve když odstraníš F->D (které je redundantní taky). Ta redundance FZ a minimální pokrytí spolu nesouvisí až tak přímo, pro každý redundantní atribut je potřeba tu redundanci kontrolovat znovu při konstrukci min. pokrytí.

Se zbytkem řešení souhlasím. Díky, že to sem dáváš.

seby at 2009-05-03 21:08:29

CFK není klíč, je třeba ještě použít pravidlo K->C, čímž dostaneme opravdový klíč FK. Toto pravidlo už se potom nepoužije při hledání druhého klíče.
U stromu a pořadí bych měl stejnou připomínku, jako u varianty A (tak se tam kdažtak mrkněte).
U dotazu B) si opět myslím, že není třeba vypisovat nedůležité proměnné.
Souhlasím s hkvm.

mhb at 2009-05-03 23:03:46

hkvm wrote: Kde jsou tam vidět ty redundatní závislosti? Jestli tím myslíš ty, co zmizely mezi a) a c), resp. b) a c), tak to si myslím, že nejsou všechny, protože třeba F->Z je v tom kanonickém pokrytí redundatní taky (můžu jít F->D, D->Z a mám F->Z). Neredundantní se stane teprve když odstraníš F->D (které je redundantní taky). Ta redundance FZ a minimální pokrytí spolu nesouvisí až tak přímo, pro každý redundantní atribut je potřeba tu redundanci kontrolovat znovu při konstrukci min. pokrytí.

Je otázka, co po Tobě v testu chce. Jako v lineární algebře je důležité, co začneš vyškrtávat, a podle toho Ti zbude jedna z ekvivalentních „bazí“. Podle mého není otázka situována na to, najít všechny „báze“ (možné větve výpočtu), ale pouze jedna stačí - nebo ne? Záleží to na interpretaci, takže se rád nechám přesvědčit o opaku.

hkvm at 2009-05-03 23:23:41

Otázka je:

Určete:

  • redundantní atributy a závislosti

  • minimální pokrytí

Moje interpretace je, že pro každou závilost mám říct, jestli je vzhledem ke kanonickému pokrytí redundantní, a potom z tohoto pokrytí některé redundantní závislosti vyškrtat tak, abych měl minimální pokrytí.

Nemám nejmenší potuchy, jestli je to opravdu to co se chce, ale dává mi to smysl, protože jinak jsou to otázky na to samé. Když si to zkusím v tom programu, co ho Skopal na stránkách odkazuje, tak taky určí všechny red. atributy vzhledem ke kanonické, a potom při vyškrtání upozorní na ty, co přestanou být redundantní a v min. pokrytí budou, takže bych to udělal stejně...