Databázové a informační systémy
Novinky
- Zadání zkoušky, 9.7.2020: zadani.pdf
3. termín odevzdání formulářů uživatelského rozhraní: pondělí 25.5., 23:59
Řešení testu PL/SQL z 30.4.2020: dais_test_plsql_1.zip
Opravy:
Zadání 1.1: doplněno emp.EID do GROUP BY emp.EID, emp.Name
Zadání 5.2: řešení triggeru vede na mutating table, proto je vhodné řešit jako proceduru.
Odevzdání formulářů uživatelského rozhraní:
Termíny:
1. termín: pondělí 11.5., 23:59
2. termín: pondělí 18.5., 23:59
Požadavky:
aplikace bude implementovat vybrané formuláře z funkční analýzy,
aplikace nebude padat do neošetřených výjimek,
budou validované vstupy,
uživatel nebude nucený pracovat s ID (tzn. musíte např. použít combo boxy pro výběr cizích klíčů).
Test PL/SQL:
2. termín se bude konat v úterý 12.5., 13:00-14:30.
Studenti jdoucí v červnu ke státnicím musí získat zápočet a absolvovat zkoušku do 3.6.
- Zadání pro test PL/SQL:
- Termíny odevzdání datové vrstvy (ORM):
1. termín (konzultační): pondělí, 20.04.2020, 23:59.
2. termín: pondělí, 27.04.2020, 23:59 (max 10b)
3. termín: pondělí, 4.5.2020, 23:59 (max 8b)
Požadavky na implementační prostředí projektu:
- Nestandardní DBS i implementační prostředí (viz dole) musí být konzultováno a schváleno cvičícím.
DBS:
- Standardně: Oracle, SQL Server.
- Podpora libovolného procedurálního rozšíření SQL, tak aby bylo možné napsat část funkcí jako uložené procedury.
- Podpora SQL a transakcí.
- Architektura: klient-server a podpora API pro přístup k datům, např. JDBC, ADO.NET.
- Cvičící musí mít k danému DBS přístup, tak aby mohl projekt zkontrolovat.
Implementační prostředí:
- Standardně: .NET, J2EE.
- Možnost napsat ručně ORM.
- Možnost napsat aplikaci jako model – view, v našem případě jako aplikaci s vícevrstvou architekturou: DBS – API pro přístup k datum – ORM – aplikační vrstva – prezentační vrstva.
- Cvičící musí mít k danému implementačnímu prostředí přístup, tak aby mohl projekt zkontrolovat.
Pokud nebude možné vykonat test z PL/SQL ve standardním formátu, bude na konci semestru vykonán formou on-line testu.
Podmínky udělení zápočtu
V 5. týdnu bude na programu praktický test z PL/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.
Seznam studentů a přidělení jednotlivým cvičícím
- seznam: pdf (poslední změna: 16.3.2020)
Termíny odevzdání projektů
- Analýza informačního systému (6-10b):
- 1. termín: 23.03.2020, 23:59: konzultace
- 2. termín: 30.03.2020, 23:59
- 3. termín: 06.04.2020, 23:59: pokud bude projekt v pořádku, získáte 8b.
- 4. termín, 13.04.2020, 23:59: pokud bude projekt v pořádku, získáte 6b.
Model pro praktický test z PL/SQL
Model pro praktický test z minulých let
- Zadání: pdf (poslední změna: 1.3.2019), skripty SQL pro Oracle: oracle.sql.zip (poslední změna: 1.3.2019)
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)
- 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: 10.2.2020) | PL/SQL úkoly, řešení (poslední změna: 10.2.2020) Opakování SQL SQL, cv-0, řešení |
2. | PL/SQL II (procedury, řídící konstrukce, kurzory) pdf (poslední změna: 19.2.2020) | PL/SQL úkoly, řešení (poslední změna: 17.2.2020) |
3. | PL/SQL III (triggery, dynamické SQL, vázané proměnné, výjimky) pdf (poslední změna: 25.2.2020) | PL/SQL
|
4. | PL/SQL IV - balíky, hromadné operace, SQL injection, složený trigger pdf (poslední změna: 2.3.2020) | Příklady nad aktuálním modelem pro praktický test |
5. | Transakce, zotavení pdf (poslední změna: 9.3.2020) | Praktický test z PL/SQL |
6. | T-SQL Funkční analýza ukázkového projektu Doplňující materiál k datové a funkční analýze pdf (poslední změna 18.3.2020) | T-SQL Konzultace zadání a analýzy semestrálního projektu
|
7. | Řízení souběhu I pdf (poslední změna: 23.3.2020) | Konzultace zadání a analýzy semestrálního projektu |
8. | Řízení souběhu II pdf (poslední změna: 30.3.2020) | Konzultace zadání a analýzy semestrálního projektu Úroveň izolace transakcí: dais_cv8.pdf, dais_cv8-scripts.zip |
9. | Objektově relační mapování (ORM):
| ORM 3. (předposlední) termín odevzdání analýzy. |
10. | Odevzdání analýzy, ORM | |
11. | ASP.NET, integrace ORM AuctionDesktopApp (poslední změna: 2.5.2016) | ORM |
12. | Vzory integrace ORM do formulářů uživatelského rozhraní pdf (poslední změna: 27.4.2020) AuctionDesktopApp (poslední změna: 2.5.2016)) | ORM |
13. | Fyzický implementace databázových systémů, vykonávání dotazů pdf (poslední změna: 4.5.2020) |
|
14. | Objektově relační datový model (poslední změna: 11.5.2020) |