bakalářská práce

Simulace scénářů a optimalizace SQL dotazů v platformě BUTCA

Text práce 2.11 MB Příloha 80.42 kB

Autor práce: Ivana Studená

Ak. rok: 2025/2026

Vedoucí: RNDr. Ing. Pavel Šeda, Ph.D.

Oponent: Ing. Petr Ilgner, Ph.D.

Abstrakt:

Výkonnosť databázových systémov je kľúčová najmä v multi-tenantných platformách, kde viacerí používatelia zdieľajú spoločné zdroje. Práca sa zameriava na databázovú vrstvu cyber range platformy BUTCA pre praktické cvičenia z oblasti kybernetickej bezpečnosti. Cieľom práce je vytvoriť nástroj na systematické testovanie výkonu databázy a na základe nameraných výsledkov navrhnúť optimalizácie najnáročnejších SQL dotazov. Teoretická časť sa zaoberá spracovaním a optimalizáciou SQL dotazov, metrikami výkonu, multi-tenantnými architektúrami a princípmi diskrétnej simulácie. V praktickej časti je implementovaný simulátor, ktorý generuje realistické testovacie dáta vrátane parametrického vytvárania tenantov, používateľov, rolí a scenárov, ako aj opakovaného zakladania a čistenia databáz. Nad generovanými dátami práca definuje reprezentatívne SQL dotazy, meria ich výkon a identifikuje výkonnostne náročné miesta. Následne sú navrhnuté a aplikované optimalizácie, ktorých prínos je experimentálne vyhodnotený porovnaním výkonu pred a po ich nasadení. Výsledky ukazujú zvýšenie priepustnosti a zníženie odozvy najnáročnejších dotazov pri vysokej súbežnosti. Navrhnuté úpravy sú priamo nasaditeľné a prispievajú k škálovateľnosti platformy.

Klíčová slova:

SQL jazyk, optimalizácia, BUTCA, multi-tenant architektúra, simulácia

Termín obhajoby

16.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaCznamka

Klasifikace

C

Průběh obhajoby

Studentka prezentovala výsledky své práce a komise byla seznámena s posudky. Studentka obhájila bakalářskou práci s výhradami. a odpověděla na otázky členů komise a oponenta.

Jazyk práce

slovenština

Fakulta

Ústav

Studijní program

Informační bezpečnost (BPC-IBE)

Složení komise

doc. Ing. Karel Burda, CSc. (předseda)
JUDr. Ing. František Kasl, Ph.D. (místopředseda)
RNDr. Ing. Pavel Šeda, Ph.D. (člen)
Ing. Ľuboš Nagy, Ph.D. (člen)
Ing. Vlastimil Člupek, Ph.D. (člen)
Ing. Jan Pospíšil, Ph.D. (člen)
Ing. Martin Plšek, Ph.D. (člen)

Bakalářská práce Ivany Studené se zabývá návrhem a implementací simulátoru scénářů pro testování výkonu databázové vrstvy platformy BUTCA a následnou optimalizací vybraných SQL dotazů.

Studentka během řešení práce průběžně konzultovala postup řešení a reagovala na připomínky. Současně však byla značná část implementačních a experimentálních prací realizována až v závěrečné fázi řešení, což se podle mého názoru projevilo na některých aspektech zpracování a hloubce vyhodnocení dosažených výsledků.

V praktické části studentka vytvořila funkční simulátor pro generování testovacích dat a provedla měření výkonu databáze nad reprezentativními SQL dotazy. Na základě získaných výsledků navrhla a implementovala několik optimalizačních opatření, jejichž přínos doložila experimentálním vyhodnocením. Pozitivně hodnotím zejména praktický přínos práce a využitelnost vytvořeného nástroje pro další rozvoj platformy.

Práce však vykazuje i určité nedostatky. Teoretická část je místy převážně popisná a postrádá hlubší vlastní analýzu problematiky. Za nejslabší považuji zpracování multi-tenantní architektury, která je součástí zadání. Podpora více tenantů je realizována především vytvářením samostatných databází, avšak chybí podrobnější analýza škálovatelnosti, izolace výkonu mezi tenanty nebo jejich vzájemného ovlivňování při souběžném provozu. Měření jsou navíc prováděna převážně nad jednou tenant databází, takže chování systému ve skutečně víceuživatelském prostředí není dostatečně ověřeno.

Přes uvedené výhrady byly hlavní cíle zadání splněny. Studentka vytvořila funkční simulátor, identifikovala výkonově náročné SQL dotazy a navrhla jejich optimalizace.

Celkové hodnocení: D, 68 bodů. Výsledný počet bodů navržený vedoucím: 68

Známka navržená vedoucím: D

Posudek oponenta
Ing. Petr Ilgner, Ph.D.

Cílem předložené bakalářské práce je implementace simulátoru scénářů pro testování výkonu databáze platformy BUTCA. Následně byly identifikovány čtyři případy užití, pro které byly navrženy optimalizace SQL dotazů a provedeno porovnání původního a optimalizovaného stavu. V teoretické části práce je podrobně popsána problematika zpracování dotazů v systémech řízení databází. Naopak podrobnější analýza databázového schématu platformy BUTCA a charakteristik produkčních dat je poměrně stručná.

Jedním z cílů práce je realistické generování testovacích dat. Není však zcela vysvětleno, jak byla ověřena podobnost generovaných dat s reálným provozem platformy BUTCA, například prostřednictvím podrobnější analýzy produkčních dat. Autorka při návrhu optimalizací postupuje systematicky, avšak staví na čtyřech zvolených případech užití, jejichž výběr mohl být podrobněji zdůvodněn. Není například zřejmé, zda se v databázovém schématu nevyskytují i další struktury nebo dotazy, které by bylo vhodné zahrnout do procesu optimalizace. Argumentace nevyužití materializovaných pohledů je zjednodušená, např. není diskutována možnost využití klauzule CONCURRENTLY při jejich obnově.

Součástí práce je simulátor umožňující generovat testovací databázi a porovnávat výkonnost databázového systému před a po aplikaci navržených optimalizací. Zdrojový kód aplikace je přehledný, vhodně strukturovaný. Za nedostatek považuji absenci podpory souběžného běhu více tenantů, který je požadován v zadání práce.

Po formální stránce je práce na dobré úrovni. Opírá se o 31 informačních zdrojů, které jsou v textu řádně citovány. Čitelnost práce by dále zlepšilo členění některých rozsáhlejších kapitol a doplnění stručných úvodů do vybraných částí textu.

Přes uvedené připomínky oceňuji praktický přínos práce a možnost využití vytvořeného simulátoru při dalších optimalizacích databázové vrstvy platformy BUTCA. Práci doporučuji k obhajobě a navrhuji hodnocení C / 72 b. Otázky k obhajobě:
  1. Proč byly při porovnání výkonnosti původního a optimalizovaného řešení zvoleny pouze 3 opakování a jak byla ověřena reprodukovatelnost výsledků?
  2. V tabulce 2.5 uvádíte, že zvýšení parametru shared_buffers ze 4 GB na 6 GB vedlo ke zhoršení odezvy systému. Jak si tento výsledek vysvětlujete vzhledem k tomu, že podobná velikost vyrovnávací paměti bývá u PostgreSQL často doporučována?
  3. Za jakých podmínek by bylo možné využít materializované pohledy v platformě BUTCA a jaké výhody a omezení by mělo použití příkazu REFRESH MATERIALIZED VIEW CONCURRENTLY?
Výsledný počet bodů navržený oponentem: 72

Známka navržená oponentem: C

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová