Databázové systémy II
Novinky
Instrukce ke zkoušce:
- Zkouška bude písemná. Přibližně 5minut před začátkem testu bude zveřejněno zadání v pdf. Ofocenou zkoušku pak jako jeden pdf dokument vložíte do systému na dbedu. Čas na zkoušku je 40min + 10 min na ofocení a uložení. Ve vlastnímu zájmu se pokuste o čitelné psaní i focení testu.
- Zadání, 30.6.2021: pdf
Zadání testu z PL/SQL (2. oprava)
2. oprava testu z PL/SQL:
- 2. oprava testu proběhne v pátek 9.4. v 11:30, na opravu se přihlásíte zasláním mailu přednášejícímu (michal.kratky@vsb.cz). Nejpozději ve čtvrtek 8.4. se dozvíte přidělení do skupiny.
- Seznam přihlášených studentů: HEC0067, BEL0130, ZAG0018, PSO0011, STI0086, KRA028, ALB0024, FOJ0108, KOC0280, OND0247, FED0033, LIS0111, SKO0180, PET0327, MAT0370, LAS0084, OPL0017, LAU0019
Zadání a řešení testu z PL/SQL (oprava):
- ÚT 30.3.2021 12:30 - Petr Lukáš (řešení)
- ÚT 30.3.2021 12:30, řešení, Michal Krátký
Oprava testu z PL/SQL:
- Oprava testu proběhne v úterý 30.3. ve 12:30, na opravu se přihlásíte zasláním mailu přednášejícímu (michal.kratky@vsb.cz). Do pondělí 29.3. se dozvíte přidělení do skupiny.
- Seznam přihlášených studentů: FOJ0108, ALB0024, POS0228, SIM0321, REH0117, VEC0074, MAC0514, KRA0565, LAS0084, CAN0033, OND0247, KOW0035, HAB0065, GRU0086, GAZ0037, TOT0019, PRI0152, HEC0067, GLA0056, OPL0017, RUS0089, BUR0209, PIR0028, KOC0280, MAC0493, PET0327, LAU0019, KAR0216, KRA028, BEL0130
- Seznam přihlášených studentů od 13:15: JAN0756, PSO0011, PIE0056, SAV0019, SAL0137, STI0086, FOR0061
Body udělované v jednotlivých kolech odevzdávání projektu:
- Analýza: 15, 11, 7.
- ORM: 8, 5.
- Formuláře: 7, 5.
Termíny odevzdání semestrálního projektu (denní studium):
- Datová a funkční analýza:
- Kolo 1: 1.4. (8. týden)
- Kolo 2: 8.4. (9. týden)
- Kolo 3: 15.4. (10. týden)
- ORM:
- Kolo 1: 22.4. (11. týden)
- Kolo 2: 29.4. (12. týden)
- Aplikace (resp. 2-3 formuláře, z toho alespoň jeden centrální formulář využívající vyšší počet funkcí):
- Kolo 1: 6.5. (13. týden)
- Kolo 2: 13.5. (14. týden)
Termíny odevzdání semestrálního projektu (kombinované studium):
- Datová a funkční analýza:
- Kolo 1: 12.4. (10. týden)
- Kolo 2: 19.4. (11. týden)
- Kolo 3: 26.4. (12. týden)
- ORM:
- Kolo 1: 3.5. (13. týden)
- Kolo 2: 17.5. (14. týden + 1)
- Aplikace (resp. 2-3 formuláře, z toho alespoň jeden centrální formulář využívající vyšší počet funkcí):
- Kolo 1: 17.5. (14. týden + 1)
- Kolo 2: 24.5. (14. týden + 2)
Zadání testu (1. kolo)
Následující odkazy budou funkční v čas začátku testu.
- PO 15.3.2021 09:00 (řešení)
- PO 15.3.2021 10:45 (řešení)
- PO 15.3.2021 12:30 (řešení)
- ST 17.3.2021 7:15
- ST 17.3.2021 9:00 (řešení)
- ST 17.3.2021 12:30 (řešení)
- ST 17.3.2021 14:15 (řešení)
- PÁ 19.3.2021 11:30 (řešení)
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 6. 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.
Termíny odevzdání projektů
Model pro praktický test z PL/SQL
Model pro praktický test z minulých let
- Zadání: pdf (poslední změna: 28.2.2020), skript (poslední změna: 26.2.2020).
- 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: 11.2.2021) | Opakování SQL úkoly, řešení (poslední změna: 9.2.2021) |
2. | PL/SQL II (procedury, řídící konstrukce, kurzory) pdf (poslední změna: 16.2.2021) | PL/SQL úkoly, řešení (poslední změna: 9.2.2021) |
3. | PL/SQL III (triggery, dynamické SQL, vázané proměnné, výjimky) pdf (poslední změna: 25.2.2021) | PL/SQL úkoly, řešení (poslední změna: 19.2.2021) |
4. | PL/SQL IV - balíky, hromadné operace, SQL injection, složený trigger pdf (poslední změna: 4.3.2021) | PL/SQL úkoly, řešení (poslední změna: 3.3.2021) |
5. | Transakce, zotavení pdf (poslední změna: 11.3.2021) | Příklady nad aktuálním modelem pro praktický test |
6. | T-SQL Datová a 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) Obecné zásady a časté chyby ve funkční analýze pdf (poslední změna 19.3.2021) |
Praktický test z PL/SQL |
7. | Řízení souběhu I pdf (poslední změna: 25.3.2021) |
|
8. | Řízení souběhu II pdf (poslední změna: 1.4.2021) |
|
9. | Objektově relační mapování (ORM):
|
|
10. | ASP.NET, integrace ORM AuctionDesktopApp (poslední změna: 2.5.2016) | ORM |
11. | Vzory integrace ORM do formulářů uživatelského rozhraní pdf (poslední změna: 22.4.2021) AuctionDesktopApp (poslední změna: 2.5.2016) | ORM |
12. | Fyzický implementace databázových systémů, vykonávání dotazů pdf (poslední změna: 29.4.2021) | ORM |
13. | Objektově relační datový model (poslední změna: 6.5.2021) |
Formuláře uživatelského rozhraní |
14. |