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
| isbn | titlu | editura | an_aparitie |
|---|---|---|---|
| …001 | Ion | Litera | 2019 |
| …002 | Enigma Otiliei | Art | 2020 |
| …003 | Moromeții | Litera | 2017 |
Î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șitelefon; - valoarea unui atribut pentru o instanță se află la intersecția rândului cu coloana:
numeare, pentru cititorul 3, valoarea Marin; numeeste obligatoriu (*): are valoare la fiecare cititor;telefoneste opțional (o): la cititorii 2 și 4 nu are valoare.
CITITOR
| # cod_cititor | * nume | * prenume | o telefon |
|---|---|---|---|
| 1 | Popescu | Ana | 0741000111 |
| 2 | Ionescu | Dan | |
| 3 | Marin | Ioana | 0722333444 |
| 4 | Dobre | Mihai |
Atributele se deosebesc după mai multe criterii:
| Criteriul | Tipul de atribut | Semnificația | Exemplu |
|---|---|---|---|
| obligativitatea | obligatoriu, notat * | fiecare instanță are o valoare pentru el | titlul unei cărți |
opțional, notat o | unele instanțe pot să nu aibă valoare | telefonul unui cititor | |
| structura | atomic | conține o singură informație, care nu se mai descompune | anul apariției |
| compus | se poate descompune în părți cu semnificație proprie | adresa, compusă din localitate, stradă și număr | |
| numărul de valori | cu o singură valoare | fiecare instanță are o singură valoare | codul numeric personal |
| cu mai multe valori | o instanță poate avea mai multe valori | numerele de telefon ale unei persoane | |
| frecvența modificării | volatil | valoarea se modifică des | vârsta |
| nevolatil | valoarea se modifică rar sau deloc | data nașterii | |
| proveniența | derivat | valoarea se calculează din alte atribute | vâ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 |
|---|---|---|
| 1 | Popescu | Ana |
| 2 | Ionescu | Dan |
| 3 | Popescu | Ana |
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 |
|---|---|---|
| 1 | Popescu | Ana |
| 2 | Ionescu | Dan |
| 3 | Marin | Ioana |
| 4 | Dobre | Mihai |
ÎMPRUMUT
| # cod_imprumut | * data_imprumut |
|---|---|
| 1 | 2026-03-02 |
| 2 | 2026-03-05 |
| 3 | 2026-03-09 |
| 4 | 2026-03-10 |
| 5 | 2026-04-01 |
| 6 | 2026-04-03 |
Relația „face”
| CITITOR | ÎMPRUMUT |
|---|---|
| Popescu Ana | 2, 6 |
| Ionescu Dan | 1, 3, 5 |
| Marin Ioana | 4 |
| 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.
| Caracteristica | Valoarea | Reprezentarea |
|---|---|---|
| opționalitatea, citită dinspre o entitate | obligatorie (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 entitate | una și numai una | linia se termină simplu la acea entitate |
| una sau mai multe | linia 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:
- Se introduce entitatea de intersecție, în exemplu CARTE_AUTOR.
- 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.
- Se adaugă entității de intersecție atributele care privesc perechea, în exemplu
ordine. - 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 se citește relație cu relație, în ambele sensuri:
| Relația | Citită dinspre prima entitate | Citită dinspre a doua entitate |
|---|---|---|
| CITITOR – ÎMPRUMUT | Fiecare CITITOR poate face unul sau mai multe ÎMPRUMUTURI. | Fiecare ÎMPRUMUT trebuie să fie făcut de un CITITOR și numai unul. |
| EXEMPLAR – ÎMPRUMUT | Fiecare EXEMPLAR poate face obiectul unuia sau mai multor ÎMPRUMUTURI. | Fiecare ÎMPRUMUT trebuie să privească un EXEMPLAR și numai unul. |
| CARTE – EXEMPLAR | Fiecare 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_AUTOR | Fiecare 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_AUTOR | Fiecare 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.
S-a încheiat minutul de citit liber.
Ce cuprinde subcapitolul
- Entități și instanțe
- Atribute
- Identificatorul unic
- Relații între entități
- Diagrama entități-relații a bibliotecii
- Normalizarea datelor
- Restricțiile și regulile modelului
- 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ă.
Nu am putut înregistra adresa. Verifică e-mailul și materia aleasă, apoi încearcă din nou.
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”