Semestrální práce
Student si na začátku semestru vybere téma semestrální práce. Inspiraci lze najít zde. V rámci semestrální práce musí student odevzdat tyto dílčí části:
1. Zadání semestrální práce
Tato dílčí část musí obsahovat:
Název zadání a stručný popis, v kterém několika větami popíšete k čemu bude systém sloužit. Co bude evidovat a jakou jsou jeho nejčastější případy použití. Chceme také, aby jste zmínili úskalí, která by v systému mohla být.
Termín odevzdání 10.3.2017, doporučené datum odevzdání 8.3.2017, termín konzultace 8.3.2017-10.3.2017
Bodové hodnoceni: Tato část není bodově hodnocena. Vypracování této části semestrální práce je povinné. Slouží hlavně pro vás, aby jste si ujasnili co za systém vlastně vytváříte.
2. Návrh modelu DB
Jedná se návrh modelu databáze, který budete realizovat. Tato dílčí část musí obsahovat:
Návrh databáze
Minimální rozsah DB: 6 entitních typů, alespoň 1 vztah M:N
Student odevzdá konceptuální model, jemu odpovídající logický model, popis referenčních integrit (alespoň 1)
Odevzdání formou PDF (
BRUTE).
Termín odevzdání 24.3.2017, doporučené datum odevzdání 16.3.2017, konzultace 17.3.2017
Bodové hodnocení: max 4 body
Penalizace za pozdní odevzdání: -2 body * každý započatý týden po deadline.
3. DB model v DB
Jedná se o přípravu SQL skriptů, na jejichž základě bude možné vytvořit DB, kterou student navrhl v předchozím bodě. Dílčí části jsou:
SQL skripty, které vytvoří DB a vloží do ní ukázková data.
DB bude také vytvořená v databázovém systému, který poskytujeme (slon.fel.cvut.cz - vaše SQL skripty budu na tomto serveru testovat, na případnou funkčnost na vašich strojích nebude brán zřetel)
SQL skripty budou obsahovat vytvoření tabulek vč. integritních omezení a referenčních integrit a ukázková data, která se do databáze vloží.
Odevzdání formou SQL skriptů (
BRUTE, pokud vám nepůjde uploadovat přímo soubor .sql, zabalte ho do .zip).
Termín odevzdání 7.4.2017, doporučené datum odevzdání 30.3.2017, konzultace 31.3.2017
Bodové hodnocení: max 6 bodů
Penalizace za pozdní odevzdání: -3 body * každý započatý týden po termínu.
4. Práce s daty
Jedná se o demonstraci toho, jak bude váš systém pracovat s daty v DB. Dílčí části jsou:
SQL skripty, které demonstrují operace nad vaší DB (bude se jednat o dotazy insert, select, update, delete, minimálně jednu uloženou proceduru, trigger, pohled a index).
Dokument v PDF, který specifikuje použití vaší DB. Bude požadováno minimálně 5 dotazů:
2x SELECT: Například zjištění, jací uživatelé mají půjčeny konkrétní knihy, nebo kolik knih v kategorii “dětské” jsou aktuálně vypůjčeny (toto jsou pouze demonstrativní příklady). V PDF dokumentu budou uvedeny 2 business use-cases, související tabulky a relace přes které se dotazy budou realizovat. V dotazech musí být smysluplně demonstrována agregace (GROUP BY), spojení mezi více tabulkami (JOIN) a vnořený dotaz.
2x UPDATE: Například úprava sériového čísla knihy (toto je pouze demonstrativní příklad). V PDF dokumentu bude uveden business use-case a související tabulky, přes které se bude dotaz realizovat. V dotazech musí být smysluplně demonstrována referenční integrita (ON UPDATE). Dále musí být demonstrováno zachování konzistence dat při paralelním spuštění více dotazů (TRANSACTION).
1x DELETE: Například odstranění kategorie knihy (toto je pouze demonstrativní příklad). V PDF dokumentu bude uveden business use-case a související tabulky, přes které se bude dotaz realizovat. V dotazech musí být smysluplně demonstrována referenční integrita (ON DELETE).
SQL skripty, které demonstrují použití DB na základě use-cases z předešlého bodu.
Odevzdání formou SQL skriptů a PDF se specifikací (
BRUTE pokud vám nepůjde uploadovat přímo soubor .sql, zabalte ho do .zip).
Termín odevzdání 21.4.2017, doporučení datum odevzdání 13.4.2017, konzultace 14.4.2017 (??? svatek)
Bodové hodnocení: max 6 bodů
Penalizace za pozdní odevzdání: -3 body * každý započatý týden po termínu.
5. Uživatelské rozhraní a desktopová aplikace
Jedná se o návrh a vytvoření GUI, pro ovládání aplikace, která používá navržené řešení. Je potřeba vytvořit:
Vhodně demonstrovat komplexní zpracování (CRUD), vybrané N:M vazby, minimálně v rozsahu požadovaném v dílčích částech 3 a 4
Použití JPA 2 + JPQL (případně Criteria
API) k práci s daty v DB.
Transakční zpracování, volba vhodných stupňů izolovanosti transakcí
Výstupní sestavy obsahující agregovaná data
Demonstrace anomálií při různých stupních izolovanosti (anomálie vynuťte vhodnými prostředky)
Odevzdání archivu (zip), který obsahuje vše k tomuto bodu (SQL skripty, spustitelnou aplikaci, zdrojové kódy a ostatní potřebné soubory pro kompilaci) (
BRUTE).
Aplikaci musí být možné zkompilovat z uploadovaných souborů a poté spustit.
Do textového souboru případně pdf popište v krocích jak aplikaci zkompilovat, sestavit a spustit.
Pokud bude potřeba nějaký nestandardní postup kompilace anebo sestavení (speciální parametry, build tool, apod.) vysvětlete vše v textovém popisu.
Termín odevzdání: 25.5.2017, doporučené datum odevzdání 19.5.2017, data konzultací: 28.4.2017 a 12.5.2017
Na poslední konzultaci 26.5.2017 budete aplikaci a zdrojové kódy demonstrovat/vysvětlovat vyučujícímu.
Bodové hodnocení: max 14 bodů
Penalizace za pozdní odevzdání: -5 bodů * každý započatý týden po termínu.
6. Použití pokročilých technik - nepovinná část
Tato část je nepovinná, ale v případě její odevzdání můžete dostat body navíc. Dílčí části:
netriviální optimalizace dotazu (EXPLAIN, atp)
netriviální použití uložené procedury
netriviální dotaz
Termín odevzdání: 26.5.2017, doporučené datum odevzdání 19.5.2017, data konzultací: 28.4.2017 a 12.5.2017
Odevzdání formou předvedení cvičícímu. Tuto část není možné odevzdat po termínu.
Bodové hodnocení: max 5 bodů