InfoBook.ro ← Harta anului
Modul 04 · Model fizic & maparea
Modul 04 · Conținut 1.1 · modelul fizic

Din diagramă în tabele

Diagrama ERD e planul; modelul fizic e clădirea. Traducem entitățile în tabele, atributele în coloane cu tipuri, identificatorii în chei primare și relațiile în chei externe — plus regulile care păstrează datele coerente.

🎯 Obiectiv 1Mapezi entități → tabele, atribute → coloane cu tip de dată.
🎯 Obiectiv 2Traduci identificatorul în cheie primară și relația în cheie externă.
🎯 Obiectiv 3Aplici constrângerile și integritatea de entitate/referențială.
1

Regulile de mapare — de la ERD la tabele

Traducerea e mecanică odată ce ai diagrama. Iată dicționarul concept → fizic.

în ERD (concept)în modelul fizic (tabelă)
entitatetabelă
instanțărând (înregistrare)
atributcoloană (câmp) cu tip de dată
identificatorPRIMARY KEY
relație 1:MFOREIGN KEY în tabela din partea „M"
relație M:Mtabelă de legătură cu două chei externe
Exemplu 1:M — CLASĂ (1) are ELEVI (M): fiecare elev primește o coloană id_clasa care e cheie externă spre CLASE. Așa „știe" un rând din ELEVI cărei clase aparține — ca un JOIN pe cheie (X·M02).
1CREATE TABLE clase (
2 id_clasa INT PRIMARY KEY,
3 denumire VARCHAR(10) NOT NULL
4);
5CREATE TABLE elevi (
6 id_elev INT PRIMARY KEY,
7 nume VARCHAR(50) NOT NULL,
8 id_clasa INT REFERENCES clase(id_clasa) -- cheie externă
9);
2

Tipuri de date — alegi „forma" fiecărei coloane

Tipul spune ce valori încap și cât loc ocupă. Alegerea bună previne erori și economisește spațiu.

tippentru ceexemplu
INTnumere întregi (id-uri, cantități)42
DECIMAL(p,z)numere cu zecimale exacte (bani, medii)DECIMAL(5,2) → 123.45
VARCHAR(n)text de lungime variabilă, max nVARCHAR(50) → "Ana"
DATEdate calendaristice2026-03-12
BOOLEANadevărat / falsTRUE
Capcană de bani: nu ține prețurile în tipuri cu virgulă mobilă (FLOAT) — apar erori de rotunjire. Pentru bani folosești DECIMAL, care e exact.
3

Constrângerile — regulile scrise în structură

O constrângere e o regulă pe care baza de date o impune singură, la fiecare scriere. Nu depinzi de programator să țină minte.

PRIMARY KEY

identifică unic rândul; automat NOT NULL și unic. Integritatea de entitate.

FOREIGN KEY

trimite spre cheia primară a altei tabele; asigură integritatea referențială.

NOT NULL

coloana obligatorie — nu acceptă valoare lipsă.

UNIQUE

valori distincte pe coloană (ex: ISBN, email), fără a fi cheie primară.

CHECK(...)

condiție proprie: CHECK(media >= 1 AND media <= 10).

DEFAULT val

valoare implicită dacă nu se dă una: DEFAULT 0.

Două integrități-cheie: de entitate = cheia primară nu poate fi NULL și nu se repetă (fiecare rând e identificabil); referențială = o cheie externă trebuie să indice un rând care CHIAR există în tabela-părinte.
4

Laborator: integritatea referențială

Încearcă să adaugi un ELEV cu o anumită id_clasa. Baza de date acceptă rândul doar dacă acea clasă chiar există.

CLASE (tabela-părinte)

INSERT INTO elevi (nume, id_clasa)

nume = id_clasa =
alege un id_clasa și apasă INSERT 👆
Ce vezi: un id_clasa care nu există (ex. 9) e RESPINS — integritatea referențială interzice o cheie externă „în gol". La fel, nu poți șterge o clasă cât timp are elevi care o referă (altfel ai lăsa elevii „orfani").
5

Verificare rapidă

Șase întrebări despre modelul fizic.

6

Fișa de sinteză

Modelul fizic, condensat.

Mapare: entitate→tabelă, atribut→coloană, instanță→rând, identificator→PRIMARY KEY.
Relația 1:M → cheie externă (FOREIGN KEY) în tabela din partea „M".
Relația M:M → tabelă de legătură cu două chei externe.
Tipuri: INT, DECIMAL (bani!), VARCHAR(n), DATE, BOOLEAN.
Constrângeri: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE, CHECK, DEFAULT.
Integritate: de entitate (PK ≠ NULL, unică) · referențială (FK indică un rând existent).
← anteriorModul 03 · Forme normale urmează →Modul 05 · SQL — SELECT