Warning
This page is located in archive.

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.
  • Odevzdání formou PDF (email to antonin.komenda@fel.cvut.cz).
  • 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.

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:

  • GUI ve Swingu apod.
  • 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ů
courses/bd6b33dbs/semestralni_prace.txt · Last modified: 2017/03/03 11:17 by komenant