====== B0B36DBS – Databázové systémy ====== Předmět je koncipován jako základní databázový kurz, v němž je důraz kladen zejména na schopnost samostatného návrhu datového modelu, zvládnutí jazyka SQL a schopnosti zvolit vhodný stupeň izolovanosti transakcí. Studenti se dále seznámí s nejběžněji používanými technikami indexace, architekturou databázových systémů a jejich správou. Své poznatky si ověří při vypracování průběžně odevzdávané samostatné úlohy. [[https://fel.cvut.cz/cz/education/bk/predmety/50/10/p5010606.html|Popis předmětu]] [[https://fel.cvut.cz/cz/education/rozvrhy-ng.B232/public/html/predmety/50/10/p5010606.html|Rozvrh předmětu]] ===== Kontakty ===== * Přednášející: [[https://udb.fel.cvut.cz/udb.phtml?_cmd=show&odn=uid=RIMNACM,ou=People,o=feld.cvut.cz&_type=user|Martin Řimnáč]] * Cvičící: [[https://udb.fel.cvut.cz/udb/udb.phtml?_cmd=show&odn=uid=kostobog,ou=People,o=feld.cvut.cz&_type=user|Bogdan Kostov]] [[https://udb.fel.cvut.cz/udb/udb.phtml?_cmd=show&odn=uid=nagyoing,ou=People,o=feld.cvut.cz&_type=user|Ingrid Nagyová]] [[https://udb.fel.cvut.cz/udb/udb.phtml?_cmd=show&odn=uid=prokoyul,ou=People,o=feld.cvut.cz&_type=user | Yullia Prokop ]] [[https://udb.fel.cvut.cz/udb.phtml?_cmd=show&odn=uid=RIMNACM,ou=People,o=feld.cvut.cz&_type=user|Martin Řimnáč]] ===== Harmonogram ===== ^ Týden ^ Přednáška ^ DK ^ Cvičení ^ Odevzdání ^ | 1 | {{ :courses:b0b36dbs:lecture-conceptual-modeling.pdf |Konceptuální model}} | | {{ :courses:b0b36dbs:lab-01-konceptualnimodel.pdf | Konceptuální model}} | | 2 | Konceptuální model - ukázka {{ :courses:b0b36dbs:lecture-relational-model.pdf |Relační model }} | | {{ :courses:b0b36dbs:lab-er-2.pdf |Konceptuální model}} ( {{ :courses:b0b36dbs:lab-er-1.pdf | MS}} {{ :courses:b0b36dbs:lab-er-solutions.pdf | řešení MS}}) | | 3 | {{ :courses:b0b36dbs:lecture-relational-model.pdf |Relační model }} | | {{ :courses:b0b36dbs:lab-03-relationalmodel.pdf | Relační model}}({{ :courses:b0b36dbs:lab-rm.pdf | MS }} {{ :courses:b0b36dbs:lab-rm-solutions.pdf | řešení MS}}) | Sdělení tématu | | 4 | {{ :courses:b0b36dbs:lecture-11-functional-dependencies.pdf| Funkční závislosti}} | DK | Relační model (samostatná práce) | ** Odevzdávání konceptuálního modelu ** | | 5 | {{ :courses:b0b36dbs:lecture-04-sql-data-querying.pdf | SQL - práce s daty}} | | {{ :courses:b0b36dbs:lab-05-funkcnizavislosti.pdf | Funkční závislosti}} ({{ :courses:b0b36dbs:lab-11-fd-solutions.pdf | řešení}}) | | | 6 | {{ :courses:b0b36dbs:lecture-03-sql-data-definition.pdf | SQL - práce s datovým modelem }} | | {{ :courses:b0b36dbs:lab-06-sql-data.pdf | SQL - Práce s daty}} ({{ :courses:b0b36dbs:lab-05-sql-querying.pdf |MS }} {{ :courses:b0b36dbs:lab-05-sql-querying-solutions.pdf | MS řešení}})| | | 7 | {{ :courses:b0b36dbs:lecture-05-sql-advanced-constructs.pdf |SQL - pokročilé techniky}} | | {{ :courses:b0b36dbs:lab-07-datovymodel.pdf | SQL - práce s datovým modelem}} ( {{ :courses:b0b36dbs:lab-04-sql-schema.pdf | MS}} {{ :courses:b0b36dbs:lab-04-sql-schema-solutions.pdf | řešení}}) | Relační model | | 8 | {{ :courses:b0b36dbs:lecture-06-database-transactions.pdf |Databázové transakce}} | | {{ :courses:b0b36dbs:lab-07-sql-advanced.pdf |SQL - pokročilé techniky}} ({{ :courses:b0b36dbs:lab-07-sql-advanced-solutions.pdf |řešení}} {{ :courses:b0b36dbs:lab-07-sql-advanced-solutions-alt.pdf | řešení 2}}) | | | 9 | {{ :courses:b0b36dbs:lecture-09-query-evaluation.pdf | SQL - analýza dotazů, indexy}} | | {{ :courses:b0b36dbs:transakce.pdf | Databázové transakce}} | | | 10 | {{ :courses:b0b36dbs:lecture-10-jdbc-jpa.pdf | JDBC, JPA }} | DK | {{ :courses:b0b36dbs:lab-09-evaluation.pdf | SQL - analýza dotazů}}, indexy, triggery ({{ :courses:b0b36dbs:lab-09-evaluation-solutions.pdf | řešení}}) | ** Datový model a práce s daty **| | 11 | {{ :courses:b0b36dbs:lecture-12-modern-trends.pdf | Aktuální trendy }} | | {{ :courses:b0b36dbs:lab-10-jdbc-jpa-mr.pdf | JDBC, JPA}} {{ :courses:b0b36dbs:lab-10-jdbc-jpa.pdf | (MS)}} ({{ :courses:b0b36dbs:lab-10-jdbc-jpa-solutions.pdf |řešení}}) | | | 12 | {{ :courses:b0b36dbs:datove-sklady.pdf | OLAP}} | | Samostatná práce | Ukázka transakce, optimalizace, triggeru | | 13 | (rektorský den) | |Samostatná práce / náhrada | | | 14 | (rezerva / předtermín) | P | ** Odevzdávání java aplikace **|| Cvičení označená DK jsou určena k dobrovolným konzultacím nad poslední odevzdanou úlohou. Cvičení označené P je povinná. Materiály vycházejí z [[https://www.ksi.mff.cuni.cz/~svoboda/courses/182-B0B36DBS/|běhu 2020/2021 předmětu Databázové systémy přednášejícího Martina Svobody]]. Přednášky se z kapacitních důvodů konají v úterý a ve čtvrtek. V případě nižší návštěvnosti přednášek budou čtvrteční přednášky zrušeny. ===== Podmínky zápočtu ===== * Účast na cvičení je dobrovolná, avšak silně doporučená; to se netýká povinnému cvičení výše označeného P, kdy se prezentují úlohy cvičícímu. U cvičení označených DK je předpokládán blok konzultací k odevzdaným úkolům (zpětná vazba). * Nedílnou součástí cvičení je práce na semestrální práci. Semestrální práce má jediné realistické téma, které je postupně rozpracováváno formou dílčích úloh. * Každá úloha musí být odevzdána alespoň na třetinový počet bodů, všechny úlohy alespoň na polovinu z maximálního počtu dosažitelných bodů. * Úlohy se vypracovávají samostatně elektronicky s pomocí vhodných specializovaných aplikací, není-li uvedeno jinak. * Vypracovaná úloha se odevzdává prostřednictvím systému BRUTE řádně a včas, pozdější odevzdání je penalizováno 5 body. Penalizace se započítává do celkového hodnocení za cvičení. * V případě nadstandardně vypracované úlohy či aktivity na cvičení může cvičící přidělit bonusové body. Maximální celkový počet bonusových bodů je 12. * Body získané řešením semestrální práce se z 30% podílí na výsledném hodnocení. === Semestrální práce === * Úlohy se odevzdávají výhradně pomocí odevzdávacího systému BRUTE * Každý si zvolí dostatečně nosné téma, které bude během semestru zpracovávat. Změna tématu během semestru není možná. * Vypracovanou úlohu je možné do systému nahrát opakovaně, hodnotí se jen poslední verze. Jakmile cvičící poslední verzi ohodnotí, toto hodnocení zapsané do systému BRUTE je konečné. Jest žádoucí se s námitkami cvičícího seznámit a reflektovat je v dalších úlohách. * Úlohy je nutné odevzdávat řádně a včas, odevzdávejte pouze to, co je požadováno pro zdárné splnění úlohy. ===== Zkouška ===== * Zkouška má povinnou písemnou část a nepovinnou ústní část. * Na vypracování písemné části je 120 min, termín konání ústní části sdělí zkoušející v den zkoušky. * Hodnocení se skládá z bodů * ze cvičení dělených 3 (tj. max 30 bodů) * získaných během zkoušky (tj. max 70 bodů), přičemž písemná část nemůže být hodnocena méně než 40 body. * Známka se uděluje dle ECTS stupnice na základě celkového počtu získaných bodů. * Náhled do písemné práce je umožněn po ukončení následujícího zkouškového termínu.