Baza i DBMS: tko je za što zadužen
What you'll learn
- razlikovati bazu podataka (organizirano spremište) od -a — programa koji izvršava SQL upite i upravlja podacima
- objasniti put upita „SQL → DBMS → rezultat” i zašto Excel datoteke ne podnose tisuće istodobnih korisnika
- nabrojati što ti DBMS daje povrh „običnih datoteka”: transakcije, dnevnik za oporavak (), prava pristupa (
GRANT), provjere cjelovitosti
1. poglavlje — „Karta arhiva”
Snimka Kotomarketa više nije signal iz mrtvog sektora — leži u karantenskom odjeljku Vault-9, a ispod posljednjeg retka njezina ispisa stoji onaj isti potpis: „K.”. Jutros ti na holoploči zasvijetli novi zapis: „Pristup odobren: popis arhiva. Izdao: modul S.Q.L.” Vrata spremišta odmiču u stranu; iza njih, u jantarnom svjetlu, ravnomjerno bruje poslužiteljski ormari.
QUERY: Prije nego što pročitaš tuđe pamćenje, shvati kako je ustrojeno. Krenimo od onog najvažnijeg: što je ovdje spremište, a tko čuvar.
Baza podataka i DBMS
Baza podataka (BP) organizirano je spremište. U snimci Kotomarketa leže kupci, proizvodi, narudžbe i događaji: ne razasuti po datotekama, nego u jasnoj strukturi — zato ih je moguće čitati i nakon sto šezdeset godina.
No samo spremište ne odgovara na pitanja. Treba ti program koji zna stvarati tablice, zapisivati nove narudžbe, čitati podatke i paziti da se veze ne pokvare. To je (sustav za upravljanje bazama podataka). Primjeri: PostgreSQL, MySQL, ClickHouse. Naša je snimka PostgreSQL baza i govori isti onaj SQL koji je govorila i dok je trgovina bila živa.
Ti napišeš upit u SQL-u → pošalješ ga DBMS-u → DBMS dohvati tražene podatke i vrati rezultat. Excel je dobar za osobnu tablicu, ali ne i za trgovinu u kojoj tisuće korisnika istodobno razgledaju proizvode, oblikuju narudžbe i ostavljaju događaje u sustavu.

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.
Što DBMS zna, a „obične datoteke” ne mogu
Čini se da bi trgovina mogla živjeti i bez -a: zapisivati narudžbe u CSV ili Excel. Na razini osobne bilježnice tako se i radi — sve dok ne stignu zadaci zbog kojih je DBMS uopće smišljen.
- Istodobni pristup. U živom Kotomarketu kupci su oblikovali narudžbe istodobno. Dva procesa koja pišu u istu datoteku brišu jedan drugome izmjene; DBMS izvršava izmjene kao transakcije i sam razmrsi usporedne operacije. PostgreSQL to radi mehanizmom : čitatelji ne blokiraju pisce, ni obratno.
- Oporavak nakon pada. Napajanje je trepnulo usred zapisivanja — datoteka se pokvarila i ne zna se koja se polovica narudžbe stigla spremiti. DBMS najprije zabilježi izmjenu u dnevnik (u PostgreSQL-u — , write-ahead log) i nakon pada je doigra: narudžba je ili zapisana u cijelosti ili nije zapisana uopće.
- Prava pristupa. Datoteka je otvorena ili u cijelosti ili nikako. U DBMS-u su prava granularna — sve do pojedine tablice:
-- Analitičaru — samo čitanje narudžbi, bez prava na izmjenu
GRANT SELECT ON orders TO analyst;
- Cjelovitost. DBMS neće primiti narudžbu s cijenom kao tekstom ili s referencom na nepostojećeg kupca: tipovi stupaca i ograničenja provjeravaju se pri svakom zapisivanju. Datoteci je svejedno što u njoj leži.
- Deklarativna pitanja. „Pokaži narudžbe skuplje od 5000” — jedan redak SQL-a. S datotekom isti posao obavlja program koji netko mora napisati i pritom ne pogriješiti.
je radni posrednik između tebe i podataka: prima SQL upite, izvršava ih i ne da bazi da se pretvori u kaos. U tečaju učimo na PostgreSQL-u — njega često očekuju na analitičkim i backend natječajima. S čuvarom si se sada upoznao. No prije nego što otvori popis naše snimke, QUERY te vodi do susjedne sekcije: registra drugih arhiva stare Zemlje — da shvatiš zašto je baš naš preživio u cijelosti.
Interview question
Pitanje s razgovora za posao: po čemu se baza podataka razlikuje od -a? Zašto aplikacija ne bi pohranjivala podatke jednostavno u datotekama?
Snažan odgovor: baza podataka su organizirani podaci, DBMS je program koji njima upravlja (PostgreSQL, MySQL, ClickHouse). Datoteke ne nude istodobni pristup (usporedna zapisivanja brišu jedno drugo), oporavak nakon pada (DBMS vodi dnevnik i doigra nedovršene izmjene), granularna prava ni provjere cjelovitosti. I najvažnije — DBMS odgovara na deklarativne SQL upite, a datoteku bi trebalo raščlanjivati vlastitim kodom.