# ZAPOCET [2008-05-21] A, Reseno

<{ForumPost(poster="kukmuk", timestamp=2009-05-03 16:07:36)}>
Reseni zadani A z 2008-05-21, [http://siret.ms.mff.cuni.cz/skopal/data ... 0508/A.pdf](http://siret.ms.mff.cuni.cz/skopal/databaze/pis210508/A.pdf).  
**1.Navrh relacnich schemat**

* **Klice**
* **Redundantni atributy a zavislost**
* **Minimalni pokryti**
* **BCNF**

**2.Dotazovani**  
**A)**  
Dotaz:

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

Strom:

    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)**

    {(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.
<{/ForumPost}>

<{ForumPost(poster="seby", timestamp=2009-05-03 20:38:07)}>
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.
<{/ForumPost}>

<{ForumPost(poster="kukmuk", timestamp=2009-05-03 22:37:35)}>
Souhlasim, prispevek opraven. V DRK ponechavam prebytecne promenne z vlastniho rozhodnuti ... jsem si jisty, ze tam byt nemusi.
<{/ForumPost}>

