Sunteți pe pagina 1din 28

Modelul conceptual al unei baze de date

Diagrama entitate-relaie

Proiectarea judicioas a unui model al BD poate fi realizat prin diagrama entitate-relaie. Aceast diagram reprezint un mod de descriere a unui sistem sau proces din lumea real. Diagrama ER utilizeaz o descriere grafic pentru dou categorii de evenimente: - entiti - legturi (asocieri ntre entiti) Entitate =persoan,loc,activitate sau eveniment care este semnificativ pentru modelul realizat. O entitate din cadrul modelului trebuie s se conformeze regulilor urmtoare: - numele entitii trebuie s fie un substantiv comun sugestiv, care s permit o prim descriere a entitii - nu pot exista dou entiti cu acelai nume sau o entitate cu dou nume diferite

pentru fiecare entitate se va da o descriere complet a atributelor sale (semnificaia,domeniul de valori) - entitatea va avea obligatoriu un atribut sau o combinaie de atribute care s poat fi cheie primar (s identifice n mod unic fiecare instan a entitii). Cheia primar trebuie s fie stabil, simpl i fr ambiguiti, familiar utilizatorilor BD. Diagrama ER utilizeaz o descriere grafic a entitilor, folosind urmtoarele convenii: - descrierea entitii se face ntr-un dreptunghi - numele entitii este scris pe prima linie cu litere mari - atributele sunt scrise cu litere mici pe liniile urmtoare
-

Atribut =proprietate descriptiv a unei entiti, caracteristic a unei entiti. Numele unui atribut este un substantiv care descrie cu exactitate o caracteristic a entitii i exprim o nsuire calitativ sau cantitativ a entitii. Un atribut trebuie s aib o singur valoare, de un anumit tip. Exist atribute a cror valoare este obligatorie pentru a descrie corect i complet o entitate. Aceste atribute se numesc obligatorii, n timp ce atributele a cror valoare poate lipsi se numesc opionale. Reprezentarea atributelor n diagrama ER se face dup urmtoarele reguli: - atributele sunt scrise cu litere mici, fiecare pe cte o linie - atributele care sunt chei primare sunt precedate de caracterul # - atributele obligatorii sunt precedate de caracterul * - atributele opionale sunt precedate de caracterul

Exemplu
ELEV
# cnp * nume * prenume * data naterii * coala de provenien email

CLASA # cod clas * denumire * profil * specializare descriere

Atributul email al entitii ELEV i atributul descriere al entitii CLASA sunt opionale, deoarece nu reprezint o caracteristic esenial a entitilor respective. Spre exemplu, un elev poate s nu aib adres de email. n acest caz, spunem c valoarea atributului email poate fi valoarea NULL. NULL = constant predefinit care semnific o valoare nedefinit sau inaplicabil. Relaie =asociere, mod de comunicare, interdependen stabilit (de obicei) ntre dou entiti. Relaia reprezint un raport care exist ntre entiti i este exprimat prin utilizarea unor verbe care s descrie cu exactitate interdependena dintre acestea. Pot exista mai multe relaii cu acelai nume, dar ntre entiti diferite.

Diagrama ER reprezint relaiile printr-o linie care unete cele dou entiti, la fiecare din cele dou capete scriindu-se numele relaiei. Numele relaiei este format dintr-un cuvnt sau grup de cuvinte care conin obligatoriu un verb i exprim modul n care entitatea din acea parte a legturii este asociat cu entitatea din cealalt parte a relaiei. S identificm o relaie ntre entitile ELEV i CLASA. Evident, fiecare clas poate conine un numr oarecare de elevi i fiecare elev trebuie s aparin unei clase. Astfel relaia dintre entitile ELEV i CLASA poate fi exprimat prin urmtoarele dou enunuri: I. Fiecare CLAS poate conine 0 sau mai muli ELEVI. II. Fiecare ELEV trebuie s aparin unei singure CLASE.

Cuvintele poate i trebuie exprim opionalitatea relaiei, iar cuvintele scrise italic exprim cardinalitatea sau gradul relaiei. Cardinalitatea relaiei =proprietate a celor dou pri ale unei relaii dintre entitile A i B, care exprim cte instane ale entitii A sunt asociate cu instanele entitii B i reciproc. Opionalitatea relaiei =proprietate a celor dou pri ale unei relaii dintre entitile A i B, care exprim cte dintre instanele entitii A pot sau trebuie s se asocieze instanelor entitii B i reciproc. Pe baza enunurilor I i II putem deduce cardinalitatea relaiei dintre entitile ELEV i CLASA : many-to-one (mai muli-la unu sau n:1).

ELEV

CLASA
aparine conine

S considerm entitile SALARIAT i DEPARTAMENT identificate n cadrul modelului de gestiune a datelor unei firme oarecare, i relaia urmtoare:
SALARIAT

DEPARTAMENT
conduce este condus

ncercm s determinm opionalitatea i cardinalitatea prin enunurile:

Fiecare SALARIAT poate conduce 0 sau un singur DEPARTAMENT.


Fiecare DEPARTAMENT trebuie condus de un unic SALARIAT.

Relaia dintre cele dou entiti are cardinalitatea one-toone (unu-la-unu sau 1:1). Opionalitatea relaiei este exprimat prin: - nu este obligatoriu ca fiecare salariat s fie eful unui departament, dar acest lucru este posibil - un departament trebuie s aib ef, dar acesta este unic S considerm entitile CONCURENT i PROBA, care intervin n gestionarea datelor unui concurs atletic.
CONCURENT
PROBA

particip la

este susinut

Fiecare CONCURENT poate participa la una sau mai multe PROBE.


Fiecare PROB poate fi susinut de 0 sau mai muli CONCURENI.

Relaia dintre cele dou entiti are cardinalitatea many-tomany (mai muli-la mai muli sau n:m). n privina opionalitii relaiei putem face urmtoarele aprecieri: - un concurent nu este obligat s participe la mai multe probe, dar poate face acest lucru - proba poate reuni mai muli concureni sau exist posibilitatea ca niciun concurent s nu participe la acea prob Reprezentarea grafic a unei relaii stabilite ntre dou entiti A i B se va realiza dup regulile: - entitile sunt reprezentate printr-un dreptunghi care conine numele entitii i, eventual descrierea atributelor entitii

relaia va fi reprezentat printr-o linie ce unete cele dou entiti - de fiecare parte (stng i dreapt) a liniei ce reprezint relaia, se va nota cu litere mici numele relaiei - opionalitatea relaiei va fi reprezentat, pe fiecare latur a relaiei, prin linie punctat (poate fi) sau continu (trebuie) - - cardinalitatea relaiei este reprezentat de partea terminal a liniei din fiecare parte a relaiei; dac avem cardinalitate n pe o latur a relaiei, atunci linia se va despri n trei linii (sub form de trident) Relum exemplele anterioare, reprezentndu-le conform regulilor enunate:
-

SALARIAT

DEPART.
conduce este condus

ELEV

aparine

conine

CLASA

CONCURENT

PROBA particip la este susinut

Pentru a citi i reprezenta corect relaia dintre dou entiti procedm astfel: Pas 1. fiecare entitate A Pas 2. poate/trebuie (opionalitatea) Pas 3. nume relaie Pas 4. unul i numai unul/mai multe (cardinalitatea) Pas 5. entitate B Regula de mai sus se aplic pentru ambele pri ale relaiei. Pentru exemplele considerate anterior avem:
Pas 1. fiecare SALARIAT Pas 2. poate

Pas 3. conduce
Pas 4. unul i numai unul Pas 5. DEPARTAMENT

Pas 1. fiecare DEPARTAMENT Pas 2. trebuie

Pas 3. condus de
Pas 4. unul i numai unul (un unic) Pas 5. SALARIAT

Studiu de caz. Gestiunea datelor dintr-o bibliotec


Ne propunem s realizm modelul conceptual al unei probleme concrete de gestiune a datelor. Vom identifica entitile care apar i atributele acestora, vom defini relaiile ntre entiti i vom construi diagrama ER.
Pas 1. Deoarece raiunea existenei unei biblioteci este chiar manipularea crilor, ncepem construcia modelului cu entitatea CARTE.

CARTE # cota * titlu * autor * editura

* an apariie
* disponibil observaii

Pas 2. Fiecare carte este ncadrat de ctre criticii literari ntr-un anumit curent literar sau ntr-un anume gen literar. Putem defini entitatea GEN care este utilizat n clasificarea crilor din bibliotec.

GEN
# IDgen * denumire observaii

Pas 3. Stabilim relaia dintre cele dou entiti, CARTE i GEN:

CARTE

GEN
clasificat clasific

Fiecare CARTE trebuie clasificat printr-un unic GEN. Fiecare GEN poate clasifica una sau mai multe CRI.

Pas 4. Crile, clasificate sau nu, trebuie mprumutate elevilor sau profesorilor din coal, deci este nevoie de o nou entitate: ABONAT
ABONAT
# cnp * nume * prenume * adresa

Pas 5. Identificm relaiile care se pot stabili ntre entitile ABONAT i entitile existente, CARTE i GEN.

ABONAT

CARTE mprumut mprumutat

Relaia este de tipul many-to-many, deoarece:


Fiecare ABONAT poate mprumuta una sau mai multe CRI. Fiecare CARTE poate fi mprumutat de unul sau mai muli ABONAI.

Pas 6. S presupunem c biblioteca dorete s pun la dispoziia publicului date referitoare la autorii crilor. Vom defini o nou entitate, AUTOR:

AUTOR # IDautor * nume * prenume * data naterii data decesului * locul naterii * naionalitatea

Pas 7. Stabilim relaiile dintre AUTOR i celelalte entiti. Abonaii bibliotecii ar dori s afle informaii despre autorul unei cri, prin urmare definim o asociere ntre entitile CARTE i AUTOR.
AUTOR scrie scris

CARTE

Relaia este many-to-many deoarece:


Fiecare AUTOR poate scrie una sau mai multe CRI. Fiecare CARTE trebuie scris de unul sau mai muli AUTORI.

Pas 8. Bazndu-ne pe entitile i relaiile identificate la paii anteriori, desenm diagrama ER.

AUTOR scrie

este scris

CARTE
este mprumutat este clasificat

GEN clasific

mprumut
ABONAT

Rezolvarea relaiilor many-to-many


Etapele urmtoare ale procesului de modelare constau n rafinarea pas cu pas a modelului iniial, viznd mbuntirea acestuia. n practica procesului de proiectare a modelului conceptual nu sunt acceptabile relaiile many-to-many care apar deseori ntre entiti. Primul pas ctre rafinarea modelului const n eliminarea relaiilor many-to-many i nlocuirea lor cu relaii one-to-many. Pentru a vedea de ce este necesar s eliminm relaiile many-to-many, s analizm relaia stabilit ntre entitile AUTOR i CARTE.

AUTOR scrie

scris

Sunt posibile dou situaii: -Dac dorim s memorm, pentru fiecare carte, doar numele autorului, fr s oferim i alte detalii legate de acesta, atunci existena entitii AUTOR nu mai are sens, problema rezolvndu-se prin definirea atributului autor n cadrul entitii CARTE i eliminarea entitii AUTOR - Dac dorim s oferim abonailor informaii despre autorii crilor din bibliotec sau s permitem cutarea crilor scrise de un autor precizat, atunci relaia manyto-many nu poate fi evitat.

Necesitatea eliminrii relaiilor n:m este dat de gradul mare de ambiguitate generat de acestea. Relaia n:m va fi nlocuit n cadrul modelului prin dou relaii 1:n, stabilite ntre entitile iniiale i o a treia entitate, nou introdus, numit entitate de legtur sau entitate de intersecie. nlocuirea unei relaii n:m existente ntre entitile A i B se va realiza astfel: - Se introduce o nou entitate C, avnd cheia primar format din cheile primare ale celor dou entiti, plus alte atribute suplimentare - Relaia dintre A i C este de tipul 1:n - Relaia dintre B i C este de tipul 1:n - Aceste relaii 1:n dintre entitile iniiale i entitatea de intersecie C se reprezint grafic prin adugarea unei bare orizontale la captul dinspre entitatea C

EVIDEN AUTORI descriere

AUTOR
#IDautor *nume *prenume #cota

CARTE

*titlu
*autor ataat la ataat la *editura *an apariie *disponibil observaii

*data naterii
data decesului *locul naterii *naionalitate

Entitatea de intersecie EVIDEN AUTORI introdus n exemplul anterior, constituie n fapt un fel de jurnal,care are ca instane perechi AUTOR-CARTE, pstrnd astfel asocierea dintre fiecare autor i crile pe care le-a scris, singur sau mpreun cu ali autori. Instanele entitii de intersecie nu rein dect cheile primare din cele dou entiti, pentru identificarea caracteristicilor crilor i autorilor i, eventual, cteva atribute suplimentare ce descriu asocierea respectiv. Nu este permis mutarea anumitor atribute din entitile AUTOR i CARTE n entitatea EVIDEN AUTORI, deoarece modelul va deveni redundant. Modelul nou obinut pentru gestiunea unei biblioteci este:

AUTOR

EVIDEN
AUTORI

ataat

ataat CARTE GEN clasific

ataat
EVIDEN MPRUMUT ataat

clasificat

ABONAT