36DBS + 36SQL - Semestrální práce

Databáze školní jídelny


Vypracoval: Bedřich Lacina

Práci jsem vyhotovil sám s využitím těchto zdrojů:


Popis

Databáze má sloužit jako pomůcka školní jídelně v době, kdy se každé jídlo liší cenou. Rozhodl jsem se řešit pouze vztah mezi strávníkem a jídelnou. Potraviny jsou připraveny zaměstnanci, strávník si je může od zaměstnanců zakoupit. Není omezen počtem jídel, totéž jídlo si může koupit vícekrát, nákup jídla je podmíněn pořízením alespoň jednoho hlavního jídla. Databáze je připravena na příchod (odchod) nových zaměstnanců i strávníků a na vkládání nových druhu potravin.
Potraviny jsou identifikovány Názvem a Cenou. Hlavní chod může být vegetarianský {Ano, Ne}, polevka může mít různou hustotu (kvalitu) {hustá, řídká, akorát}, pití může být různého typu {čaj, limo, pivo} a dezertů je taky několik druhů {dort, zákusek, ovoce}. Osoby jsou identifikovány rodným číslem, zaměstnanci mohou mít různé funkce a různé platy. Strávníci mají uloženy body a finance.

ER model

jidlo.gif

Funkční model - Uživatelské scénáře

Uživatelské role:
Administrátor - má úplnou kontrolu nad databází: může vytvářet nové uživatele s různými uživatelskými rolemi, může přidávat a odebírat libovolné údaje.
Kuchař - může přidávat (mazat) záznamy potravin a jejich atributy a editovat již vytvořené potraviny.
Pokladník - může přidávat (rušit) strávníky, přidávat jim body a finance, může též finance a body odebírat.
Prodejce - prodává potraviny, tzn. upravuje atributy strávníků a potravin, ale nepřidává nové strávníky ani potraviny.
Strávník - může si pouze prohlédnout své atributy a to jen finance a body (rodné číslo se mu nemění, nemá důvod pro jeho zobrazení).
Sekretářka - přidává (odebírá) zaměstnance a může měnit jejich atributy. Nevkládá nové potraviny nebo strávníky ani neupravuje jejich atributy.

Scénáře:

Příjem zaměstnance Příjem strávníka Vložení potraviny Strávník nakupuje potraviny

SQL skripty

SQL skrip na vytvoření databáze
SQL skrip na naplnění databáze zkušebnímy daty
SQL skrip s 10 dotazy na naplněnou databázi
SQL skrip na smazání databáze


36SQL - Procedurální rozšíření

Řízená redundance
Do návrhu byl přidán nový atribut pro vztah Nakup_potravin - Celkova_cena. Tento atribut udává kolik stojí všechny zakoupené potraviny při jednom nákupu - udává součet cen jednotlivých potravin.

Triggery

36SQL - skripty

SQL skrip na spuštění všech skriptů
výpis testovacího skriptu
SQL skrip na vytvoření databáze
trigger s řízenou redundancí - kontrola ceny
trigger na kontrolu rodného čísla
trigger na kontrolu konta strávníků a na jejich úpravu
skrip na naplnění databáze zkušebnímy daty (puvodni z dbs + generovane cylky)
skrip na naplnění databáze zkušebnímy daty (dalsi data generovana cykly)
test na vyzkouseni triggeru

Files

tato stránka (.htm, .css, .gif) - .zip
36SQL skripty (.sql) - .zip - vytvoření, naplnění, dotazy, smazaní

Autor

Autorem je Bedřich Lacina (lacinb1)
Email: lacinb1@fel.cvut.cz