Andmebaas ja DBMS: kes mille eest vastutab
What you'll learn
- eristama andmebaasi (korrastatud hoidla) -ist — programmist, mis täidab SQL-päringuid ja haldab andmeid
- selgitama päringu teekonda „SQL → DBMS → tulemus“ ja seda, miks Exceli failid ei pea vastu tuhandetele samaaegsetele kasutajatele
- loetlema, mida DBMS annab lisaks „lihtsalt failidele“: tehingud, taastelogi (), ligipääsuõigused (
GRANT), terviklikkuse kontrollid
1. peatükk — „Arhiivi kaart“
„Kotomarketi“ tõmmis pole enam signaal surnud sektorist — see lebab Vault-9 karantiiniosakonnas ja selle väljavõtte viimase rea all on ikka seesama allkiri: „K.“. Hommikul süttib su holopaneelil uus kanne: „Luba: arhiivi inventuur. Väljastas: moodul S.Q.L.“ Hoidla uks libiseb kõrvale; selle taga sumisevad merevaigukollases valguses ühtlaselt serveririiulid.
QUERY: Enne kui hakkad lugema kellegi teise mälu, saa aru, kuidas see on üles ehitatud. Alustame kõige tähtsamast: mis on siin hoidla ja kes on hoidja.
Andmebaas ja DBMS
Andmebaas (AB) on korrastatud hoidla. „Kotomarketi“ tõmmises on ostjad, kaubad, tellimused ja sündmused: mitte pillatuna failidesse, vaid arusaadavas struktuuris — seepärast saab neid lugeda isegi sada kuuskümmend aastat hiljem.
Kuid hoidla ise küsimustele ei vasta. Vaja on programmi, mis oskab luua tabeleid, kirja panna uusi tellimusi, lugeda andmeid ja jälgida, et seosed ei katkeks. See on (andmebaasi haldussüsteem). Näited: PostgreSQL, MySQL, ClickHouse. Meie tõmmis on PostgreSQL-i andmebaas ja see räägib sedasama SQL-i nagu poe eluajal.
Sa kirjutad päringu SQL-is → saadad selle DBMS-ile → DBMS võtab välja vajalikud andmed ja tagastab tulemuse. Excel on hea isikliku tabeli jaoks, aga mitte poe jaoks, kus tuhanded kasutajad vaatavad korraga kaupu, vormistavad tellimusi ja jätavad süsteemi sündmusi.

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.
Mida DBMS oskab sellist, mida „lihtsalt failid“ ei suuda
Võib tunduda, et pood saaks hakkama ka ilma -ita: kirjutaks tellimused CSV-sse või Excelisse. Isikliku märkmiku mastaabis nii tehaksegi — kuni tulevad ülesanded, mille jaoks DBMS üldse välja mõeldi.
- Samaaegne ligipääs. Elavas „Kotomarketis“ vormistasid ostjad tellimusi üheaegselt. Kaks protsessi, mis kirjutavad ühte faili, kustutavad teineteise muudatused üle; DBMS täidab muudatusi tehingutena ja lahutab paralleelsed operatsioonid ise. PostgreSQL teeb seda mehhanismi kaudu: lugejad ei blokeeri kirjutajaid ega vastupidi.
- Taastumine pärast tõrget. Toide vilkus keset kirjutamist — fail läks katki ja pole teada, kumb pool tellimusest jõudis salvestuda. DBMS fikseerib muudatuse esmalt logis (PostgreSQL-is , write-ahead log) ja pärast tõrget mängib selle lõpuni: tellimus on kas tervikuna kirja pandud või pole üldse kirja pandud.
- Ligipääsuõigused. Fail on avatud kas täielikult või mitte kuidagi. DBMS-is on õigused granuleeritud — kuni üksiku tabelini välja:
-- Analüütikule — ainult tellimuste lugemine, ilma õiguseta neid muuta
GRANT SELECT ON orders TO analyst;
- Terviklikkus. DBMS ei võta vastu tellimust, mille hind on tekst, ega viidet olematule ostjale: veergude tüüpe ja piiranguid kontrollitakse igal kirjutamisel. Failil on ükskõik, mis tema sees on.
- Deklaratiivsed küsimused. „Näita tellimusi, mis kallimad kui 5000“ — üks rida SQL-i. Failiga teeb sama töö programm, mille keegi peab kirjutama ja mitte eksima.
on töökas vahendaja sinu ja andmete vahel: võtab vastu SQL-päringuid, täidab need ega lase andmebaasil kaoseks muutuda. Selles kursuses õpime PostgreSQL-i peal — seda oodatakse sageli analüütika- ja backend-vakantsides. Hoidjaga oled nüüd tuttav. Kuid enne kui avada meie tõmmise inventuur, viib QUERY su naabersektsiooni: vana Maa teiste arhiivide registrini — et mõistaksid, miks just meie oma jäi tervikuna alles.
Interview question
Küsimus vestlusel: mille poolest erineb andmebaas -ist? Miks ei peaks rakendus hoidma andmeid lihtsalt failides?
Tugev vastus: andmebaas on korrastatud andmed, DBMS on programm, mis neid haldab (PostgreSQL, MySQL, ClickHouse). Failid ei anna samaaegset ligipääsu (paralleelsed kirjutamised kustutavad teineteist üle), taastumist pärast tõrget (DBMS peab logi ja mängib lõpetamata muudatused lõpuni), granuleeritud õigusi ega terviklikkuse kontrolle. Ja kõige tähtsam — DBMS vastab deklaratiivsetele SQL-päringutele, faili tuleks aga lahti võtta omaenda koodiga.