BD și DBMS: cine se ocupă de ce
What you'll learn
- să deosebești o bază de date (un depozit organizat) de un — programul care execută interogări SQL și administrează datele
- să explici traseul unei interogări „SQL → DBMS → rezultat” și de ce câteva fișiere Excel nu fac față miilor de utilizatori simultani
- să enumeri ce îți oferă un DBMS dincolo de „simple fișiere”: tranzacții, jurnal de recuperare (), drepturi de acces (
GRANT), verificări de integritate
Capitolul 1 — „Harta arhivei”
Copia de arhivă „Kotomarket” nu mai e un semnal venit dintr-un sector mort: se află într-un compartiment de carantină de pe Vault-9, iar la finalul -ului apare aceeași semnătură: „K.”. Dimineața, pe holopanoul tău se aprinde o înregistrare nouă: „Acces aprobat: inventarul arhivei. Emis de: modulul S.Q.L.” Ușa depozitului glisează într-o parte; dincolo de ea, sub o lumină chihlimbarie, dulapurile de servere zumzăie încet.
QUERY: Înainte să citești memoria altcuiva, înțelege cum e construită. Începem cu lucrurile de bază: ce este depozitul și cine este custodele.
Baza de date și DBMS-ul
O bază de date (BD) este un depozit organizat. În copia „Kotomarket” se află cumpărători, produse, comenzi și evenimente: nu împrăștiate prin fișiere, ci puse într-o structură clară. De aceea pot fi citite chiar și după o sută șaizeci de ani.
Dar depozitul, singur, nu răspunde la întrebări. Ai nevoie de un program care știe să creeze tabele, să înregistreze comenzi noi, să citească datele și să aibă grijă ca legăturile să nu se rupă. Acesta este un (sistem de gestiune a bazelor de date). Exemple: PostgreSQL, MySQL, ClickHouse. Copia noastră este o bază PostgreSQL și vorbește același SQL pe care îl vorbea pe vremea când magazinul era încă viu.
Tu scrii o interogare în SQL → o trimiți către DBMS → DBMS-ul extrage datele cerute și îți returnează rezultatul. Excel e potrivit pentru un tabel personal, dar nu pentru un magazin în care mii de utilizatori se uită la produse, plasează comenzi și lasă evenimente în sistem în același timp.

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.
Ce poate face un DBMS, iar „simplele fișiere” nu pot
La prima vedere, magazinul ar putea funcționa și fără : scriem comenzile într-un CSV sau în Excel. Pentru un tabel personal chiar merge așa, până apar problemele pentru care a fost inventat DBMS-ul.
- Acces concurent. În „Kotomarket”-ul viu, cumpărătorii plasau comenzi în același timp. Două procese care scriu în același fișier își pot șterge reciproc modificările; un DBMS execută modificările ca tranzacții și separă singur operațiile paralele. PostgreSQL face asta prin mecanismul : cei care citesc nu îi blochează pe cei care scriu, și invers.
- Recuperare după avarie. Dacă alimentarea cade la jumătatea unei scrieri, fișierul se poate corupe și nu mai știi ce parte din comandă a apucat să se salveze. DBMS-ul scrie mai întâi modificarea într-un jurnal (în PostgreSQL — , write-ahead log) și o reia după avarie: comanda fie este salvată întreagă, fie nu este salvată deloc.
- Drepturi de acces. Un fișier e deschis fie cu totul, fie deloc. Într-un DBMS, drepturile sunt granulare — până la nivelul unui singur tabel:
-- Analistului — doar citirea comenzilor, fără dreptul de a le modifica
GRANT SELECT ON orders TO analyst;
- Integritate. Un DBMS nu va accepta o comandă cu un preț trecut ca text sau cu o referință către un cumpărător inexistent: tipurile coloanelor și restricțiile sunt verificate la fiecare scriere. Fișierului nu-i pasă ce conține.
- Întrebări declarative. „Arată-mi comenzile mai scumpe de 5000” — o singură linie de SQL. Cu un fișier, aceeași treabă trebuie făcută de un program pe care cineva trebuie să-l scrie și să-l scrie corect.
-ul este intermediarul de lucru dintre tine și date: primește interogări SQL, le execută și nu lasă baza să alunece în haos. În curs învățăm pe PostgreSQL — des întâlnit în roluri de analiză și backend. Pe custode îl cunoști deja. Dar, înainte să deschizi inventarul copiei noastre de arhivă, QUERY te conduce spre secțiunea vecină: registrul celorlalte arhive ale vechiului Pământ. Așa vei înțelege de ce tocmai a noastră a supraviețuit întreagă.
Interview question
Întrebare de interviu: prin ce se deosebește o bază de date de un ? De ce să nu-și păstreze o aplicație datele pur și simplu în fișiere?
Răspuns puternic: baza de date înseamnă date organizate, iar DBMS-ul este programul care le gestionează (PostgreSQL, MySQL, ClickHouse). Fișierele nu oferă acces concurent (scrierile paralele se pot suprascrie), recuperare după avarie (DBMS-ul ține un jurnal și reia modificările neterminate), drepturi granulare sau verificări de integritate. Și, cel mai important, DBMS-ul răspunde la interogări SQL declarative, în timp ce un fișier ar trebui parcurs cu cod scris de tine.