A7B36DBS: Databázové systémy
Základní informace
- Anotace předmětu
- Přednášející a cvičící: Martin Svoboda
- Rozvržení kurzu
- Přednáška: čtvrtek 9:15 - 10:45 (KN:E-301)
- Cvičení 101: čtvrtek 11:00 - 12:30 (KN:E-310)
- Cvičení 102: čtvrtek 12:45 - 14:15 (KN:E-310)
- Cvičení 107: čtvrtek 14:30 - 16:00 (KN:E-310)
- Evidence bodů ze cvičení a výsledků zkoušek
Termíny zkoušek
- 14. 01. 2016 (čtvrtek): 8:45 - 10:45 (KN:E-301)
- 28. 01. 2016 (čtvrtek): 12:30 - 15:30 (KN:E-107)
- 01. 02. 2016 (pondělí): 13:00 - 16:00 (KN:E-301)
- 11. 02. 2016 (čtvrtek): 13:00 - 16:00 (KN:E-107)
- 17. 02. 2016 (středa): 9:00 - 12:00 (MFF UK, Malostranské náměstí 25, místnost S4, 3. patro)
- Další zkouškové termíny vypsány nebudou
Přednášky
Cvičení
Požadavky na zápočet
- Během semestru bude postupně zadáno 6 domácích úkolů. Za každý z nich je možné získat až 20 bodů.
- Na některých cvičeních bude dále možnost získat další bonusové body za projevenou aktivitu.
- Pro zápočet je nutné získat alespoň 80 bodů celkem.
Požadavky ke zkoušce
- Z písemného zkouškového testu bude možné získat až 100 bodů. Pro získání známky je účast na zkoušce povinná.
- Body ze semestru nad hranicí 80 bodů budou připočteny k výsledku zkoušky. Pokud však bude byť jen z jednoho zkouškového testu jako takového získáno méně než 30 bodů, body se nepřevádějí, a to ani u dalších termínů.
- Bodové hranice jednotlivých známek:
- >= 90 bodů ... A
- >= 80 bodů ... B
- >= 70 bodů ... C
- >= 60 bodů ... D
- >= 50 bodů ... E
Domácí úkoly
- Úkoly se odevzdávají mailem na adresu svoboda@ksi.mff.cuni.cz.
- Do předmětu uveďte A7B36DBS: DU X, kde X je číslo domácího úkolu.
Téma 1: Konceptuální modelování v ER a UML
- Zadání úkolu:
- Zvolte si vhodnou unikátní problematiku (např. studijní informační systém, knihovna, fotbalové zápasy, ...).
- Vytvořte korektní ER nebo UML schéma, které obsahuje alespoň 5 entitních typů (tříd), 5 vztahových typů včetně kardinalit všech typů, atributy (jednoduché, složené i vícenásobné, tj. s kardinalitou jinou než 1..1), identifikátory, ISA vztah (dědičnost), rekurzivní vztahový typ a ternární vztahový typ.
- Schéma vytvořte ve vybraném modelovacím nástroji. Zvolené řešení komentujte. Pokud Vámi zvolený nástroj některý z konstruktů nepodporuje, přidejte do komentáře, kde a jak byste ho využili.
- Diagram odevzdejte ve formě exportu do PDF nebo obrázku PNG, JPG, atp.
- Používaný software:
- Termín zadání: čtvrtek 8. 10. 2015
- Termín odevzdání: čtvrtek 15. 10. 2015 do 17:00
Téma 2: Transformace ER modelu do relačního modelu
- Zadání úkolu:
- Transformujte ER / UML schéma z prvního úkolu do relačního modelu. Použijte syntaxi uvedenou ve slajdech z přednášky. Zvolené řešení komentujte.
- Pokud Vám některé požadavky v prvním úkolu chyběly, doplňte je (tj. proveďte transformaci opravdu všech výše uvedených konstruktů).
- Řešení odevzdejte spolu s exportem nebo obrázkem diagramu (případně upraveného) ER / UML schématu.
- Termín zadání: čtvrtek 22. 10. 2015
- Termín odevzdání: čtvrtek 29. 10. 2015 do 17:00
Téma 3: Jazyk SQL - vytváření a aktualizace dat
- Zadání úkolu:
- Transformujte ER / UML schéma z prvního úkolu do odpovídajícího schématu v jazyce SQL. Využijte co nejvhodnější datové typy, zajistěte referenční integritu včetně smysluplných referenčních akcí. Doplňte alespoň 3 různé typy integritních omezení (z nich alespoň jedno typu CHECK), a to ve sloupcové i tabulkové podobě. Nakonec všechny tabulky naplňte smysluplnými daty (alespoň 5 záznamů na tabulku). Zvolené řešení komentujte.
- Pokud Vám některé požadavky v prvním úkolu chyběly, doplňte je (tj. proveďte transformaci opravdu všech výše uvedených konstruktů).
- Úkol odevzdejte ve formě odladěného a okomentovaného skriptu, který nejprve tabulky zruší, pokud už existují (DROP TABLE IF EXISTS), pak vytvoří (CREATE TABLE) a nakonec naplní daty (INSERT INTO).
- Řešení opět odevzdejte spolu s exportem nebo obrázkem diagramu (případně upraveného) ER / UML schématu. Uveďte také, pro jaký databázový systém je Váš skript vytvořen a odladěn.
- Používaný software:
- Termín zadání: čtvrtek 5. 11. 2015
- Termín odevzdání: čtvrtek 12. 11. 2015 do 17:00
Téma 4: Jazyk SQL - dotazování a pohledy
- Zadání úkolu:
- Nad databází z předchozího úkolu vytvořte alespoň 5 netriviálních smysluplných SQL dotazů, které budou obsahovat v alespoň jednom dotazu alespoň jednu množinovou operaci (UNION/INTERSECT/EXCEPT), třídění (ORDER BY), agregaci (GROUP BY, HAVING), vnořený poddotaz, přirozené, vnitřní a vnější spojení. Dále přidejte definici alespoň dvou pohledů (CREATE VIEW). Význam dotazů i pohledů komentujte.
- Úkol odevzdejte ve formě okomentovaného a odladěného skriptu, který bude fungovat nad tabulkami z předchozího úkolu (pokud potřebujete, vhodně jej upravte). Odevzdejte také (případně upravený) skript pro vytváření a naplnění databáze.
- Termín zadání: čtvrtek 19. 11. 2015
- Termín odevzdání: čtvrtek 26. 11. 2015 do 17:00
Téma 5: Relační algebra a relační kalkuly
- Zadání úkolu:
- Nad relačním schématem z druhého úkolu vytvořte alespoň 3 dotazy v relační algebře, 3 dotazy v doménovém kalkulu a 3 dotazy n-ticovém kalkulu. Pokaždé vytvořte jiný dotaz, tj. nesmí se jednat o přepisy týchž dotazů jen do jiných jazyků. Význam dotazů vysvětlete.
- Dotazy v relační algebře budou obsahovat operaci přejmenování, množinové operace, selekci, projekci, některé spojení (levé/pravé vnitřní/vnější, přirozené apod.) a operaci dělení.
- Dotazy v kalkulech budou obsahovat všechny logické operátory (and, or, <=>, =>), negaci (not) a oba kvantifikátory.
- Řešení odevzdejte spolu s (případně modifikovaným) relačním schématem z druhého úkolu.
- Termín zadání: čtvrtek 3. 12. 2015
- Termín odevzdání: čtvrtek 10. 12. 2015 do 17:00
Téma 6: Implementace jednoduché databázové aplikace
- Zadání úkolu:
- Implementujte v Javě (popř. jiném programovacím jazyce) jednoduchou aplikaci, která se pomocí JDBC, ODBC apod. připojí k Vaší databázi a umožní zobrazovat a editovat data v alespoň jedné z tabulek vytvořených v předchozích domácích úkolech. Zobrazením je myšleno vyhodnocení alespoň jednoho dotazu, ke kterému uživatel zadá alespoň dva parametry. Editací je myšleno přidání/smazání/modifikace záznamů. Celá aplikace musí být dostatečně uživatelsky přívětivá. Nepoužívejte frameworky, které by Vás odstínily od přímé práce s databází a SQL.
- Odevzdejte spustitelnou aplikaci a okomentované zdrojové kódy.
- Termín zadání: čtvrtek 17. 12. 2015
- Termín odevzdání: čtvrtek 7. 1. 2016 do 17:00
Doporučená literatura
- Pokorný, J. - Valenta, M.: Databázové systémy, Česká technika - nakladatelství ČVUT, 2013.