Detail předmětu

Databáze pro řízení procesů

FSI-VDC Ak. rok: 2027/2028 Zimní semestr

Předmět představuje úvod do problematiky databázových systémů.

Zabývá se následujícími tématy: Zpracování dat, problém redundance a nekonzistence, integrita, utajení, víceuživatelský přístup k datům. Index-sekvenční organizace dat. Integritní omezení pro vztahy.
Architektura databázového systému, datové modely. E-R model, relační algebra, dotazovací jazyk relační algebry.


Teoretické aspekty návrhu informačních systémů. Funkční závislosti, normální formy relací, dekompoziční teorém.


Dotazovací jazyk SQL.
Bezpečnost dat.
Cloudy a gridy.
NoSQL databáze.
MongoDB. ElasticSearch. Redis/Valkey.

Jazyk výuky

čeština

Počet kreditů

6

Garant předmětu

Vstupní znalosti

Ke studiu databázových systémů postačují základní znalosti z tvorby algoritmů.

Způsob zakončení předmětu a pravidla hodnocení studentů

Podmínkou pro zápočet je implementace netriviální databázové aplikace v  využitím odpovídajících prostředků.
Zkouška má písemnou nebo elektronickou formu. Studenti v ní prokazují znalost návrhu datových struktur, relační algebry, jazyka SQL a programování.
Protože cvičení jsou povinná, bude na nich vyučující pravidelně kontrolovat účast. V případě omluvené nepřítomnosti student obdrží příklady k samostatnému vypracování tak, aby mohl zameškanou látku zvládnout.

Učební cíle

Cílem předmětu je seznámit studenty se základními databázovými technologiemi pro efektivní návrh a správu aplikací s velkým rozsahem údajů v prostředí internetu.
Předmět slouží studentům k seznámení s teoretickými aspekty návrhu databázové aplikace a její implementace v prostředí internetu včetně programování příslušných programovacích technik. Budou tak schopni vytvořit aplikaci pro efektivní správu velkého množství dat a také se naučí využívat cloudové služby.

Studijní opory

STEPHENS, R., Beginning Database Design Solutions: Understanding and Implementing Database Design Concepts for the Cloud and Beyond, 2023, 978-1394155729

DATE, C.J., Database Design and Relational Theory: Normal Forms and All That Jazz, 2019, 978-1484255391

KLEPPMANN, M. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2017, 978-1449373320

HERNANDEZ, Michael, J., Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, 2003, 978-020175284

CARLSON, Josiah, L., Redis in Action, 2013, 978-1617290855

Použití předmětu ve studijních plánech

Program B-MAI-P: Matematické inženýrství, bakalářský, povinně volitelný

Program N-MET-P: Mechatronika, magisterský navazující, volitelný

Program B-STR-P: Strojírenství, bakalářský
specializace AIŘ: Aplikovaná informatika a řízení, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Osnova


  1. Vymezení předmětu, datové potřeby, konceptuální modelování a rozhodovací
    rámec

  2. Datové modelování – ER diagram

  3. ER diagram – pokračování, syntaxe SQL a fyzický datový model

  4. Databázové dotazování I – SELECT, JOIN a agregace

  5. Databázové dotazování II – poddotazy, pohledy, transakce a triggery

  6. PL/pgSQL – programovatelnost databází

  7. NoSQL databáze – úvod a práce s časovými řadami (TimescaleDB, InfluxDB)

  8. MongoDB – dokumentové databáze

  9. Firebase – Firestore

  10. Redis/Valkey – databáze typu klíč–hodnota, mezipaměť a fronty

  11. Elasticsearch – fulltextové vyhledávání

  12. Grafové databáze — Neo4j, Cypher

  13. Polyglot persistence + rozhodovací rámec — shrnutí kurzu

Cvičení s počítačovou podporou

26 hod., povinná

Osnova


  1. Seznámení s prostředím, PostgreSQL (Docker/server), zadání projektu 1 a tvorba týmů

  2. Návrh ER diagramu pro vlastní téma projektu 1, vzájemné hodnocení (peer review)

  3. CREATE TABLE, cizí klíče a omezení CHECK – implementace ER diagramu v PostgreSQL

  4. Procvičování dotazů SELECT a JOIN na databázi MetalWorks, dotazování nad vlastním projektem

  5. Pokročilé SQL dotazy, pohledy a transakce; test ze SQL

  6. Triggery a uložené procedury – rozšíření vlastního projektu

  7. Praktická práce s TimescaleDB (import CSV, time_bucket, continuous aggregates); zadání projektu 2

  8. Obhajoba projektu 1

  9. Firebase/Firestore – práce s konzolí, kolekce, bezpečnostní pravidla a dotazování prostřednictvím webového SDK

  10. Redis CLI – datové struktury, TTL, pub/sub; integrace s FastAPI a využití jako mezipaměti

  11. Elasticsearch a Kibana – indexování, mapování (mapping), Query DSL a fulltextové vyhledávání

  12. Obhajoba projektu 2

  13. Závěrečný test a shrnutí kurzu