Академический Документы
Профессиональный Документы
Культура Документы
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
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
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
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
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 3. condus de
Pas 4. unul i numai unul (un unic) Pas 5. SALARIAT
* 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
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
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
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
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
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
EVIDEN MPRUMUT ataat
clasificat
ABONAT