Sunteți pe pagina 1din 5

Modelul entitate-relatie

Generalitati

O baza de date poate fi definita ca o multime de date ce modeleaza un univers. Acest univers este format din
obiecte legate intre ele. Obiectele de acelasi tip constituie o entitate, iar legatura intre doua entitati defineste
o relatie (asociere). Entitatile si relatiile au anumite caracteristici (atribute).

Procesul de descriere a entitatilor si a asocierilor este numit modelare si este realizat cu ajutorul unui model
de date. Modelarea unei baze de date permite trecerea de la perceptia unor fapte din lumea reala la
reprezentarea lor prin date.

Diagrama entitate-relatie (E-R) reprezinta un model neformalizat pentru reprezentarea unor fenomene din
lumea reala. Diagrama este deseori utilizata pentru reprezentarea grafica a modelului relational. Practic, se
construieste diagrama E-R careia i se asociaza modelul relational si acestuia i se adreseaza cererile. În felul
acesta se imbina simplitatea descriptiva a diagramei E-R cu puterea limbajului de manipulare a datelor al
modelului relational.

Vom analiza notiunile de entitate, relatie, atribut, introduse de Peter Chen in 1976 si vom arata cum se poate
construi o diagrama entitate-relatie.

Entitate

Prin entitate se intelege un obiect concret sau abstract reprezentat prin proprietatile sale. De exemplu,
consideram o institutie formata din mai multe departamente, in care lucreaza salariati. Salariati sunt asociati
la anumite proiecte, executnâd in cadrul acestor proiecte diferite sarcini. Elementele semnificative ale
modelului analizat si legaturile dintre acestea, sunt reprezentate in urmatoarea figura.

Fig. - Modelul analizat si legaturile dintre elementele


modelului

În diagrama din figura Fig. 3.2-1, SALARIAT,


DEPARTAMENT, PROIECT, SARCINA sunt
entitati.

Cate observatii privind entitatile:

Entitatile devin tabele in modelele relationale.

În general, entitatile se scriu cu litere mari, iar


valoarea entitatii se scrie cu litere mici.

Entitatile sunt substantive, dar nu orice substantiv este o entitate. Trebuie ignorate substantivele
nerelevante, ca de exemplu, numar de ore lucrate, salarii etc.

Pentru fiecare entitate este obligatoriu sa se dea o descriere detaliata. De exemplu, un SALARIAT
este orice angajat permanent, functionar care lucreaza jumatate de timp sau pensionar, dar persoanele
care au fost angajate numai pentru un anumit contract nu apartin acestei entitati.

Nu pot exista doua entitati cu acelasi nume, sau o entitate cu doua nume diferite.

Cheia primara identifica unic o entitate si face distinctie intre valori diferite ale entitati. De exemplu,
codul salariatului este o cheie primara pentru entitatea SALARIAT, dar numele salariatului nu este o
cheie primara deoarece pot exista doi salariati cu acelasi nume.
Cheia primara trebuie sa fie unica si cunoscuta la orice moment. Cheia primara trebuie sa satisfaca
urmatoarele conditii:

Sa fie controlata de administratorul bazei de date;

Sa nu contina informatii descriptive;

Sa fie scurta, simpla, fara ambiguitati;

Sa fie stabila, deoarece schimbarea ei poate conduce la confuzii;

Sa fie familiara utilizatorului astfel incat acesta sa o poata folosi cu usurinta in filtrarile sale.

Relatie (asociere)

Relatia (asociere) reprezinta o legatura intre doua sau mai multe entitati. De exemplu,
'atasat_la', reprezinta o relatie care leaga entitatile SALARIAT si PROIECT. O valoare a
unei relatii este o comunicare intre valorile entitatilor care le leaga. Existenta unei asocieri
este subordonata existentei entitatilor care le leaga.

Cate observatii privind relatiile:

Relatiile sunt verbe, dar nu orice verb este o relatie.

Pot exista relatii diferite cu acelasi nume. În acest caz le diferentiaza entitatile care sunt
asociate prin relatia respectiva.

Pentru fiecare relatie este important sa se dea o descriere detaliata.

Cardinalitatea relatiei, adica numarul de tupluri apartinand unei relatii, este raspunsul la
intrebari de tipul:

a.       Cati salariati pot lucra intr-un departament? Multi!

În cate departamente poate lucra un salariat? În cel mult unu!

Deci relatia 'SALARIAT_lucreaza in _DEPARTAMENT' este many-one (n:1).

b. Cati salariati pot conduce un departament? Unul !. Cate departamente poate conduce un


salariat ? Unul !.

Deci relatia 'SALARIAT_conduce_DEPARTAMENT' este one-one (1:1).

c. Cati salariati pot fi atasati la un proiect ?Multi !.

La cate proiecte poate fi atasat un salariat ? Multe !.

Deci relatia 'SALARIAT_atasat la_ PROIECT' este many-many (n:m).


Valorile (n:1), (1:1), (n:m) reprezinta cardinalitatea maxima. Daca in propozitiile
anterioare se inlocuieste cuvantul 'poate' cu ' trebuie', se obtin relatii de tipul (0:1), (1:0),
(0:0), care reprezinta cardinalitatea minima.

d. Cati salariati trebuie sa conduca un departament ? Cel putin unu !

Cate departamente trebuie sa conduca un salariat ? Zero !.

Deci relatia 'SALARIAT_conduce_DEPARTAMENT' are cardinalitatea minima 1:0.

Atribut

Atributul reprezinta o proprietate a unei entitati sau a unei relatii. Trebuie facuta distinctie
intre tipul atributului care devine coloana in modelele relationale si valoarea acestuia, care
devine valoare in coloane. Fiecarui atribut trebuie sa i se de-a o descriere completa
(caracteristici), respectiv pentru fiecare atribut trebuie specificat numele, tipul atributului
(integer, float, char, etc), valorile posibile, valorile implicite, regulile de validare.

Diagrama entitate-relatie

O diagrama consta din urmatoarele componente majore:

Dreptunghiuri, care reprezinta entitatile;

Arce neorientate, prin care sunt reprezentate relatiile dintre entitati;

Atributele care reprezinta chei primare trebuie subliniate;

Cardinalitatea minima este indicata in paranteze, iar cardinalitatea maxima se scrie


fara paranteze;

Nu trebuie specificate toate atributele. Daca se da o descriere completa, un dictionar relevant


pentru fiecare entitate, atribut, relatie, exista unelte CASE care pot genera automat din
informatiile date, diagrame entitate-relatie.

Vom descrie cateva cazuri speciale de entitati, relatii, atribute si modul lor de reprezentare in
cadrul diagramei entitate-relatie.

O entitate dependenta nu poate exista de sine statatoare. De exemplu, SARCINA depinde de


PROIECT. Cheia primara a unei entitati dependente include cheia primara a sursei
(nr_proiect) si cel putin o descriere a entitatii (nr_sarcina). Entitatea dependenta se deseneaza
prin dreptunghiuri cu linii mai subtiri.
Fig. 3.5- Reprezentarea unei diagrame entitate-
relatie

O subentitate este o submultime a unei


entitati, numita superentitate. De exemplu,
SALARIAT reprezinta o superentitate
pentru PROGRAMATOR, iar
PROGRAMATOR este o subentitate
pentru SALARIAT (Fig. 3.5-2).
Subentitatea se deseneaza prin
dreptunghiuri incluse in superentitate.

Cheile primare, atributele si relatiile unei


superentitati sunt valabile pentru orice
subentitate. Afirmatia reciproca este falsa.
De exemplu, un programator poate avea ca
atribute limbajele de programare cunoscute
si nivelul de cunoastere a acestora, dar
aceste atribute nu sunt semnificative pentru
un agent teritorial. Cheia primara a subentitatii PROGRAMATOR este 'cod_salariat' care
este cheia primara a superentitatii SALARIAT.

Exista totdeauna o relatie intre o subentitate si o superentitate numita ISA, care are
cardinalitatea maxima 1:1 si minima 1:0.

Fig. 3.5- Reprezentarea unei subentitati

O relatie poate fi reprezentata ca un atribut,


sau putem folosi reatii in loc de atribute. Cand un
atribut al unei entitati reprezinta cheia primara a
unei alte entitati, atunci    el refera o relatie.

Uneori este dificil sa separi entitate de


relatie. Daca exista o incertitudine, se cerceteaza
cheia primara. Daca aceasta cheie combina cheile
primare a doua entitati, atunci se defineste o
relatie.

Exista atribute optionale, a caror valoare este uneori necunoscuta, uneori neaplicabila.
Aceste atribute trebuie introduse la subentitati. De exemplu, comisionul pentru deplasare si
zona de lucru sunt atribute specifice unui agent teritorial si trebuie introduse la subentitatea
AGEN_TERITORIAL.

Valorile efective ale entitatilor, reatiilor si atributelor depind de momentul analizei, se


pot schimba in timp.

Pentru obtinerea diagramei entitate-relatie sunt parcurse urmatoarele etape:


Identificarea entitatilor din cadrul sistemului analizat;

Identifiarea relatiilor (asocierilor) dintre entitati si stabilirea cardinalitatii acestora;

Identificarea atributelor aferente entitatilor si asocierilor dintre entitati;

Stabilirea atributelor de identificare a entitatilor, adica stabilirea cheilor.

Relatiile reflecta legaturi naturale care exista intre componentele sistemului. Aceeasi
realitate poate fi insa perceputa diferit, de diferiti analisti, pentru un acelasi sistem putand fi
obtinute modele structurale distincte.

Exista si alte moduri grafice de prezentatre a diagramelor entitate-relatie. De exemplu,


relatiile sunt reprezentate prin romburi, entitatile prin dreptunghiuri, iar atributele prin elipse.

S-ar putea să vă placă și