hero-image

Výuka databázových předmětů na Katedře informatiky

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):

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ž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

  • Zadání: pdf (poslední změna: 1.3.2021), skript (poslední změna: 1.3.2021).

 

Model pro praktický test z minulých let

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:
  • 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.rar5.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ýdenPřednáškaCvič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
pdf (poslední změna: 18.3.2021)

Datová a funkční analýza ukázkového projektu
pdf (poslední změna: 18.3.2021)

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)
  • T-SQL: úkoly, řešení (poslední změna: 16.3.2020)
  • Konzultace zadání a analýzy semestrálního projektu

 

8.Řízení souběhu II
pdf (poslední změna: 1.4.2021)
  • T-SQL
  • Konzultace zadání a analýzy semestrálního projektu
9.

Objektově relační mapování (ORM):

  • pdf (přednáška, poslední změna: 8.4.2021)
  • scripts.zip (create skript, generování DTO, poslední změna: 16.4.2018)
  • AuctionSystemORM_sqls (ukázka ORM v .NET,  SQL Server, poslední změna: 16.4.2018)
  • AuctionSystemORM (ukázka ORM v .NET, SQL Server a Oracle, poslední změna: 16.4.2018)
10.

ASP.NET, integrace ORM
pdf (poslední změna: 15.4.2021)

AuctionWebApp (poslední změna: 25.4.2016)

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)

AuctionWebApp (poslední změna: 25.4.2016)

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
pdf
(poslední změna: 6.5.2021)

 

Formuláře uživatelského rozhraní

14.