Baza in DBMS: kdo je za kaj odgovoren
What you'll learn
- ločiti podatkovno bazo (urejeno shrambo) od -a — programa, ki izvaja poizvedbe SQL in upravlja podatke
- razložiti pot poizvedbe »SQL → DBMS → rezultat« in zakaj kup datotek v Excelu ne prenese tisočev hkratnih uporabnikov
- našteti, kaj ti DBMS ponuja onkraj »golih datotek«: transakcije, dnevnik za obnovitev (), pravice dostopa (
GRANT), preverjanja celovitosti
1. poglavje — »Zemljevid arhiva«
Posnetek Kotomarketa ni več signal iz mrtvega sektorja — leži v karantenskem predelu postaje Vault-9 in pod zadnjo vrstico njegovega izvoza je še vedno isti podpis: »K.«. Zjutraj na tvojem holopanelu zasveti nov vnos: »Dostop: popis arhiva. Izdal: modul S.Q.L.« Vrata shrambe se odmaknejo vstran; za njimi v jantarni svetlobi enakomerno brnijo strežniške omare.
QUERY: Preden bereš tuj spomin, razumi, kako je zgrajen. Začniva pri bistvu: kaj je tukaj shramba in kdo je hranitelj.
Podatkovna baza in DBMS
Podatkovna baza (baza) je urejena shramba. V posnetku Kotomarketa ležijo kupci, izdelki, naročila in dogodki: ne razsuti po datotekah, ampak v razumljivi strukturi — zato jih je mogoče brati celo sto šestdeset let pozneje.
A shramba sama ne odgovarja na vprašanja. Potreben je program, ki zna ustvarjati tabele, zapisovati nova naročila, brati podatke in skrbeti, da se povezave ne pretrgajo. To je (sistem za upravljanje podatkovnih baz). Primeri: PostgreSQL, MySQL, ClickHouse. Naš posnetek je baza PostgreSQL in govori isti SQL kot za časa življenja trgovine.
Napišeš poizvedbo v SQL → pošlješ jo DBMS-u → DBMS izvleče potrebne podatke in vrne rezultat. Excel je dober za osebno preglednico, ne pa za trgovino, kjer si tisoči uporabnikov hkrati ogledujejo izdelke, oddajajo naročila in v sistemu puščajo dogodke.

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.
Kaj zmore DBMS, česar »gole datoteke« ne
Zdi se, da bi trgovina lahko živela tudi brez -a: naročila bi zapisovala v CSV ali Excel. Na ravni osebnega beležnika tako tudi delajo — dokler ne pridejo naloge, zaradi katerih je bil DBMS sploh izumljen.
- Sočasni dostop. V živem Kotomarketu so kupci oddajali naročila hkrati. Dva procesa, ki pišeta v isto datoteko, prepišeta drug drugemu spremembe; DBMS izvaja spremembe kot transakcije in sam razvozla vzporedne operacije. PostgreSQL to počne prek mehanizma : bralci ne blokirajo pisalcev in obratno.
- Obnovitev po sesutju. Napajanje za hip pade sredi zapisovanja — datoteka se pokvari in ni jasno, katera polovica naročila se je uspela shraniti. DBMS spremembo najprej zabeleži v dnevnik (v PostgreSQL je to , write-ahead log) in jo po sesutju doigra: naročilo je bodisi zapisano v celoti bodisi sploh ni zapisano.
- Pravice dostopa. Datoteka je odprta bodisi v celoti bodisi nikakor. V DBMS-u so pravice granularne — vse do posamezne tabele:
-- Analitiku — samo branje naročil, brez pravice do njihovega spreminjanja
GRANT SELECT ON orders TO analyst;
- Celovitost. DBMS ne bo sprejel naročila s ceno v obliki besedila ali s sklicem na neobstoječega kupca: tipi stolpcev in omejitve se preverjajo ob vsakem zapisu. Datoteki je vseeno, kaj v njej leži.
- Deklarativna vprašanja. »Pokaži naročila, dražja od 5000« — ena vrstica SQL. Pri datoteki isto delo opravi program, ki ga mora nekdo napisati in se pri tem ne zmotiti.
je delovni posrednik med teboj in podatki: sprejema poizvedbe SQL, jih izvaja in ne dovoli, da bi se baza spremenila v kaos. V tem tečaju se učimo na PostgreSQL — pogosto ga pričakujejo na analitičnih in zalednih (backend) delovnih mestih. S hraniteljem si zdaj seznanjen. A preden odpremo popis našega posnetka, te QUERY popelje do sosednjega oddelka: do registra drugih arhivov stare Zemlje — da boš razumel, zakaj je nedotaknjen preživel prav naš.
Interview question
Vprašanje z razgovora: kako se podatkovna baza razlikuje od -a? Zakaj naj aplikacija podatkov ne hrani kar v datotekah?
Močan odgovor: podatkovna baza so urejeni podatki, DBMS pa program, ki jih upravlja (PostgreSQL, MySQL, ClickHouse). Datoteke ne omogočajo sočasnega dostopa (vzporedni zapisi prepišejo drug drugega), obnovitve po sesutju (DBMS vodi dnevnik in doigra nedokončane spremembe), granularnih pravic in preverjanj celovitosti. In kar je najpomembnejše — DBMS odgovarja na deklarativne poizvedbe SQL, datoteko pa bi moral razčleniti z lastno kodo.