====== A4B33DS -- Databázové systémy ====== Anotace předmětu * Rozvrh [[http://www.fel.cvut.cz/cz/education/rozvrhy-ng.B162/public/cz/predmety/12/58/p12581304.html|A4B33DS]] * [[https://cw.felk.cvut.cz/forum/forum-1380.html|Diskusní fórum databázových předmětů]] * [[https://cw.felk.cvut.cz/brute/|Systém pro odevzdávání semestrálních prací]] ===== Harmonogram přednášek ===== Přednášky jsou společné s předměty [[https://cw.fel.cvut.cz/wiki/courses/db/start|DBS]]. ===== Harmonogram cvičení ===== Cvičení probíhají ve středu. V přehledu cvičení níže, jsou uvedena data konání cvičeních. - [[courses:a4b33ds:cviceni-1|Motivace databází, přehled. Seznámení s programovým vybavením – PostgreSQL, PgAdmin, nabídka témat]] (22.2.) - [[courses:a4b33ds:cviceni-2|Datové modelování, konceptuální a logický model]] (1.3.) - **Schválení tématu**, návrh datového modelu ({{:courses:a4b33ds:1-cv-en.goondateapplication.pdf| Seznamka}}, {{:courses:a4b33ds:navrh-senzorovasit.pdf|Senzorová síť}}) (8.3.) - [[courses:a4b33ds:cviceni-4-5|SQL I.]] (15.3.) - [[courses:a4b33ds:cviceni-4-5|SQL II.]] (22.3.) ([[courses:a4b33ds:ukazkove-dotazy|ukázkové dotazy]]) - **CP1: konzultace odevzdaného modelu**, [[courses:a4b33ds:cviceni-6|SQL, CRUD]] (29.3.) - Pokrocile databazove techniky [[courses:a4b33ds:cviceni-8| Pohledy, uložené procedury, triggery]], [[courses:a4b33ds:cviceni-7|Indexy]], [[courses:a4b33ds:cviceni-7|Transakce]] (5.4.) - Přípojení k DB serveru: [[courses:a4b33ds:cviceni-9|JDBC, JPA 2 - entity a manipulace s jimi, relace mezi entitami, JPQL]] (12.4.) - [[courses:a4b33ds:cviceni-10|GIS ukázka, Datový sklad ukázka]] (19.4.) - //implementace semestrální práce // (26.4.) - //implementace semestrální práce // (3.5.) - odevzdání aplikace, // implementace semestrální práce // (10.5.) - **CP2: odevzdání aplikace**, zápočet (24.5.) ==== Cvičící: ==== * [[mailto:rimnacm@cs.cas.cz|Martin Řimnáč]] * [[mailto:tomasma5@fel.cvut.cz|Martin Tomášek]] ===== Podmínky zápočtu ===== * max 2 omluvené absence * práce maximálně ve skupině po 2 * včasné odevzdání semestrální práce (max 35 bodů): * **Model** - návrh databáze - CP1 (min. 5 body - max. 10 bodů) * minimální rozsah: 6 entitních typů, alespoň 1 vztah M:N * konceptuální model, jemu odpovídající logický model, popis referenčních integrit (alespoň 1) * odevzdání nejdéle 7. týden (poté již odevzdání není možné) přes [[http://cw.felk.cvut.cz/brute/ | upload na CW stránkách předmětu]] (PDF obsahující obrázek ER diagramu a odpovídající SQL dotaz na vytvoření databáze) * **Aplikace** - CP2 (min 10 bodů, max. 20 bodů) * databáze odpovídající modelu + min. 2 z následujících vlastností (á 4 body, max 8 bodů) * triggery, uložené procedury [[http://www.postgresql.org/docs/8.4/static/server-programming.html|manual Server Programming]] * zapisovatelné view [[http://www.lshift.net/blog/2006/07/20/updateable-views-in-postgresql|info updateable views]] * JPA 2 + Criteria API * uživatelské rozhraní desktopová aplikace (max 5 bodů) * GUI ve Swingu a pod. * vhodně demonstrovat komplexní zpracování (CRUD) vybrané N:M vazby * transakční zpracování, volba vhodných stupňů izolovanosti transakcí * klient demo - SQL (max 7 bodů) * maximálně jednoduchý klient na generování provozních dat * výstupní sestavy obsahující agregovaná data * demonstrace anomálií při různých stupních izolovanosti (anomálie vynuťte vhodnými prostředky) * odevzdání 13 týden přes ([[http://cw.felk.cvut.cz/brute/ | BRUTE ]]), minimálně 1 den před kontrolou * **TEST** použití pokročilých technik (nepovinné, max 5 bodů), např. * netriviální optimalizace dotazu (EXPLAIN, atp) * netriviální použití uložené procedury * netriviální dotaz * pro získání zápočtu musí být části CP1, CP2 semestrální práce odevzdány alespoň z 50% bez penalizace * ke zkoušce student získává body podle níže uvedeného vzorce, kde je přísně zohledněno pozdní odevzdání jak modelu, tak i vlastní aplikace * B = (B1 - P1) + (B2 - P2) + B3, -15 < = B < = 35, **ke zkoušce si lze odnést i záporné body !** * P1=5* počet započatých týdnů zpoždění od CP1 * P2=5* počet započatých týdnů zpoždění od CP2 * CP1, téma+model, B1= min. 5, max. 10 * CP2, výsledná aplikace, B2=min. 10, max. 20 * TEST, nepovinné rozšíření úlohy z CP2, B3= min. 0, max. 10, ===== Zkouška ===== * U zkoušky je možné získat 65 bodů (minimálně je požadováno 33 bodů), známky budou udělovány dle klasické 100 bodové stupnice * Ukázkové zadaní zkouškové písemky: {{:courses:bd6b33dbs:pisemka.pdf|}}.