Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Semestrální práce

CP-0 - Sdělení tématu (0 bodů)

  • Pomocí několika vět popište téma své práce. V krátkosti popište i motivaci, proč vámi vybrané téma budete zpracovávat.
  • Uvažujte takové téma, které jednak zahrnuje jak (taxonomický) popis systému, tak provozní data (například měření, periodická realizace, atp).
  • Vyberte si takové téma, u kterého v rámci svých aktuálních znalostí dokážete zrealizovat tak, aby odpovídalo níže uvedeným požadavkům. V případě nejistoty kontaktujte cvičícího.
  • Téma v rámci skupiny musí být jedinečné, nesmí být identické s ukázkovými tématy probíranými na cvičeních a přednáškách.

CP-1 Konceptuální model (20 bodů)

  • Pomocí vhodné aplikace vytvořte konceptuální ER model, který odevzdejte ve formě PDF dokumentu obsahující obrázek a krátký popis modelu/technické zdůvodnění použitého konstruktu.
  • Konceptuální model musí obsahovat nejméně 5 entitních typů, počet entitních typů by neměl přesahovat 10.
  • Pro účely konceptuálního modelu nezavádějte žádné umělé identifikátory.
  • Na základě technických důvodů navrhněte konceptuální model, který obsahuje alespoň jednou:
    • jednoduchý, strukturovaný a vícečetný atribut
    • vazbu s kardinalitou 1..1, 0..1, 0..N, 1..N, N:M
    • rekurzivní nebo reflexivní vazbu
    • dědičnost
    • slabý entitní typ
  • V modelu uveďte relevantní identifikátory, alespoň u jednoho entitního typu zaveďte (neuvedení relevantního identifikátoru je považováno za chybu)
    • složený identifikátor
    • více identifikátorů
  • Doporučené nástroje:
    • Creately.com - Entity Relationship Diagrams
    • Draw.io - Blank Diagram, Entity Relation Shapes

CP-2 Relační model (10 bodů)

  • Transformujte konceptuální model (CP-1) na relační model v textové podobě, odevzdejte ve formě PDF dokumentu obsahující obrázek (případně opraveného) konceptuálního modelu a relační model.
  • Pokud to považujete za vhodné, doplňte předchozí konceptuální model o nové entity/vztahy/charakteristiky.
  • Využijte textovou notaci Tabulka (Klíč, Atribut1, Atribut2) , uvádějte cizí klíče. Neuvažujte NULL hodnoty.

CP-3 SQL - Vytvoření databáze, dotazy na data (30 bodů)

  • Transformujte relační model (CP-2) na ER model a z něho vyplývající SQL dotazy vytvářející databázi, nad touto databází formulujte dotazy na data, odevzdejte ve formě PDF dokumentu obsahující
    • Obrázek - ER model
    • SQL dotazy pro vytvoření databáze včetně adekvátních integritních omezení, zejména pak zavedení
      • adekvátních typů u jednotlivých atributů
      • atributového integritního omezení
      • tabulkového integritního omezení
      • cizích klíčů včetně (technicky zdůvodněné) direktivy ON UPDATE/DELETE
      • klíčů a primárních klíčů, popřípadě zaveďte umělé klíče, pokud je to vhodné
    • SQL dotazy pro získání údajů z databáze pokrývající alespoň jednou
      • vnější spojení tabulek
      • vnitřní spojení tabulek
      • podmínku na data
      • agregaci a podmínku na hodnotu agregační funkce
      • řazení a stránkování
      • množinové operace
      • vnořený SELECT
    • U každého dotazu slovy popište jeho činnost, uveďte dotaz a proveďte screenshot výsledku dotazu, který je vrácen klientem.
    • Pro účely tohoto úkolu je nezbytně nutné
      • Založit veškeré tabulky ve vaší studentské databázi na serveru slon.felk.cvut.cz
      • Všechny SQL dotazy musí být (bezchybně) spustitelné na uvedeném serveru.
      • Naplnit založené tabulky relevantním počtem dat
      • Naplnit jednu tabulku (s klíčovým významem pro zpracovávané téma) větším množstvím (cca ~32k) “provozních” dat
      • Cvičícímu předvést volání vybraných netriviálních dotazů.
    • Doporučené nástroje:
      • MicroOLAP for Postgresql
      • DB Designer
    • Demo ukázka ER modelu

CP-4 Pokročilé databázové technologie (10 bodů)

  • Databázi CP-3 rozšiřte o další pokročilé technologie, do PDF dokumentu uveďte stručný komentář a potřebné SQL dotazy.
  • V rámci tohoto odevzdání demonstrujte
    • Zavolání transakce a sady dotazů včetně nastavení vhodné úrovně izolace, uveďte konflikt, který by mohl vzniknout, pokud by nebylo použito transakce
    • Vytvoření a použití pohledu
    • Vytvoření a použití triggeru
    • Vytvoření a použití indexu, přičemž s pomocí relevantní analýzy diskutujte přínos využití takového indexu.

CP-5 Základ JPA aplikace (20 bodů)

  • Na databází CP-3 vystavte základ javové aplikace využívající JPA, který obsahuje zejména
    • datový model odpovídající celé databázi zahrnující
      • Many To Many vazbu
      • dědičnost
    • DAO vrstva zajišťující nutný nízkoúrovňový přístup k datům
    • Servisní vrstva volající DAO vrstvu obsahující 5 vybraných užití vašich dat, specializovaný zejména na zapisovací operace a pokrývající transakci z CP-4.
    • Odevzdává se formou odevzdání relevantní části JAVA projektu, běh aplikace v rámci odevzdání je nutné předvést cvičícímu.
courses/b0b36dbs/tutorials/start.txt · Last modified: 2022/04/09 22:07 by rimnacm