====== 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]