Databáza a DBMS: kto je za čo zodpovedný
What you'll learn
- rozlíšiť databázu (organizované úložisko) od — programu, ktorý vykonáva SQL dotazy a spravuje dáta
- vysvetliť cestu dotazu «SQL → DBMS → výsledok» a prečo hromada excelovských súborov neunesie tisíce súčasných používateľov
- vymenovať, čo DBMS dáva navyše oproti «obyčajným súborom»: transakcie, obnovovací žurnál (), prístupové práva (
GRANT), kontroly integrity
Kapitola 1 — «Mapa archívu»
Snímka «Kotomarketu» už nie je signál z mŕtveho sektora — leží v karanténnom boxe «Vault-9» a pod posledným riadkom jeho výpisu sa skvie stále tá istá značka: «K.». Ráno sa ti na holopaneli rozsvieti nový záznam: «Prístup: súpis archívu. Vydal: modul S.Q.L.» Dvere úložiska sa odsúvajú nabok; za nimi v jantárovom svetle rovnomerne hučia serverové skrine.
QUERY: Skôr než budeš čítať cudziu pamäť, pochop, ako je usporiadaná. Začnime tým hlavným: čo je tu úložisko a kto je strážca.
Databáza a DBMS
Databáza (DB) je organizované úložisko. V snímke «Kotomarketu» ležia zákazníci, tovary, objednávky a udalosti: nie rozsypané v súboroch, ale v zrozumiteľnej štruktúre — práve preto sa dajú čítať aj po stošesťdesiatich rokoch.
Lenže samotné úložisko na otázky neodpovedá. Treba program, ktorý vie vytvárať tabuľky, zapisovať nové objednávky, čítať dáta a dohliadať, aby sa väzby nelámali. To je (systém riadenia bázy dát). Príklady: PostgreSQL, MySQL, ClickHouse. Naša snímka je databáza PostgreSQL a hovorí tým istým jazykom SQL ako za života obchodu.
Napíšeš dotaz v SQL → pošleš ho do DBMS → DBMS vytiahne potrebné dáta a vráti výsledok. Excel je skvelý na osobnú tabuľku, ale nie na obchod, kde tisíce používateľov naraz prezerajú tovary, vytvárajú objednávky a zanechávajú v systéme udalosti.

Database and DBMS
A database is an organized store. The Kotomarket holds buyers, products, orders, and events — not scattered across files, but in a clear structure. That’s exactly why it can still be read a hundred and sixty years later.
But the store itself doesn’t answer questions. You need a program that can create tables, record new orders, read data, and make sure the links never break. That’s a (database management system). Examples: PostgreSQL, MySQL, ClickHouse. Our snapshot is a PostgreSQL database, and it still speaks the same SQL it did when the shop was alive.
You write a query in SQL → send it to the DBMS → the DBMS fetches the data you asked for and returns the result. Excel is fine for a personal spreadsheet, but not for a shop where thousands of users browse products, place orders, and leave events in the system all at once.
Čo DBMS dokáže a «obyčajné súbory» nie
Zdá sa, že obchod by mohol žiť aj bez : zapisovať objednávky do CSV alebo Excelu. V rozsahu osobného zápisníka sa to tak aj robí — kým neprídu úlohy, kvôli ktorým DBMS vôbec vymysleli.
- Súbežný prístup. V živom «Kotomarkete» zákazníci vytvárali objednávky naraz. Dva procesy zapisujúce do jedného súboru si navzájom prepisujú zmeny; DBMS vykonáva zmeny ako transakcie a paralelné operácie si rozradí sama. PostgreSQL to robí cez mechanizmus : čítajúci neblokujú zapisujúcich a naopak.
- Obnova po havárii. Napájanie zablikalo uprostred zápisu — súbor sa poškodil a nevedno, ktorá polovica objednávky sa stihla uložiť. DBMS najprv zaznamená zmenu do žurnálu (v PostgreSQL — , write-ahead log) a po havárii ju dohrá: objednávka je buď zapísaná celá, alebo vôbec nie.
- Prístupové práva. Súbor je otvorený buď celý, alebo nijako. V DBMS sú práva granulárne — až po jednotlivú tabuľku:
-- Analytikovi — len čítanie objednávok, bez práva ich meniť
GRANT SELECT ON orders TO analyst;
- Integrita. DBMS neprijme objednávku s cenou v podobe textu ani s odkazom na neexistujúceho zákazníka: typy stĺpcov a obmedzenia sa kontrolujú pri každom zápise. Súboru je jedno, čo v ňom leží.
- Deklaratívne otázky. «Ukáž objednávky drahšie ako 5000» — jeden riadok SQL. Pri súbore tú istú prácu robí program, ktorý musí niekto napísať a nepomýliť sa.
je pracovitý sprostredkovateľ medzi tebou a dátami: prijíma SQL dotazy, vykonáva ich a nedovolí, aby sa databáza premenila na chaos. V kurze sa učíme na PostgreSQL — často ho čakajú v analytických a backendových pozíciách. So strážcom si sa už zoznámil. No skôr než otvoríme súpis našej snímky, QUERY ťa vedie k susednej sekcii: registru iných archívov starej Zeme — aby si pochopil, prečo prežil celý práve ten náš.
Interview question
Otázka z pohovoru: čím sa líši databáza od ? Prečo by aplikácia nemala ukladať dáta len do súborov?
Silná odpoveď: databáza sú organizované dáta, DBMS je program, ktorý ich spravuje (PostgreSQL, MySQL, ClickHouse). Súbory neumožňujú súbežný prístup (paralelné zápisy si navzájom prepisujú zmeny), obnovu po havárii (DBMS vedie žurnál a dohrá nedokončené zmeny), granulárne práva ani kontroly integrity. A hlavne — DBMS odpovedá na deklaratívne SQL dotazy, kým súbor by si musel rozoberať vlastným kódom.