Cvičení 7
Témata
- Klíče:
- primární (PRIMARY)
- alternativní (UNIQUE)
- cizí (FOREIGN)
- CASCADE a RESTRICT
- DROP TABLE
- ON UPDATE, ON DELETE
- Normalizace databáze
- Boyce-Coddova normální forma
- rozklady relace
- Další poznámky:
- Vlastnosti klíčů
- Integrita databáze, omezení
Úkoly
- Zkuste svůj návrh STAGu z minula (pokud jej nemáte, navrhněte) doplnit o vhodné klíče.
- Navrhněte vhodné tabulky s vhodnými klíči pro následující data (ve skriptu, budete jej spouštět a upravovat vícekrát):
- Tabulka adresa:
- Ulice
- Číslo popisné
- Město
- PSČ
- Tabulka zákazník:
- Jméno
- Adresa
- Tabulka objednávka:
- Číslo objednávky
- Zákazník
- Datum
- Vyřízena (True/False)
- Tabulka zboží:
- Název
- Cena
- Počet kusů skladem
- Tabulka položka objednávky:
- Zboží
- Počet kusů
- Tabulka adresa:
- Do databáze z příkladu 4 vložte nějaká data (ve skriptu - budete je vkládat vícekrát).
- Zkuste postupně ve (vždy nově vytvořené) instanci databáze z příkladu 4:
- smazat/upravit nějaká data s CASCADE a s RESTRICT. Zjistěte, co se v databázi stane.
- zrušit nějakou tabulku s CASCADE a s RESTRICT. Zjistěte, co se v databázi stane.
- Napište dotazy, které ověří platnost všech funkčních závislostí, které jsme odvodili na tabuli.
- Napište dotaz, který ověří neplatnost některé jiné (neplatné) funkční závislosti.
- Napište dotazy, které postupně vytvoří rozklad tabulky, až na tabulky, které neobsahuji redundanci (vizte tabule).
- Napište dotaz, který ověří, že výsledný rozklad je bezeztrátový.
- Zkuste udělat nějakou jiný rozklad, který bude ztratový.