Náplň predmetu
Tento predmetkurz savás zaoberáuvedie tvorboudo sveta tvorby databázy a programovanímsprávy databáz.údajov. NaučímeOsvojíte sasi správneproces navrhovaťnávrhu konceptuálnykonceptuálneho modelmodelu databázy, transformovaťjeho hotransformáciu na tabuľky relačnej databázy a vytváraťtvorbu databázovédatabázových dotazydopytov v SQLjazyku jazyku.SQL. BudemeHoci využívaťbudeme materiályvychádzať z materiálov Oracle Academy s jazykom Oracle SQL, noSQL, pre širšízískanie rozhľadširšieho rozhľadu a univerzálnejšieuniverzálnejších skúsenostiskúseností budeme súbežne pracovať aj so systémami MariaDB a PostgreSQL.
Okrem tompráce s údajmi sa zoznámime s vizualizačným systémom Grafana, ktorý prepojíme s našou databázou apre budemetvorbu zobrazovaťinteraktívnych rôzne grafy.grafov. V závere kurzu sa naučíme kkomunikovať databázes pripojiťdatabázou z vlastnéhovlastných programuaplikácií naprogramovaných v jazyku Python a z webového serveraprostredia pomocou PHP. Čerešničkou na torte bude úvod do problematiky časových radov s PHP.využitím Nakoniecmoderné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 časozbernouodľ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.