Organizácia cvičení a podmienky udelenia zápočtu

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:

  1. pomocou entitno-relačného modelu namodelujete určenú doménu (odporúčané nástroje sú draw.io, resp. ERDPlus),
  2. vytvorený ER model prevediete na relačnú schému (odporúčané nástroje sú draw.io, resp. ERDPlus),
  3. 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),
  4. Vašou ďalšou úlohou bude naplniť vytvorenú databázu zmysluplnými údajmi,
  5. napísať sadu pohľadov, ktoré budú prezentovať zvládnutie rôznych typov dopytov,
  6. 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:

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.