Databázové systémy
Podmínky udělení zápočtu
Maximální počet bodů na zápočet je 45 (min. 23b), projekt má tyto části (jedná se o rozšíření projektu do DAIS):
- Fyzický návrh databáze. Minimum: 5b z 10.
- Testování výkonu IS a ORM. Minimum: 11b z 20.
- Integrace XML do projektu (např. import/export XML dat s XLST transformací). Minimum 7b z 15.
Bulk insert/select, SQL server
V T-SQL neexistuje obdoba BULK COLLECT/FORALL, návrhy řešení:
- Data vygenerujeme do souboru a utilitou BULK INSERT importujeme do databáze.
- Minimalizace logování: SET RECOVERY BULK_LOGGED; ... SET RECOVERY FULL;
- Použít kurzory FAST_FORWARD.
- Smazat indexy tabulky a snížit tak režii operace vkládání.
- Neprovádět commit po vložení každého záznamu.
- Při generování pomocí ADO.NET použít:
- nastavení SqlDataAdapter.UpdateBatchSize na počet aktualizací prováděných v jedné dávce,
- třídu SqlBulkCopy.
Semestrální projekt
Požadavky na část 1 a 2 semestrálního projektu:
- Šablony projektů: SampleStruts2AppOrm.zip, AspNetExampleApp.zip (pro spuštění .NET šablony potřebujete nainstalovat ODAC).
- Zadání bude vlastní, jako základ můžete použít semestrální projekt z DAIS. Zadání musí být schváleno cvičícím během 1. cvičení.
- Implementační prostředí: J2EE (libovolný MVC rámec) nebo ASP.NET
- SŘBD: Oracle 12c nebo MS SQLServer 2012
- Architektura: MVC nebo Model-View.
- Datový model: objektově-relační (triggery, uložené funkce a procedury atd.).
- Analýza a návrh: konceptuální a datový model, funkční analýza, viz ukázkový projekt. Jednoduché funkce (CRUD - create, read, update, delete) nepopisujeme, naopak komplikovanější funkce specifikujeme až na úroveň SQL příkazů.
- Tabulky a funkce: IS musí obsahovat minimálně 7 tabulek (bez číselníků) a 5 netriviálních funkcí (pouze 2 funkce mohou být tiskové sestavy). Minimálně 3 funkce budou napsány jako uložené procedury.
- Fyzický návrh: součástí bude ladění fyzického návrhu databáze. Testování bude zahrnovat starý a nový fyzický návrh a obě implementace ORM.
- Požadavky na ORM:
- IS bude využívat vlastní statickou implementaci ORM.
- Požadavky: minimalizace počtu operací, minimalizace objemu přenášených dat, použití hromadných operací, nastavení úrovně izolace.
- Výkonnostní testování: vícevláknové testování datové vrstvy.
- GUI:
- Formuláře (či komponenty GUI) pro aktualizaci a vložení záznamu budou odděleny od zobrazení seznamu záznamů v tabulce. IS bude obsahovat validace zadávaných položek formulářů (na straně klienta - www prohlížeče i na straně serveru).
- Odevzdávat se bude kompletní dokumentace, SQL skripty a implementace.
- Bodové hodnocení projektu (max. 35b): za odevzdání v jednotlivých kolech se budou postupně strhávat 3b, část projektu bude odevzdána až budou splněny všechny připomínky vyučujícího:
- 10 (min. 5): specifikace zadání, datová a funkční analýza, návrh formulářů
- 15 (min. 8): fyzický návrh, ORM
- 10 (min. 5): implementace IS, testování výkonu datové vrstvy
- 10 (min. 5): IS založený na XQuery.
Přednášky a cvičení
Týden | Přednáška | Cvičení |
1. | Efektivita informačních systémů, vykonávání dotazů v ŠRBD pdf (poslední změna: 19.9.2017) | Zadání a analýza projektu pdf (poslední změna: 19.9.2017) |
2. | Disky, diskové operace pdf (poslední změna: 25.9.2017)
| Zadání a analýza projektu, relační datový model funkční analýza |
3. | Fyzický implementace databázových systémů I - plán vykonávání dotazu pdf (poslední změna: 25.9.2017) | Generování dat: oracle a mssql (poslední změna: 23.9.2015) |
4. | Fyzický návrh databáze II - Plán vykonávání dotazu, fyzická implementace databázových systémů pdf (poslední změna: 23.10.2017) | Generování dat |
5. | Generování dat | |
6. | Fyzický návrh databáze II - Plán vykonávání dotazu, fyzická implementace databázových systémů | Sběr statistik operací pdf (poslední změna: 23.10.2017) |
7. | Fyzický návrh databáze III pdf (poslední změna: 30.10.2017) | Čtení plánů vykonávání operací |
8. | Fyzický návrh databáze IV
| Čtení plánů vykonávání operací pdf (poslední změna: 6.11.2017) |
9. | Fyzický návrh databáze | |
10. | Fyzický návrh databáze | |
11. | Fyzický návrh databáze | |
12. | Výkonnostní testování datové vrstvy (pdf) Testovací aplikace:BenchmarkApp (poslední změna: 4.12.2017) | ORM, testování výkonu datové vrstvy |
13. | Databázové systémy a XML I - Schéma dokumentu (pdf) (poslední změna: 13.12.2017) | ORM, testování výkonu datové vrstvy |
14. | Databázové systémy a XML II - Dotazovací jazyky: XML Path Language (XPath) (pdf) Databázové systémy a XML III - XQuery (pdf) | XML, DOM, XPath (pdf) (poslední změna: 18.12.2017) |