InfoBook.ro ← Harta anului
Modul 02 · Relații & diagrama ERD
Modul 02 · Conținut 1.1 · modelul conceptual

Entitățile se leagă

Un elev studiază la o școală, un client plasează comenzi, un autor scrie cărți. Aceste legături sunt relațiile. Ca să le desenezi corect, trebuie să răspunzi la două întrebări: câte (cardinalitate) și e obligatoriu? (opționalitate).

🎯 Obiectiv 1Citești și desenezi cardinalitatea: 1:1, 1:M, M:M.
🎯 Obiectiv 2Distingi participarea obligatorie de cea opțională.
🎯 Obiectiv 3Rezolvi o relație M:M cu o entitate de legătură.
1

Ce e o relație

O relație e o legătură cu sens între două entități, exprimată de obicei printr-un verb: ELEV studiază la ȘCOALĂ, CLIENT plasează COMANDĂ.

ELEV
🔑 id_elev · nume
studiază la
ȘCOALĂ
🔑 id_scoala · denumire
Legătura cu ce știi: în POO (XI·M12) un obiect putea „conține" o referință la alt obiect. Aici e la fel — doar că legătura se face prin chei: tabela din partea „mulți" ține id-ul celei din partea „unu" (o vezi la modelul fizic, Modul 04).
2

Cardinalitatea — 1:1, 1:M, M:M

Cardinalitatea spune CÂTE instanțe dintr-o parte se pot lega de o instanță din cealaltă. Apasă și vezi exemplul, notația și cum se implementează.

A
1
1
B
3

Opționalitatea — e obligatorie participarea?

Pe lângă „câte", întrebi „TREBUIE?". O participare e obligatorie dacă fiecare instanță trebuie să aibă legătura, opțională dacă poate exista și fără.

Obligatorie

Fiecare COMANDĂ trebuie să aparțină unui CLIENT — o comandă fără client n-are sens.

COMANDĂ ──● CLIENT — se citește „orice comandă are obligatoriu un client".

Opțională

Un CLIENT poate exista fără să fi plasat vreo COMANDĂ (tocmai s-a înregistrat).

CLIENT ○── COMANDĂ — se citește „un client poate avea zero sau mai multe comenzi".
Împreună, cardinalitate + opționalitate dau o propoziție completă: „un client are ZERO sau MAI MULTE comenzi (opțional, M), iar o comandă are EXACT UN client (obligatoriu, 1)". Asta e o relație 1:M cu participare obligatorie pe partea comenzii.
4

Relația M:M nu se poate direct — entitatea de legătură

Un ELEV se înscrie la mai multe CURSURI, iar un curs are mai mulți elevi. O bază de date relațională nu poate lega direct M:M — o „spargem" în două relații 1:M printr-o entitate nouă, de legătură.

✗ direct — imposibil

ELEV
🔑 id_elev
M
M
CURS
🔑 id_curs

✓ rezolvat — cu entitatea de legătură ÎNSCRIERE

ELEV
🔑 id_elev
1
M
ÎNSCRIERE
🔑 id_elev + id_curs
data, nota
M
1
CURS
🔑 id_curs
Bonus: entitatea de legătură poate avea atributele ei proprii — data înscrierii, nota finală. Cheia ei e de obicei compusă (id_elev + id_curs) — exact identificatorul compus din Modulul 01.
5

Relații speciale — de recunoscut

Câteva tipare care apar des în programă.

🔁 Recursivă (unară)

O entitate se leagă de ea însăși: un ANGAJAT are ca șef un alt ANGAJAT. Cheia externă pointează spre aceeași tabelă.

🌳 Ierarhică

Caz de relație recursivă „părinte-copil": o CATEGORIE are subcategorii. Formează un arbore (IX–XI).

⛔ Barată (exclusivă)

O instanță se leagă cu UNA din mai multe entități, dar nu cu ambele: o PLATĂ e făcută prin card SAU prin transfer, nu ambele.

🕰 Istoricul datelor

Când vrei să păstrezi valorile în timp (prețul unui produs de-a lungul lunilor), adaugi o entitate cu data — nu suprascrii.

6

Verificare rapidă

Șase întrebări despre relații, cardinalitate și opționalitate.

7

Fișa de sinteză

Relațiile, condensat.

Relația = legătură cu sens între două entități (un verb).
Cardinalitate: 1:1, 1:M, M:M — CÂTE instanțe se pot lega.
Opționalitate: participare obligatorie (●) vs opțională (○).
1:M se implementează cu cheie externă pe partea „M".
M:M se rezolvă cu o entitate de legătură (cheie compusă), care poate avea atribute proprii.
Speciale: recursivă, ierarhică (arbore), barată (exclusivă), istoric (date în timp).
← anteriorModul 01 · Entitate-relație urmează →Modul 03 · Forme normale