Bachelor's Thesis

Scenario simulation and SQL query optimization in the BUTCA platform

Final Thesis 2.11 MB Appendix 80.42 kB

Author of thesis: Ivana Studená

Acad. year: 2025/2026

Supervisor: RNDr. Ing. Pavel Šeda, Ph.D.

Reviewer: Ing. Petr Ilgner, Ph.D.

Abstract:

The performance of database systems is crucial, especially in multi-tenant platforms where multiple users share common resources. This thesis focuses on the database layer of the BUTCA cyber range platform, which is used for practical cybersecurity exercises. The aim of the work is to create a tool for systematic database performance testing and, based on the measured results, to propose optimizations for the most demanding SQL queries. The theoretical part deals with SQL query processing and optimization, performance metrics, multi-tenant architectures, and the principles of discrete simulation. In the practical part, a simulator is implemented to generate realistic test data, including the parametric creation of tenants, users, roles, and scenarios, as well as the repeated creation and cleanup of databases. Using the generated data, the thesis defines representative SQL queries, measures their performance, and identifies performance bottlenecks. Subsequently, optimizations are proposed and applied, and their benefits are experimentally evaluated by comparing performance before and after deployment. The results demonstrate an increase in throughput and a reduction in response time for the most demanding queries under high concurrency. The proposed modifications are directly deployable and contribute to the scalability of the platform.

Keywords:

SQL language, optimization, BUTCA, multi-tenant architecture, simulation

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

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.

Language of thesis

Slovak

Faculty

Department

Study programme

Information Security (BPC-IBE)

Composition of Committee

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)

Supervisor’s report
RNDr. Ing. Pavel Šeda, Ph.D.

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ů. Points proposed by supervisor: 68

Grade proposed by supervisor: D

Reviewer’s report
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. Topics for thesis defence:
  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?
Points proposed by reviewer: 72

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová