Ciele predmetu
- Porozumieť významu databázových systémov a pojmov v oblasti.
- Pochopiť relačný dátový model a jeho význam v databázových systémoch.
- Naučiť sa pracovať s jazykom SQL, pomocou neho definovať z relačného modelu schému databázy, napĺňať ju údajmi a vytvárať pokročilejšie dopyty.
- Získať základne vedomosti v oblasti ukladaných (storovaných) procedúr a trigrov.
Organizácia predmetu
Na každom cvičení riešite úlohy s pomocou týchto materiálov. Vaše návrhy, riešenia a nejasnosti (či už ohľadom úloh alebo zadaní) konzultujete s cvičiacim, ktorého primárnou úlohou je vystupovať v roli konzultanta. Po vyriešení všetkých úloh pokračujete v práci na svojom zadaní. V tomto Vám pomáhajú doplňujúce úlohy uvedené na konci každého cvičenia.
Zápočet má hodnotu 40 bodov.
Podmienky udelenia zápočtu
Vašou úlohou bude získať aspoň 21 z možných 40 bodov za zápočet. Dané body je možné získať za nasledovné aktivity:
- 27 bodov za zadanie,
- 13 bodov za zápočtový test.
Ak ste opakujúci študent, máte skrátený semester. Ohľadom priebehu výučby budete informovaní prednášajúcim v prvý týždeň semestra.
Zadanie
Cvičiaci Vám určí doménu a Vašou úlohou bude pre ňu vytvoriť vzorovú databázu nasledovným spôsobom:
- pomocou entitno-relačného modelu namodelujete určenú doménu (odporúčané nástroje sú draw.io, resp. ERDPlus),
- vytvorený ER model prevediete na relačnú schému (odporúčané nástroje sú draw.io, resp. ERDPlus),
- pre danú relačnú schému napíšete SQL skript, ktorý danú schému bude implementovať na vybranom databázovom systéme (odporúčaný je PostgreSQL),
- Vašou ďalšou úlohou bude naplniť vytvorenú databázu zmysluplnými údajmi,
- napísať sadu pohľadov, ktoré budú prezentovať zvládnutie rôznych typov dopytov,
- vytvoriť min. dva zmysluplné triggery, aspoň jednu funkciu a jednu storovanú procedúru, vzhľadom na Vaše zadanie.
Zadanie musí spĺňať nasledovné podmienky:
- musí zahŕňať aspoň 4 entitné množiny s aspoň 3 vzťahovými množinami (aspoň jedna s kardinalitou 1:M, a s kardinalitou jedna M:N), nepoužívajte pritom zložené a viachodnotové atribúty,
- každá tabuľka musí mať aspoň 5 zmysluplných záznamov (inšpirujte sa reálnym svetom),
- musí obsahovať 10 zmysluplných pohľadov:
- 2 pohľady s jednoduchým netriviálnym selectom nad jednou tabuľkou,
- 3 pohľady so spájaním tabuliek (1x spojenie aspoň 2 tabuliek, 1x spojenie aspoň 3 tabuliek, 1x outer join),
- 2 pohľady s použitím agregačných funkcií a/alebo zoskupenia,
- 1 pohľad s použitím množinových operácií,
- 2 pohľady s použitím vnorených poddopytov,
- musí obsahovať sekvenciu na generovanie primárnych kľúčov a triger/trigre, ktoré budú implementovať ich autoinkrementáciu,
- musí obsahovať aspoň dva zmysluplné triggre, z toho jeden nad pohľadom,
- musí obsahovať aspoň jednu storovanú procedúru a jednu funkciu.
Odovzdávať sa bude v troch termínoch:
- 5. týždeň - odovzdanie ER modelu, relačnej schémy, skriptu na vytvorenie databázy.
- 8. týždeň - odovzdanie skriptu na naplnenie databázy, pohľadov ukazujúcich selecty so spájaním tabuliek, zoskupovaním záznamov a agregačnými funkciami.
- 13. týždeň - odovzdanie pohľadov s vnorenými poddopytmi a trigrov (+ úprava skriptu na naplnenie databázy aby využívali autoinkrementáciu, nevyužívať funkcionalitu pre autoinkrementáciu v PostgreSQL), storovanú procedúru.
Každé odovzdanie je za 9 bodov, dokopy 27 bodov. Odovzdávate vždy dokument (v elektronickej forme) s potrebnými modelmi a skriptami, ktorý sa priebežne inkrementálne dopĺňa (napr. pri druhom odovzdaní odovzdáte dokumenty, ktoré bude obsahovať materiály aj za prvé odovzdanie).
Priebeh odovzdávania
Za splnenie minimálnych formálnych podmienok je možné získať 6 zo 9 bodov (teda 66.6%). Zvyšné 3 body cvičiaci udelí za vhodný prístup - dobre premyslenú analýzu domény, zaujímavý select, atď.
Zápočtový test
V 11. týždni bude prebiehať test, v ktorom sa overí Vaša schopnosť písať SQL dopyty a zároveň aj teoretické vedomosti ohľadom databáz a jazyka SQL (v medziach prednášok).
Test bude za 13 bodov, v pomere 6 bodov za teoretické otázky, 7 bodov za praktické úlohy (SQL).
Vyučujúci:
Prednášajúci:
Prednášky v utorok v čase 15:10 - 16:40, online. Viac informácii najdete vám bolo zaslaných emailom.
Cvičiaci:
-
Bc. Ruslan Diakov email: ruslan.diakov@student.tuke.sk
-
Bc. Anton Mozenbakh email: anton.mozenbakh@student.tuke.sk
-
Diana Oršolyová email: diana.orsolyova@student.tuke.sk
Zdroje a použitá literatúra
- Oficiálna dokumentácia PostgreSQL
- PostgreSQL Tutorial
- Karol Matiaško, Michal Kvet, Marek Kvet. Databázové systémy. Žilinská univerzita, 2018.
- Pokorný, Jaroslav, Michal Valenta. Databázové systémy. České vysoké učení technické v Praze, 2013.
- Ramez Elmasri, Shamkant B. Navathe: Fundamentals of Database Systems, Addison Wesley, 5 edition, 2006, 1168 s. ISBN 0321369572
- Abraham Silberschatz, Henry F. Korth, S. Sudarshan: Database System Concepts, The McGraw-Hill Companies, 2011, 6th edition, ISBN 978-0-07-352332-3
- S. Sumathi, S. Esakkirajan: Fundamentals of Relational Database Management Systems, Springer, 2007, 776 s. ISBN 3540483977
- Берко, А., and О. Верес. Організація баз даних: практичний курс. Львів: Видавництво Національного університету Львівська політехніка, 2003.
- Кириллов, Владимир Васильевич. Введение в реляционные базы данных. БХВ-Петербург, 2012.
- Романюк, Олександр Никифорович, and Т. О. Савчук. Організація баз даних і знань, УНІВЕРСУМ-Вінниця, 2003.
- Трофіменко, Олена Григорівна, et al. Організація баз даних: навч. посібник, . 2-ге вид. виправ. і доповн. – Одеса : Фенікс, 2019.
- Шустова, Лариса Ивановна, Олег Владимирович Тараканов. Базы данных, Издательство: Инфра-М, 2016.