ZAPOCET [2008-05-21] B, Reseno

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: ZAPOCET [2008-05-21] B, Reseno

Re: ZAPOCET [2008-05-21] B, Reseno

od hkvm » 3. 5. 2009 23:23

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

Re: ZAPOCET [2008-05-21] B, Reseno

od mhb » 3. 5. 2009 23:03

hkvm píše: 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.

Re: ZAPOCET [2008-05-21] B, Reseno

od seby » 3. 5. 2009 21:08

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.

Re: ZAPOCET [2008-05-21] B, Reseno

od hkvm » 3. 5. 2009 18:38

kukmuk píše:
  • 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}+ = {D,U,Z} (a taky jsi je odebral).
kukmuk píše: [*]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áš.

ZAPOCET [2008-05-21] B, Reseno

od kukmuk » 3. 5. 2009 17:43

Reseni zadani B z 2008-05-21, http://siret.ms.mff.cuni.cz/skopal/data ... 0508/B.pdf.
1.Navrh relacnich schemat
  • 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, 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 Zavislosti z "c)" tvori minimalni pokryti. Dale nalezneme prvni klic: [code] CDFKRUZ->all /F->DUZ CFKR->all /FK->R CFK->all /K->C FK->all [/code] Tedy mame prvni klic "FK" Nalezneme zavislost FR->K, ktera nema prazdny prunik prave strany a prvniho klice. Redukujeme: [code] FR->all [/code] Druhy klic je FR. Zadne dalsi klice nejsou.
  • Redundantni atributy a zavislost
  • Viz "Klice".
  • Minimalni pokryti
  • Viz "Klice".
  • Synteza
  • Nejprve sloucime FZ z minimalniho pokryti podle levych stran, tedy: F->Z, FK->R, FR->K, K->C, D->Z, Z->DU Nyni tabulky podle FZ: [b]F[/b]Z, [b]FK[/b]R, [b]FR[/b]K, [b]K[/b]C, [b]D[/b]Z, [b]Z[/b]DU Synteza prevedla do 3NF (BCNF vadi ve FRK, ze FK->R), pokryti zavislosti synteza zachovava. Bezztratovost zachovana diky tabulce obsahujici klic.
2.Dotazovani
A)
Dotaz:

Kód: Vybrat vše

((TvKanal*Vysilani)*Porad)[Nazev, Kategorie]  %  Porad[Kategorie]
Vrati Nazev pro vsechny TvKanaly vysilajici vsechny kategorie poradu.
Strom:

Kód: Vybrat vše

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:

Kód: Vybrat vše

{(o) | Ex minutaz Ex kategorie ( Porad(o, minutaz, kategorie) & non ( Ex n ( (Ex vlastnik TvKanal(n, vlastnik)) & (Ex datum Vysilani(n, o, datum))  ))) }

Nahoru