Databázové a informační systémy
Podmínky udělení zápočtu
První část semestru bude zakončena praktickým testem z PL/SQL a T-SQL. V rámci druhé části předmětu budou studenti implementovat zvolený informační systém nad platformou .NET nebo Java. Zápočty z minulého roku jsou uznány automaticky, v případě problémů kontaktujte paní Geletičovou.
Termíny odevzdání projektů pro studenty kombinovaného studia
- Analýza (18.4., 25.4.,2.5.)
- ORM (2.5., 9.5.)
- Formuláře (14.5., 20.5.)
Model pro test z PL/SQL / T-SQL
Zadání: pdf (poslední změna: 12.3.2018), skripty:
- SQL Server: skript (poslední změna: 12.3.2018)
- Oracle: skript (poslední změna: 12.3.2018)
- Pozor na názvy atributů u DBMS Oracle: např. v případě tabulky Osoba musí být atribut uID uveden jako "uID" jelikož se jedná o vyhrazené klíčové slovo. Tento dotaz je pak korektní: select "uID" from Osoba, nicméně funguje i tento dotaz: select uID from Osoba, ale dává chybné výsledky (17x 114 namísto 1-17).
- Zadání a řešení z prvního termínu: dais-1t.zip (poslední změna: 5.4.2018)
Model pro test z PL/SQL / T-SQL z minulých let
- Zadání: pdf (poslední změna: 27.2.2017), skripty:
- Oracle: skript (poslední změna: 6.3.2017)
- SQL Server: skript (poslední změna: 27.2.2017)
- Poznámka: získání dne v týdnu: to_char(Den, 'Dy') pro Oracle DATENAME(weekday, Den) pro SQL Server.
- Další zadání:
- zadani019 , reseni_2_oracle , reseni_2_sqls (poslední změna: 20.3.2017)
- zadani_streda16, zadani_ctvrtek09, zadani_ctvrtek12, zadani_4, zadani_5 (poslední změna: 5.4.2017)
- Systém pro vyhledávání plagiátů: pdf (poslední změna: 7.3.2016), skripty:
- ?Další zadání: 1.rar, 2.rar, 3.rar, 4.rar, 5.rar, 6.rar
Semestrální projekt
V předposledním týdnu semestru budou studenti na cvičení prezentovat a odevzdávat semestrální projekt. Studenti budou implementovat zvolený informační systém nad platformou .NET nebo Java, důraz bude kladen na implementaci datové vrstvy.
Specifikace:
- IS musí obsahovat minimálně 7 tabulek (minimálně 4 nebudou číselníky) a 5 netriviálních funkcí. Minimálně 3 funkce budou napsány jako uložené procedury.
- Mezi těmito 5 funkcemi mohou být pouze 2 netriviální dotazy, ostatní budou transakce. Netriviální funkce není CRUD operace.
- Black list funkcí: kaskádové mazání záznamů.
- Implementace (funkce, formuláře atd.) bude odpovídat analýze.
- Architektura bude vrstvová, datová vrstva bude obsahovat objektově-relační mapování (ORM).
- Implementace bude v ASP.NET nebo J2EE (v případě webové aplikace) resp. .NET nebo Java (v případě desktopové aplikace).
- ORM bude implementováno s důrazen na minimalizaci počtu operací zasílaných na databázi a minimalizaci objemu dat přenášených z/do databáze (viz 11. přednáška).
- ORM bude podporovat transakce (stačí úroveň izolace SERIALIZABLE).
- V rámci ORM se bude odevzdávat testovací projekt, který bude obsahovat volání všech metod ORM.
- V databázi budou vytvořeny základní indexy.
- Z aplikace budou vytvořeny dva netriviální formuláře (tedy ne formuláře pro CRUD operace), které budou vybrány cvičícím. Na prezentační vrstvě budou podporovány základní validace vstupů.
- Odevzdávat se bude kompletní dokumentace, SQL skripty a implementace.
Přednášky a cvičení
Týden | Přednáška | Cvičení |
1. | Úvod, PL/SQL I (blok, proměnné) pdf (poslední změna: 12.2.2018) | PL/SQL úkoly, řešení (poslední změna: 11.2.2018) Opakování SQL SQL, cv-0, řešení |
2. | PL/SQL II (procedury, řídící konstrukce, kurzory) pdf (poslední změna: 19.2.2018) | PL/SQL úkoly, řešení (poslední změna: 19.2.2018) |
3. | PL/SQL III (triggery, dynamické SQL, vázané proměnné, výjimky) pdf (poslední změna: 26.2.2018) | PL/SQL, příklady: 1, 2, 3 Pro práci s databází použijte skripty: liga_create, liga_init, liga_drop řešení (poslední změna: 20.2.2017) |
4. | T-SQL pdf (poslední změna: 5.3.2018) | T-SQL úkoly, řešení (poslední změna: 2.3.2018) |
5. | - | T-SQL úkoly, řešení (poslední změna: 2.3.2018) Skripty pro příklad liga: liga_create, liga_init, liga_drop |
6. | PL/SQL IV - hromadné operace pdf (poslední změna: 19.3.2018) | PL/SQL / T-SQL úkoly (poslední změna: 18.3.2015) řešení: PL/SQL, T-SQL (poslední změna: 18.3.2015) Skripty pro Oracle: create.sql, init.sql, drop.sql Skripty pro SQL Server: create.sql, init.sql, drop.sql |
7. | Funkční analýza ukázkového projektu pdf (poslední změna: 6.4.2018) | Test PL/SQL / T-SQL |
8. | - | Konzultace zadání a analýzy semestrálního projektu |
9. | Transakce, zotavení pdf (poslední změna: 16.4.2018) | Oprava testu PL/SQL / T-SQL Konzultace zadání a analýzy semestrálního projektu Termín odevzdání analýzy, 1. kolo: 15.4.2018 |
10. | Objektově relační mapování (ORM):
| ORM Termín odevzdání analýzy, 2. kolo: 22.4.2018 |
11. | ASP.NET, integrace ORM AuctionDesktopApp (poslední změna: 2.5.2016))
| ORM Termín odevzdání ORM, 1. kolo: 29.4.2018 |
12. | Objektově relační datový model (poslední změna: 15.5.2018) | ORM Termín odevzdání ORM, 2. kolo: 6.5.2018 |
13. | Fyzický implementace databázových systémů, vykonávání dotazů pdf (poslední změna: 15.5.2018) | Odevzdání aplikace I Termín odevzdání aplikace, 1. kolo: 13.5.2018 |
14. | Řízení souběhu I Řízení souběhu II pdf (poslední změna: 9.5.2016) | Odevzdání aplikace II Termín odevzdání aplikace, 2. kolo: 20.5.2018 Odevzdání probíhá na cvičení v zápočtovém týdnu. |