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.
Pentru reprezentarea modelului conceptual se folosește diagrama entități-relații (ERD, Entity Relationship Diagram). 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
Ea poate corespunde unui lucru concret, cum este o carte, unei activități, cum este un împrumut, sau unei noțiuni abstracte.
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
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
Î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: legătura dintre o carte și unul dintre autorii ei se identifică prin perechea formată din ISBN-ul cărții și codul autorului, fiindcă aceeași carte apare cu mai mulți autori, iar același autor cu mai multe cărți (entitatea CARTE_AUTOR, prezentată mai jos).
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
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:
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.
Te înscrii, alegi în cont când începe cursul și plătești prima lună prin transfer bancar. Pentru a vedea mai întâi cum este prezentată materia, poți reveni la primul subcapitol al capitolului.
Acces la suportul de curs
25 RON / lună, fără ședințe
Ce cuprinde:
- Acces la toate lecțiile disponibile
- Suport de curs pentru tematica științifică și metodică
- Exemple, explicații și exerciții
- Acces la materialele noi adăugate pe platformă
- Posibilitatea de a adresa întrebări
Poți alege și variante cu ședințe online, în grup sau individuale. Le vezi pe pagina cursului.
Ai întrebări sau o problemă? Scrie-mi pe WhatsApp, la 0745 874 576.
Surse (5)
- 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”