Sari la conținut
EduCamp

Tematică științifică · 6.3

Modelul conceptual

Modelul conceptual al unei baze de date: entități și instanțe, atribute, identificator unic, relații între entități cu opționalitate și cardinalitate, rezolvarea relațiilor mai mulți la mai mulți, diagrama entități-relații și normalizarea datelor până la a treia formă normală.

Prima etapă în proiectarea unei baze de date este analiza datelor: ce date trebuie memorate, cum se grupează ele și ce legături există între grupuri. Rezultatul acestei analize este modelul conceptual al bazei de date, o descriere a datelor care nu depinde de SGBD-ul în care va fi realizată baza de date.

Pentru reprezentarea modelului conceptual se folosește diagrama entități-relații (ERD, Entity Relationship Diagram), căreia i se mai spune harta relațiilor. Diagrama se poate citi și de beneficiarul bazei de date, fără cunoștințe de informatică, ceea ce permite verificarea modelului înainte de construirea bazei de date.

Exemplele din acest subcapitol și din următoarele privesc baza de date a bibliotecii unei școli. Biblioteca are cititori, elevi și profesori, care împrumută cărți. O carte poate avea mai mulți autori și se află în bibliotecă în mai multe exemplare, fiecare cu numărul lui de inventar. Un împrumut privește un singur exemplar și un singur cititor.

Entități și instanțe

O entitate desemnează o categorie de obiecte, persoane, locuri sau evenimente pentru care baza de date păstrează date, fiindcă sunt importante pentru activitatea modelată. Ea poate corespunde unui lucru concret, cum este o carte, unei activități, cum este un împrumut, sau unei noțiuni abstracte.

O entitate este o clasă de obiecte. Un obiect anume din această clasă se numește instanță a entității. Entitatea CARTE descrie toate cărțile bibliotecii, iar romanul Ion de Liviu Rebreanu este o instanță a ei.

Instanțele unei entități se pot scrie ca rânduri ale unui tabel. În tabelul alăturat:

  • entitatea este CARTE, numele tabelului;
  • o instanță este un rând al tabelului, de exemplu cartea Ion, apărută la editura Litera în 2019, scrisă îngroșat.

CARTE

isbntitluedituraan_aparitie
…001IonLitera2019
…002Enigma OtilieiArt2020
…003MoromețiiLitera2017

În diagramă, fiecare entitate se desenează ca un dreptunghi cu colțuri rotunjite. Sus, în dreptunghi, se scrie numele entității: un substantiv la singular, cu majuscule.

Entitățile se găsesc de obicei printre substantivele din descrierea activității. Un substantiv care nu desemnează o categorie de obiecte cu date proprii, ci o caracteristică a unui obiect, nu este entitate, ci atribut: în descrierea bibliotecii, titlul este o caracteristică a cărții.

Atribute

Un atribut este o caracteristică a unei entități, care servește la identificarea, descrierea, clasificarea sau exprimarea stării instanțelor ei. Atributele entității CARTE sunt, de exemplu, titlul, editura și anul apariției. Atributele se trec în dreptunghiul entității, sub nume, scrise cu litere mici; fiecare atribut este un substantiv la singular.

În tabelul entității CITITOR:

  • atributele sunt coloanele: cod_cititor, nume, prenume și telefon;
  • valoarea unui atribut pentru o instanță se află la intersecția rândului cu coloana: nume are, pentru cititorul 3, valoarea Marin;
  • nume este obligatoriu (*): are valoare la fiecare cititor;
  • telefon este opțional (o): la cititorii 2 și 4 nu are valoare.

CITITOR

# cod_cititor* nume* prenumeo telefon
1PopescuAna0741000111
2IonescuDan
3MarinIoana0722333444
4DobreMihai

Atributele se deosebesc după mai multe criterii:

CriteriulTipul de atributSemnificațiaExemplu
obligativitateaobligatoriu, notat *fiecare instanță are o valoare pentru eltitlul unei cărți
opțional, notat ounele instanțe pot să nu aibă valoaretelefonul unui cititor
structuraatomicconține o singură informație, care nu se mai descompuneanul apariției
compusse poate descompune în părți cu semnificație proprieadresa, compusă din localitate, stradă și număr
numărul de valoricu o singură valoarefiecare instanță are o singură valoarecodul numeric personal
cu mai multe valorio instanță poate avea mai multe valorinumerele de telefon ale unei persoane
frecvența modificăriivolatilvaloarea se modifică desvârsta
nevolatilvaloarea se modifică rar sau delocdata nașterii
proveniențaderivatvaloarea se calculează din alte atributevârsta, calculată din data nașterii

Atributele nevolatile sunt de preferat celor volatile: în loc de vârstă se memorează data nașterii, din care vârsta se calculează oricând.

Identificatorul unic

Identificatorul unic (UID, unique identifier) al unei entități este atributul sau combinația de atribute a cărei valoare deosebește fiecare instanță de toate celelalte. În diagramă, atributele care formează identificatorul unic sunt precedate de semnul #. Ele sunt întotdeauna obligatorii, iar semnul # înlocuiește asteriscul.

Identificatorul unic poate fi:

  • simplu, format dintr-un singur atribut: numărul de inventar al unui exemplar;
  • compus, format din mai multe atribute: o carte se poate identifica prin titlu, autor și anul apariției, fiindcă același titlu al aceluiași autor poate apărea în ediții diferite.

Un identificator unic trebuie să aibă valori distincte pentru instanțe diferite, să nu lipsească la nicio instanță și să nu se modifice în timp. Când atributele descriptive nu îndeplinesc aceste condiții, se introduce un atribut artificial, un cod, cum este cod_cititor.

În tabelul alăturat, cititorii 1 și 3 au același nume și același prenume. Perechea formată din nume și prenume nu deosebește aceste două instanțe, deci nu poate fi identificator unic.

Valorile atributului cod_cititor sunt distincte, există la fiecare cititor și nu se schimbă după înscriere. Identificatorul unic al entității CITITOR este cod_cititor, notat #.

CITITOR

# cod_cititor* nume* prenume
1PopescuAna
2IonescuDan
3PopescuAna

Relații între entități

O relație este o legătură între două entități, care are semnificație pentru activitatea modelată. Orice relație este bidirecțională și se citește în ambele sensuri. O relație poate lega și o entitate cu ea însăși: un angajat are ca șef un alt angajat.

O relație este caracterizată de:

  • numele relației — un verb, scris deasupra liniei care o reprezintă;
  • opționalitatea — arată dacă o instanță a entității trebuie sau doar poate să fie în relație cu instanțe ale celeilalte entități;
  • cardinalitatea (gradul relației) — arată cu câte instanțe ale celeilalte entități poate fi în relație o instanță: una și numai una sau una sau mai multe.

Relația dintre CITITOR și ÎMPRUMUT se citește în cele două sensuri astfel:

  • Fiecare CITITOR poate face unul sau mai multe ÎMPRUMUTURI. Un cititor înscris care nu a împrumutat încă nimic este permis, deci relația este opțională dinspre CITITOR.
  • Fiecare ÎMPRUMUT trebuie să fie făcut de un CITITOR și numai unul. Nu există împrumut fără cititor, deci relația este obligatorie dinspre ÎMPRUMUT.

CITITOR

# cod_cititor* nume* prenume
1PopescuAna
2IonescuDan
3MarinIoana
4DobreMihai

ÎMPRUMUT

# cod_imprumut* data_imprumut
12026-03-02
22026-03-05
32026-03-09
42026-03-10
52026-04-01
62026-04-03

Relația „face”

CITITORÎMPRUMUT
Popescu Ana2, 6
Ionescu Dan1, 3, 5
Marin Ioana4
Dobre Mihai

În tabelul relației „face”:

  • entitățile legate sunt CITITOR și ÎMPRUMUT, iar relația este face;
  • Dobre Mihai nu are niciun împrumut, deci dinspre CITITOR relația este opțională (poate);
  • Ionescu Dan are trei împrumuturi, deci dinspre CITITOR cardinalitatea este unul sau mai multe;
  • fiecare împrumut apare o singură dată în coloana ÎMPRUMUT, deci dinspre ÎMPRUMUT relația este obligatorie (trebuie), cu cardinalitatea unul și numai unul.

Reprezentarea relațiilor

În diagrama entități-relații, relația este o linie între cele două entități, formată din două jumătăți, câte una lângă fiecare entitate.

CaracteristicaValoareaReprezentarea
opționalitatea, citită dinspre o entitateobligatorie (trebuie)jumătatea de lângă acea entitate este linie continuă
opțională (poate)jumătatea de lângă acea entitate este linie întreruptă
cardinalitatea, citită spre o entitateuna și numai unalinia se termină simplu la acea entitate
una sau mai multelinia se termină la acea entitate cu trei ramificații, numite picior de cioară

Tipurile de relații

După cardinalitatea celor două sensuri, relațiile sunt:

  • unu la unu (1:1) — fiecare instanță a uneia dintre entități se leagă de cel mult o instanță a celeilalte: o persoană și pașaportul ei; relațiile de acest tip sunt rare, iar uneori una dintre entități devine atribut al celeilalte;
  • unu la mai mulți (1:n) — unei instanțe a primei entități îi pot corespunde mai multe instanțe ale celei de-a doua, iar fiecărei instanțe a celei de-a doua cel mult una a primei: un cititor și împrumuturile lui; este tipul cel mai frecvent;
  • mai mulți la mai mulți (m:n) — fiecărei instanțe a oricărei entități îi pot corespunde mai multe instanțe ale celeilalte: o carte poate avea mai mulți autori, iar un autor poate scrie mai multe cărți.

Rezolvarea relațiilor mai mulți la mai mulți

O relație mai mulți la mai mulți poate apărea la începutul proiectării, dar nu rămâne în modelul final. Datele care privesc perechea formată dintr-o carte și un autor, de exemplu ordinea în care apare autorul pe copertă, nu au loc nici în CARTE, fiindcă o carte are mai mulți autori, nici în AUTOR, fiindcă un autor are mai multe cărți.

Relația se înlocuiește cu o entitate de intersecție, legată de fiecare dintre cele două entități printr-o relație unu la mai mulți:

  1. Se introduce entitatea de intersecție, în exemplu CARTE_AUTOR.
  2. Se creează cele două relații noi. Ambele sunt de tipul unu la mai mulți, cu partea mai mulți spre entitatea de intersecție. Dinspre entitatea de intersecție, relațiile sunt obligatorii, iar dinspre entitățile inițiale păstrează opționalitatea relației inițiale.
  3. Se adaugă entității de intersecție atributele care privesc perechea, în exemplu ordine.
  4. Se stabilește identificatorul unic al noii entități. Când nu există un atribut propriu potrivit, el se compune din identificatorii celor două entități legate, la care se pot adăuga atribute ale entității de intersecție.

Dacă o entitate își formează identificatorul unic și din identificatorul entității de care este legată, relația dintre ele se numește relație barată și se desenează cu o bară scurtă peste linie, lângă entitatea care preia identificatorul.

Diagrama entități-relații a bibliotecii

Diagrama entități-relații a bibliotecii școlii, cu entitățile CITITOR, ÎMPRUMUT, EXEMPLAR, CARTE, CARTE_AUTOR și AUTOR și relațiile dintre ele CITITOR # cod_cititor * nume * prenume o telefon ÎMPRUMUT # cod_imprumut * data_imprumut * data_scadenta o data_restituire EXEMPLAR # nr_inventar o observatii AUTOR # cod_autor * nume o tara CARTE_AUTOR * ordine CARTE # isbn * titlu * editura * an_aparitie face privește are are scrie
# identificator unic, * atribut obligatoriu, o atribut opțional. Linia continuă înseamnă „trebuie”, cea întreruptă „poate”, iar piciorul de cioară „unul sau mai mulți”. Bara de pe o relație arată că entitatea de lângă ea preia identificatorul unic al celeilalte.

Diagrama se citește relație cu relație, în ambele sensuri:

RelațiaCitită dinspre prima entitateCitită dinspre a doua entitate
CITITOR – ÎMPRUMUTFiecare CITITOR poate face unul sau mai multe ÎMPRUMUTURI.Fiecare ÎMPRUMUT trebuie să fie făcut de un CITITOR și numai unul.
EXEMPLAR – ÎMPRUMUTFiecare EXEMPLAR poate face obiectul unuia sau mai multor ÎMPRUMUTURI.Fiecare ÎMPRUMUT trebuie să privească un EXEMPLAR și numai unul.
CARTE – EXEMPLARFiecare CARTE trebuie să aibă unul sau mai multe EXEMPLARE.Fiecare EXEMPLAR trebuie să fie al unei CĂRȚI și numai al uneia.
CARTE – CARTE_AUTORFiecare CARTE trebuie să aibă una sau mai multe înregistrări CARTE_AUTOR.Fiecare CARTE_AUTOR trebuie să privească o CARTE și numai una.
AUTOR – CARTE_AUTORFiecare AUTOR trebuie să aibă una sau mai multe înregistrări CARTE_AUTOR.Fiecare CARTE_AUTOR trebuie să privească un AUTOR și numai unul.

Materialul acesta se citește pe educamp.ro și nu se tipărește.

Ce cuprinde subcapitolul

  1. Entități și instanțe
  2. Atribute
  3. Identificatorul unic
  4. Relații între entități
  5. Diagrama entități-relații a bibliotecii
  6. Normalizarea datelor
  7. Restricțiile și regulile modelului
  8. Apariții la examen

Continuă lectura ca și cursant

Cel puțin un subcapitol din fiecare capitol este disponibil gratuit și integral. Pentru a citi toate celelalte subcapitole ale disciplinei, te înscrii la cursul de pregătire.

Prima săptămână este gratuită, fără plată și fără card. Dacă vrei să vezi mai întâi cum este prezentată materia, poți reveni la primul subcapitol al capitolului.

100 RON / lună, pentru o disciplină

Ce cuprinde:

  • Două întâlniri de câte două ore, în fiecare lună
  • Tot suportul de curs publicat până acum la disciplina aleasă
  • Capitole noi în fiecare săptămână, cuprinse în luna plătită, fără costuri suplimentare
  • Material organizat după structura programei de examen
  • Acces de pe orice dispozitiv, folosind același cont
  • Prima săptămână gratuită, fără card și fără reînnoire automată

Începe săptămâna gratuită Sunt cursant — login

Află când publicăm materiale noi

Materia este publicată treptat, capitol cu capitol. Înscrie-te pentru a primi un e-mail atunci când apare un capitol nou de informatică.

Vei primi mesaje numai despre materia selectată și despre cursul de pregătire. Te poți dezabona oricând, dintr-o singură apăsare.

Surse

  • Gremalschi, A., Corlat, S., Braicov, A., „Informatică. Manual pentru clasa a 12-a”, Editura Știința, Chișinău, 2015
  • Huțanu, V. T., Popescu, C., „Manual de informatică pentru clasa a XII-a”, Editura L&S Info-mat, București, 2007
  • Oprescu, D., Bejan Ienulescu, L., „Tehnologia informației și a comunicațiilor. Sisteme de gestiune a bazelor de date. Manual pentru clasa a XI-a”, Editura Niculescu, București, 2006
  • Programa pentru examenul de definitivare în învățământ, disciplina Informatică, cap. 6 „Baze de date”
  • Programa pentru concursul de ocupare a posturilor didactice, disciplina Informatică, cap. 6 „Baze de date”
Actualizat: 13 septembrie 2026