ZAPOCET [2008-05-21] A, Reseno

Základní kurs podávající průřez problematikou. Jsou popsány tři úrovně pohledu na data. Konceptuální modelování je založeno na ER modelu, databázové modelování se zabývá podrobně teorií relačního modelu dat (algebra, kalkul, základy SQL, algoritmy návrhu relační databáze, normální formy) a principy objektově-relačního modelu. Transakční zpracování a paralelní přístup, algoritmy implementace relačních operací.
kukmuk
Matfyz(ák|ačka) level I
Příspěvky: 10
Registrován: 2. 2. 2009 20:20
Typ studia: Informatika Bc.

ZAPOCET [2008-05-21] A, Reseno

Příspěvek od kukmuk »

Reseni zadani A z 2008-05-21, http://siret.ms.mff.cuni.cz/skopal/data ... 0508/A.pdf.
1.Navrh relacnich schemat
  • Klice
  • Na hledani klicu potrebujeme minimalni pokryti, tedy a)Redukovane atributy u zavislosti (ty uz jsou redukovane v zadani), tedy: CDe->N, C->S, SDe->Vy, De->Vi, DeDa->Po, Po->Vy, CDa->Pr b)Odstraneni redundatnich zavislost: Zadne redundantni zavislosti nejsou. Dale nalezneme prvni klic: [code] CSDeVyNDaViPoPr->all /C->S CDeVyNDaViPoPr->all /Po->Vy CDeNDaViPoPr->all /CDe->N CDeDaViPoPr->all /De->Vi CDeDaPoPr->all /DeDa->Po CDeDaPr->all /CDa->Pr CDeDa->all [/code] Tedy mame prvni klic "CDeDa" V minimalnim pokryti ale neexistuje zavislost, ktera by mela prunik jeji prave strany s klicem neprazdny, proto neexistuje dalsi klic.
  • Redundantni atributy a zavislost
  • Viz "Klice".
  • Minimalni pokryti
  • Viz "Klice".
  • BCNF
  • [b]CDeDa[/b]SVyNViPoPr /CDe->N [b]CDe[/b]N ; [b]CDeDa[/b]SVyViPoPr /C->S [b]CDe[/b]N ; [b]C[/b]S ; [b]CDeDa[/b]VyViPoPr /De->Vi [b]CDe[/b]N ; [b]C[/b]S ; [b]De[/b]Vi ; [b]CDeDa[/b]VyPoPr /DeDa->Po [b]CDe[/b]N ; [b]C[/b]S ; [b]De[/b]Vi ; [b]DeDa[/b]Po ; [b]CDeDa[/b]VyPr /CDa->Pr [b]CDe[/b]N ; [b]C[/b]S ; [b]De[/b]Vi ; [b]DeDa[/b]Po ; [b]CDa[/b]Pr ; [b]CDeDa[/b]Vy Schema je v BCNF, pokryti se nezachovalo (bylo by potreba pridat tabulky pro [b]SDe->Vy[/b] a [b]Po->Vy[/b]), dekompozice je bezztratova.
2.Dotazovani
A)
Dotaz:

Kód: Vybrat vše

(( (Zahradnik(cislo_holinek = 14)) * ( (Vypestoval(rok = 2008))(kusu_zasazeno > 0)) ) * Roslina)[skudce]
Strom:

Kód: Vybrat vše

Zahradnik
    selekce(cislo_holinek = 14)
                                     prirozene spojeni
Vypestoval
    selekce(rok = 2008)
            selekce(kusu_zasazeno > 0)
                                                          prirozene spojeni
Rostlina
                                                                                 projekce (skudce)
Poradi:
  • vyber relace Zahradnik
  • selekce (cislo_holinek)
  • vyber relace Vypestoval
  • selekce (rok)
  • selekce (kusu_zasazeno)
  • prirozene spojeni: Zahradnik * Vypestoval
  • vyber relace Rostlina
  • prirozene spojeni:(Zahradnik*Vypestoval) * Rostlina
  • projekce (skudce)
B)

Kód: Vybrat vše

{(jm_zahr, odpracovano_let, specializace, cislo_holinek) | 
    Zahradnik(jm_zahr, odpracovano_let, specializace, cislo_holinek) &
    non ( Ex jm_rostliny Ex zalivka Ex max_vek Ex skudce 
              ( Rostlina(jm_rostliny, zalivka, max_vek, skudce) &
                max_vek > 1 &
                Ex kusu_zasazeno Ex kusu_uhynulo
                    ( Vypestoval(jm_zahr, jm_rostliny, 2008, kusu_zasazeno, kusu_uhynulo) &
                      kusu_uhynulo > 0 )
               )
}
Dotaz je bezpecny - kazda promenna ma mozne hodnoty vymezene aktualni domenou.
Naposledy upravil(a) kukmuk dne 3. 5. 2009 22:33, celkem upraveno 3 x.
seby
Matfyz(ák|ačka) level I
Příspěvky: 42
Registrován: 31. 1. 2008 15:40
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

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

Příspěvek od seby »

U 2.A) si myslím, že by se ještě mělo testovat, jestli je kusů_zasazeno > 0.
Strom a tedy i pořadí by mělo být podle mě výc rozepsané (nejprve vyberu data z tabulky Zahradník (= jeden vrchol stromu) a potom na něj aplikuji unární operátor () (= druhý vrchol stromu).
U 2.B) se podle mě nemusí vypisovat všechny proměnné, které se v tabulce vyskytují (stačí jen ty důležité).
Pokud něco píšu špatně, tak mě opravte.
kukmuk
Matfyz(ák|ačka) level I
Příspěvky: 10
Registrován: 2. 2. 2009 20:20
Typ studia: Informatika Bc.

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

Příspěvek od kukmuk »

Souhlasim, prispevek opraven. V DRK ponechavam prebytecne promenne z vlastniho rozhodnuti ... jsem si jisty, ze tam byt nemusi.
Odpovědět

Zpět na „DBI025 Databázové systémy“