Skip to main content

Náplň predmetu

Tento kurz vás uvedie do sveta tvorby databázy a správy údajov. Osvojíte si proces návrhu konceptuálneho modelu databázy, jeho transformáciu na tabuľky relačnej databázy a tvorbu databázových dopytov v jazyku SQL. Hoci budeme vychádzať z materiálov Oracle Academy s jazykom Oracle SQL, pre získanie širšieho rozhľadu a univerzálnejších skúseností budeme súbežne pracovať aj so systémami MariaDBPostgreSQL.

Okrem práce s údajmi sa zoznámime s vizualizačným systémom Grafana, ktorý prepojíme s databázou pre tvorbu interaktívnych grafov. V závere kurzu sa naučíme komunikovať s databázou z vlastných aplikácií naprogramovaných v jazyku Python a z webového prostredia pomocou PHP. Čerešničkou na torte bude úvod do problematiky časových radov s využitím moderného systému TimescaleDB.

Podrobnejšia náplň jednotlivých kapitol

1. Konceptuálny model databázy - Úvodná kapitola sa venuje metodike správneho návrhu databázy, osvojeniu pravidiel a odbornej terminológie. Cieľom je navrhnúť kompletný databázový systém od opisu a analýzy situácie, cez identifikáciu entít, až po nákres entitno­‑relačného diagramu.

2. Tvorba a používanie relačnej databázy - Naučíme sa transformovať konceptuálny model na fyzické tabuľky relačnej databázy. K teórii pridáme prax – začneme aktívne používať jazyk SQL a vytvárať prvé dopyty pre výber údajov (SELECT).

3. Práca s údajmi v SQL - Prenikneme hlbšie do tvorby výberových dopytov. Predstavíme si funkcie na spracovanie textových a číselných údajov, ako aj špeciálne funkcie a operácie pre prácu s dátumom a časom. Naučíme sa ošetriť chýbajúce hodnoty (NULL), vytvárať podmienené výrazy a spájať údaje z viacerých tabuliek (JOIN).

4. Agregácia a vizualizácia údajov - Zoznámime sa s agregačnými funkciami, pomocou ktorých budeme údaje zoskupovať a vytvárať štatistické súhrny. Využijeme množinové operácie a budeme riešiť komplexnejšie úlohy z praxe. Výsledky našej práce budeme následne vizualizovať v systéme Grafana.

5. Manipulácia s údajmi a štruktúrou - Naučíme sa využívať vnorené dopyty pre zložitejšie výbery. Následne prejdeme od čítania k zmenám: budeme vkladať, upravovať a odstraňovať údaje. Zároveň sa naučíme vytvárať a meniť samotnú štruktúru tabuliek a definovať dátové typy stĺpcov.

6. Optimalizácia a správa databázy - Spoznáme pokročilé prvky pre efektívnejšiu prácu s databázou, ako sú obmedzenia, kľúče, pohľady, sekvencie, indexy a transakcie. Súčasťou kapitoly je aj bezpečnosť - nastavenie prístupových práv používateľov k databáze a jej tabuľkám.

7. Prepojenie SQL databázy s aplikáciami - Táto téma sa venuje integrácii databázy do reálneho softvéru. Ukážeme si spracovanie údajov z SQL databázy na webovom serveri pomocou jazyka PHP, pričom dôraz budeme klásť na bezpečnosť (ochrana pred SQL Injection). Taktiež sa zoznámime s odľahčenou databázou SQLite, na ktorú sa pripojíme z vlastnej aplikácie v jazyku Python.

8. Databázy časových radov - V záverečnej kapitole sa zameriame na zber veľkého množstva údajov v čase, a to v spojení so smart technológiami od spolužiakov z predmetu Internet vecí - konkrétne z monitoringu kvality ovzdušia v jednotlivých miestnostiach budovy. Využijeme časozberný databázový systém TimescaleDB na efektívne ukladanie a získavanie zoskupených údajov (priemer, minimum, maximum) v požadovaných časových intervaloch. Údaje budeme priebežne agregovať, optimalizovať ich ukladanie a výsledky zobrazovať na živej nástenke v systéme Grafana - aktuálne údaje i grafy rôznych časových intervalov.