Capitol gratuit

Introducere în Baze de Date

O bază de date este o colecție organizată de date stocate și accesate electronic. Bazele de date sunt fundamentul oricărei aplicații web moderne - de la ma...

Ce este o bază de date?

O bază de date este o colecție organizată de date stocate și accesate electronic. Bazele de date sunt fundamentul oricărei aplicații web moderne - de la magazinele online la rețelele sociale, de la aplicații bancare la sisteme de management al conținutului.

Imaginați-vă un dulap cu sertare etichetate. Fiecare sertar conține dosare organizate. Baza de date funcționează la fel - dar digital, cu capacitatea de a căuta și procesa milioane de informații în milisecunde.

Tipuri de baze de date

Tip Model date Exemple Utilizare ideală
Relaționale (SQL) Tabele cu rânduri și coloane MySQL, PostgreSQL, MariaDB, SQLite Date structurate, relații complexe, tranzacții
Document (NoSQL) Documente JSON/BSON MongoDB, CouchDB, Firestore Date flexibile, prototipare rapidă, CMS
Key-Value Perechi cheie-valoare Redis, Memcached, DynamoDB Cache, sesiuni, date simple și rapide
Graph Noduri și muchii Neo4j, ArangoDB, Amazon Neptune Rețele sociale, recomandări, fraud detection
Column-family Coloane grupate Cassandra, HBase, ScyllaDB Big data, time series, analize la scară
Search Engine Documente indexate Elasticsearch, Algolia, MeiliSearch Căutare full-text, loguri, analiză text

Ce este MySQL?

MySQL este cel mai popular sistem de gestiune a bazelor de date relaționale (RDBMS) open-source din lume. Creat în 1995 de compania suedeză MySQL AB, acum este deținut de Oracle Corporation.

MySQL este folosit de cele mai mari companii din lume: Facebook (Meta), YouTube, Netflix, Twitter (X), Uber, Airbnb, Booking.com. WordPress, care alimentează peste 40% din web, folosește MySQL ca bază de date.

Avantajele MySQL

  • Open Source - gratuit pentru uz comercial (licența GPL)
  • Performanță - extrem de rapid pentru operații de citire
  • Maturitate - peste 25 de ani de dezvoltare și comunitate
  • Compatibilitate - funcționează pe toate platformele (Windows, Linux, macOS)
  • Ecosistem - suportat de toate limbajele de programare și framework-urile
  • Scalabilitate - de la proiecte mici la miliarde de înregistrări
  • Replicare - master-slave, master-master, Group Replication

MySQL vs MariaDB vs PostgreSQL

Caracteristică MySQL MariaDB PostgreSQL
Proprietar Oracle MariaDB Foundation Comunitate
Licență GPL + Comercial GPL (pure open-source) PostgreSQL License
Performanță citire Excelentă Excelentă Foarte bună
Performanță scriere Foarte bună Foarte bună Excelentă
JSON support Bun Bun Excelent (JSONB)
Complexitate query Bună Bună Foarte avansată
Popularitate web Nr. 1 Nr. 3 Nr. 2

Terminologie esențială

  • Bază de date (Database) - container pentru tabele, views, proceduri
  • Tabel (Table) - structură cu rânduri și coloane, similar unui spreadsheet
  • Rând (Row/Record) - o înregistrare completă (un client, un produs)
  • Coloană (Column/Field) - un atribut al datelor (nume, email, preț)
  • Cheie primară (Primary Key - PK) - identificator unic per rând
  • Cheie străină (Foreign Key - FK) - referință către o altă tabelă
  • Index - structură care accelerează căutarea (ca un index de carte)
  • SQL - Structured Query Language - limbajul de interogare
  • Schema - structura completă a bazei de date (tabele, relații, constrângeri)

Categorii de comenzi SQL

Categorie Comenzi Scop Exemplu
DDL (Data Definition) CREATE, ALTER, DROP, TRUNCATE Definirea structurii CREATE TABLE produse (...)
DML (Data Manipulation) INSERT, SELECT, UPDATE, DELETE Manipularea datelor SELECT * FROM produse
DCL (Data Control) GRANT, REVOKE Controlul accesului GRANT SELECT ON db.* TO user
TCL (Transaction Control) COMMIT, ROLLBACK, SAVEPOINT Gestionarea tranzacțiilor START TRANSACTION; ... COMMIT;

Modelul relațional

Bazele de date relaționale organizează datele în tabele interconectate prin relații. Aceste relații sunt de trei tipuri:

  • One-to-One (1:1) - un utilizator are un singur profil
  • One-to-Many (1:N) - un client poate avea mai multe comenzi
  • Many-to-Many (M:N) - un produs poate fi în mai multe comenzi, o comandă poate avea mai multe produse (necesită tabel de legătură)
Sfat: Înainte de a scrie cod SQL, schițați structura bazei de date pe hârtie sau folosiți un instrument ERD (Entity-Relationship Diagram) precum MySQL Workbench, dbdiagram.io sau draw.io.

Continuați cu restul cursului

Acesta este capitolul 1 din cele 14 ale cursului, cu 5 lecții din 67. Cumpărați cursul și parcurgeți tot conținutul în cont, cu progres salvat, test final și certificat.

Cumpărați cursul la 110 €