====== DBS - Individuální úkol č. 2 - sudý týden - řešení ======
StupenZavaznosti (__Priorita__, Nazev)\\
Uzivatel (__UID__, Jmeno)\\
Programator (__UID__)\\
Tester (__UID__)\\
Komponenta (__ID_KOMP__, Nazev, Popis, UID_Sefprogramator)\\
HlaseniChyby(__ID_REPORTU__, PopisChyby, ID_KOMP, StupenZavaznosti, UID_Nahlasil, DatumCas_Nahlasil, UID_Uzavrel, DatumCas_Uzavrel)\\
DiskusniPrispevek (__ID_PRISPEVKU__, DatumCas, Text, UID, ID_REPORTU)\\
===== Řešení =====
- Vypište popis všech komponent, ve kterých našel chybu Jan Novák.
* (Uzivatel(Jmeno = "Jan Novak") *> Tester [Tester.UID = HlaseniChyby.UID_Nahlasil> HlaseniChyby [HlaseniChyby.ID_KOMP = Komponenta.ID_KOMP>Komponenta)[Popis]
* Join s Tester neni nutny, protoze IO rikaji, ze hlaseni vytvari pouze tester.
- Vypište seznam všech komponent, jejichž chyby někdo komentoval v diskusi.
* DiskusniPrispevek *> HlaseniChyby *> Komponenta
* Prirozena spojeni lze pouzit, protoze se atributy jako datum a UID jmenuji v kazde relaci jinak.
- Vypište šéfprogramátory, kteří mají ve svých komponentách nějakou nevyřešenou chybu (nevyřešenou chybu poznáte tak, že má místo ID programátora, který ji vyřešil, hodnotu NULL).
* (HlaseniChyby(UID_Uzavrel = NULL) *> Komponenta [Komponenta.UID_Sefprogramator = Uzivatel.UID> Uzivatel * Programator)[Jmeno]
- Vypište jména programátorů, kteří opravili chyby nalezené testerem Jan Novák.
* (Tester * Uzivatel(Jmeno="Jan Novak") [Uzivatel.UID = HlaseniChyby.UID_Nahlasil> HlaseniChyby [HlaseniChyby.UID_Uzavrel = Uzivatel.UID> Uzivatel * Programator) [Jmeno]
- Vypište seznam testerů, kteří nahlásili chybu mezi 1.1.2008 a 31.1.2008 včetně. Předpokládáme, že datum/čas lze porovnávat operátory "je větší" apod. Zápis je ve formátu 'YYYYMMDD HHMM'.
* HlaseniChyby(DatumCas_nahlasil ≥ "2008-01-01 0000" AND DatumCas_nahlasil ≤ "2008-01-31 2359") [HlaseniChyby.UID_nahlasil = Uzivatel.UID> Uzivatel * Tester
- Vypište seznam testerů **programátorů** (//Oprava 20.11.2008 23:38//), kteří ještě neopravili chybu v komponentě s názvem "libDBS".
* ((Programator \ (Komponenta (Nazev = "libDBS") * HlaseniChyby [HlaseniChyby.UID_Uzavrel = Programator.UID> Programator)) * Uzivatel ) [Jmeno]
- Vypište jména programátorů, kteří již opravili chybu ve všech komponentách.
* (( (Programator [Programator.UID = HlaseniChyby.UID_Uzavrel] HlaseniChyby)[UID, ID_KOMP] ÷ Komponenta[ID_KOMP]) * Uzivatel)[Jmeno]