Sunteți pe pagina 1din 39

Diagrame entitate-relaie

Diagrama E/R model neformalizat pentru


reprezentarea unui sistem din lumea real. Este un
model de date conceptual de nivel nalt dezvoltat de
Chen (1976) pentru a facilita proiectarea bazelor de
date.
Modelul de date conceptual este independent de:

tipul SGBD-ului;
platforma hardware utilizata.

Modelul conceptual este constituit din concepte care


descriu:

structura bazei de date;


tranzactii de regasire si reactualizare asociate.

Entitate: persoan, loc, concept, activitate,


eveniment care este semnificativ pentru ceea ce
modelm.

Observaii:
Entitile devin tabele n modelele relaionale.
n general, entitile se scriu cu litere mari.
Entitile sunt substantive, dar nu orice
substantiv este o entitate.
Pentru fiecare entitate este obligatoriu s se dea
o descriere detaliat.
Nu pot exista, n aceeai diagram, dou entiti
cu acelai nume, sau o aceeai entitate cu
nume diferite.

Cheia primar este un identificator unic n


cadrul entitii, fcnd distincie ntre valori
diferite ale acesteia.
Cheia primar:

trebuie s fie unic i cunoscut la orice moment;


trebuie s fie controlat de administratorul bazei;
trebuie s nu conin informaii descriptive, s fie
simpl, fr ambiguiti;
s fie stabil;
s fie familiar utilizatorului.

Relaie (asociere): o comunicare ntre dou sau mai multe


entiti. Existena unei relaii este subordonat existenei
entitilor pe care le leag. Gradul (tipul) unei relatii este dat
de numarul entitatilor participante la relatia respectiva.
Observaii:

n modelul relaional, relaiile devin tabele speciale sau coloane speciale


care refer chei primare.
Relaiile sunt verbe, dar nu orice verb este o relaie.
Pentru fiecare relaie este important s se dea o descriere detaliat.
n aceeai diagram pot exista relaii diferite cu acelai nume. n acest
caz, le difereniaz entitile care sunt asociate prin relaia respectiv.
Pentru fiecare relaie trebuie stabilit cardinalitatea (maxim i minim)
relaiei, adic numrul de tupluri ce aparin relaiei.
poate (cardinalitate maxim) trebuie (cardinalitate minima)

Exemplu:
Ci salariai pot lucra ntr-un departament? Muli!
n cte departamente poate lucra un salariat? In cel mult unul!
Relaia SALARIAT_lucreaza_in_DEPARTAMENT are cardinalitatea
maxim many-one (n:1).
Exemplu:
Ci salariai trebuie s conduc un departament? Cel puin unul!
Cte departamente trebuie s conduc un salariat? Zero!
Relaia SALARIAT_conduce_DEPARTAMENT are cardinalitatea
minim one-zero (1:0).

Atribut: proprietate descriptiv a unei entiti sau a unei relaii.


Atributele pot fi simple, compuse, cu valori multiple, derivate.
Observaii:
Trebuie fcut distincia ntre tipul atributului (devine coloan n
modelele relaionale) i valoarea acestuia (devine valoare n
coloane).
Atributele sunt substantive, dar nu orice substantiv este atribut.
Fiecrui atribut trebuie s i se dea o descriere complet
(exemple, contraexemple, caracteristici).
Pentru fiecare atribut trebuie specificat numele, tipul fizic
(integer, float, char etc.), valori posibile, valori implicite, reguli
de validare, tipuri compuse.

Pentru proiectarea diagramei entitate-relaie


au fost stabilite anumite reguli (nu sunt unice):
entitile sunt reprezentate prin dreptunghiuri;
relaiile dintre entiti sunt reprezentate prin arce
neorientate;
atributele care reprezint chei primare trebuie
subliniate sau marcate prin simbolul #, plasat la
sfritul numelui acestor atribute;
cardinalitatea minim este indicat n paranteze, iar
cardinalitatea maxim se scrie fr paranteze;
nu trebuie specificate toate atributele.

Diagrama E/R

Cazuri speciale de entiti, relaii, atribute i modul lor


de reprezentare n cadrul diagramei entitate-relaie.
1. Entitate dependent nu poate exista n mod independent
(SARCINA depinde de PROIECT). Cheia primar a unei entiti
dependente include cheia primar a sursei (nr_proiect) i cel puin o
descriere a entitii (nr_sarcina). Entitatea dependent se
deseneaz prin dreptunghiuri cu linii mai subiri.
2. Motenirea atributelor. Subentitate (subclas) submulime a unei
alte entiti, numit superentitate (superclas) (SALARIAT < >
PROGRAMATOR). Subentitatea se deseneaz prin dreptunghiuri
incluse n superentitate. Exist o relaie ntre o subentitate i o
superentitate, numit ISA, care are cardinalitatea maxim 1:1 i
minim 1:0. Cheile primare, atributele i relaiile unei superentiti
sunt valabile pentru orice subentitate. Afirmaia reciproc este fals.

3.

4.

5.
6.

Generalizare. Din entiti similare care au mai multe atribute


comune se pot crea superentiti. Aceste superentiti
conin atributele comune, iar atributele speciale sunt
asignate la subentiti. Pentru noile superentiti se introduc
chei primare artificiale.
Specializare. Dup valorile unor atribute clasificatoare se
pot determina clase. Un grup de subentiti reciproc
exclusive definete o clas. Clasele se aliniaz n desen
vertical.
ntr-o diagram E/R se pot defini relaii recursive.
Unele relaii sunt relative la dou entiti i le numim de tip
2, iar dac relaiile implic mai mult de dou entiti, le vom
numi de tip 3. Trei relaii de tip 2 sunt diferite de o relaie de
tip 3. Rupnd o relaie de tip 3 n trei relaii de tip 2, pot
aprea informaii incorecte.

7.

Trebuie excluse din model relaiile indirecte deoarece


ele pot conduce la redundan n baza de date.
8. Atributele derivabile trebuie eliminate i introduse
expresii prin care aceste atribute pot fi calculate.
9. Relaie sau atribut? Dac un atribut al unei entiti
reprezint cheia primar a unei alte entiti, atunci el
refer o relaie (cod_departament n tabelul
SALARIAT).
10. Entitate sau relaie? Se cerceteaz cheia primar.
Dac aceasta combin cheile primare a dou entiti,
atunci este vorba de o relaie. (cheia primar a relaiei
asociat_la combin cod_salariat cu nr_proiect, prin
urmare, SALARIAT_asociat la_PROIECT va defini o
relaie i nu o entitate).

11. Un atribut indirect este inoportun. El nu descrie real relaia sau


entitatea. Prin urmare, atributele indirecte trebuie reasignate.
De fapt, un atribut indirect este un caz special de relaie
indirect care trebuie eliminat pentru c introduce redundan
n date (numrul cldirii n care lucreaz un salariat este un
atribut al entitii DEPARTAMENT i nu este o caracteristic a
entitii SALARIAT).
12. Exist atribute opionale, a cror valoare este uneori
necunoscut, alteori neaplicabil. Aceste atribute trebuie
introduse la subentiti (comisionul pentru deplasare i zona de
lucru sunt atribute specifice unui agent teritorial i trebuie
introduse la subentitatea AGENT_TERITORIAL).
Modelul EER (modelul E/R extins) = Diagrama E/R + concepte
aditionale (subclas, superclas, motenire, specializare,
generalizare).

Algoritmul pentru proiectarea


diagramei entitate-relaie:
1. identificarea entitilor din cadrul
sistemului analizat;
2. identificarea relaiilor dintre entiti i
stabilirea cardinalitii;
3. identificarea atributelor aferente
entitilor i asocierilor dintre entiti;
4. stabilirea atributelor de identificare a
entitilor (stabilirea cheilor).

Diagrama E/R

Gestiunea activitilor de mprumut


dintr-o bibliotec
S-a presupus (restrictiv) c ntr-o zi un cititor nu poate mprumuta,
de mai multe ori, aceeai carte. Modelul prezint anomalii (de
exemplu, cheia primar de la entitatea carte)! A fost gndit n
aceast manier cu scop pur didactic.
Entitile i relaiile care intervin n acest model sunt urmtoarele:

CARTE (entitate independent) orice carte care se gsete n


inventarul bibliotecii. Cheia primar este atributul codel.
CITITOR (entitate independent) orice cititor care poate
mprumuta cri. Cheia primar este atributul codec.

DOMENIU (entitate independenta) domeniul cruia i aparine


o carte. Cheia primar este atributul coded.
IMPRUMUTA relaie avnd cardinalitatea m:m care leag
entitile CITITOR i CARTE.

APARTINE relaie care leag atributele CARTE i DOMENIU.


Relaia are cardinalitatea maxim m:1, iar cardinalitatea minim
1:1.

Gestiunea activitilor de editare


dintr-o editur
Se analizeaza activitatea dintr-o editur referitoare la culegerea textelor, realizarea
elementelor grafice, machetarea unor publicaii.

Gestiunea activitilor unei firme


de construcii
Baza de date construit prin acest model, furnizeaz informaii legate de obiective de execuie,
investitori, executani, antiere, contracte etc. necesare unui manager al unei firme de construcii

Tabelele din cursurile Oracle Education. Tabelele emp, dept, salgrade


modeleaz gestiunea salariailor unei firme.
Tabelul emp(empno#, ename, job, mgr, hiredate, sal, com, deptno)
conine informaii despre salariaii unei firme. Pentru fiecare salariat
sunt definite urmtoarele atribute: empno: codul salariatului; ename:
numele salariatului; job: funcia; mgr: codul efului; hiredate: data
angajrii; sal: salariul; com: comisionul; deptno: codul
departamentului n care lucreaz.
Tabelul dept (deptno#, dname, loc) conine informaii despre
departamentele n care lucreaz salariaii. Atributele sale reprezint:
deptno: codul departamentului; dname: numele departamentului;
loc: localitatea unde funcioneaz departamentul.
Tabelul salgrade(grade#, losal, hisal) conine informaii despre
grilele de salarizare. Atributele tabelului au urmtoarea semnificaie:
grade: codul grilei de salarizare; losal: limita inferioar a grilei de
salarizare; hisal: limita superioar a grilei de salarizare.

Ordonarea informaiilor cu privire la


descoperirile de monede antice din
Romania

STANA (nr_stan, mprat emitent,


valoare nominal, an emitere,
monetria, legenda de pe avers,
legenda de pe revers) == > atribute
ale entitii STANTA
Completai cardinalitatea!

Evidena colilor de oferi din


Romania

Completai relaiile (lucreaza_la, conduce, sustine, asista, instruieste) dintre


entiti i specificai cardinalitatea!

Campionatele de fotbal ale diferitelor ri

Modelul relaional
Modelul relaional a fost conceput i dezvoltat de E.F.
Codd. El este un model formal de organizare
conceptual a datelor, destinat reprezentrii legturilor
dintre date, bazat pe teoria matematic a relaiilor.
Modelul relaional este alctuit numai din relaii i prin
urmare, orice interogare asupra bazei de date este tot o
relaie. Cercetarea n domeniu 3 mari proiecte
(System R, INGRES, PRTV)
Caliti:

este simplu;
riguros din punct de vedere matematic;
nu este orientat spre sistemul de calcul.

Structura datelor
Definirea noiunilor de domeniu, relaie, schem
relaional, valoare null i tabel vizualizare (view).
Conceptele utilizate pentru a descrie formal, uzual sau
fizic elementele de baz ale organizrii datelor sunt date
n urmtorul tabel:

Domeniu mulime de valori care poate fi


definit fie enumernd elementele
componente, fie definind o proprietate
distinctiv a domeniului valorilor.
Fie D1, D2, ..., Dn domenii finite, nu neaprat
disjuncte. Produsul cartezian D1 D2 ...
Dn al domeniilor D1, D2, ..., Dn este definit de
mulimea tuplurilor (V1, V2, ..., Vn), unde V1
D1, V2 D2, ..., Vn Dn. Numrul n
definete aritatea tuplului.

O relaie R pe mulimile D1, D2, ..., Dn este o


submulime a produsului cartezian D1 D2 ...
Dn, deci este o mulime de tupluri.
Caracteristicile unei relatii:

are o denumire unica;


fiecare celula contine o valoare atomica;
fiecare atribut are nume unic;
toate valorile unui atribut apartin aceluiasi domeniu;
ordinea atributelor nu are importanta;
nu exista dubluri ale tuplurilor;
teoretic, ordinea tuplurilor nu are importanta.

Definirea unei relaii se refer la mulimi care variaz n


timp. Pentru a caracteriza o relaie este necesar
existena un element invariant n timp: structura relaiei
(schema relaional). Mulimea numelor atributelor
corespunztoare unei relaii R definete schema
relaional a relaiei respective. Vom nota schema
relaional prin R(A1, A2, ..., An). Exemplu!
Putem reprezenta o relaie printr-un tabel bidimensional
n care fiecare linie corespunde unui tuplu i fiecare
coloan corespunde unui domeniu din produsul
cartezian. O coloan corespunde de fapt unui atribut.
Numrul atributelor definete gradul (aritatea) relaiei,
iar numrul de tupluri din relaie definete cardinalitatea
relaiei.

Exemplu (crearea unui tabel n SQL):


CREATE TABLE salariat (
cod_salariat
SMALLINT,
nume
VARCHAR(25),
prenume
VARCHAR(20),
salariu
INTEGER,
sot
SMALLINT,
job_cod
VARCHAR(6),
cod_departament SMALLINT );

Cnd se insereaz tupluri ntr-o relaie, de multe


ori un atribut este necunoscut sau neaplicabil.
Pentru a reprezenta acest atribut a fost
introdus o valoare convenional n relaie, i
anume valoarea null.
Este necesar o aritmetic i o logic nou care
s cuprind acest element. Rezultatul
operatorilor aritmetici sau logici este null cnd
unul din argumente este null. Comentat excepii!
Prin urmare, null = null are valoarea null, iar
null este null.

Tabele de adevr pentru operatorii AND i OR.

Multe din echivalentele adevarate in logica cu 2 valori nu mai sunt


adevarate in aceasta logica (3VL).

De exemplu comparatia x = x nu are in mod necesar valoarea true;


expresia p OR NOT (p) nu are in mod necesar valoarea true; expresia t
JOIN t nu este evaluata neaparat ca fiind egala cu t, deoarece join-ul,
spre deosebire de reuniune, se bazeaza pe verificarea egalitatii in stil
de gasire, nu in stil de duplicat.

Se observa ca null-urile ruineaza modelul relational. Logica 3VL nu


corespunde realitatii, adica rezultatele care sunt corecte conform
acestei logici sunt uneori eronate in lumea reala.
Modelul relational a functionat perfect fara null in perioada 19691979.
Este preferabil (in multe cazuri) utilizarea unor valori speciale pentru
a reprezenta informatiile lipsa. De exemplu, se poate utiliza
valoarea speciala ? pentru a indica numarul de ore lucrate de un
salariat. Atentie! Valoarea speciala sa fie de tipul aplicabil. In SQL,
tratarea informatiilor lipsa se bazeaza substantial pe logica 3VL.

Tabelul vizualizare (view, filtru, relaie virtual, vedere)


constituie un filtru relativ la unul sau mai multe tabele,
care conine numai informaia necesar unei anumite
abordri sau aplicaii. Consultarea vizualizarilor
functioneaza perfect.
Vizualizarea este virtual deoarece datele pe care le
conine nu sunt n realitate memorate ntr-o baz de
date. Este memorat numai definiia vizualizrii.
Vizualizarea nu este definit explicit, ca relaiile de baz,
prin mulimea tuplurilor componente, ci implicit, pe baza
altor relaii prin intermediul unor expresii relaionale.
Stabilirea efectiv a tuplurilor care compun vizualizarea
se realizeaz prin evaluarea expresiei atunci cnd
utilizatorul se refer la acest tabel.

Exemplu (crearea unei vizualizri n SQL):


CREATE VIEW programator(nume,departament)
AS SELECT nume,cod_departament
FROM salariat
WHERE job_cod=programator;

Reguli de integritate aseriuni pe care datele


coninute n baza de date trebuie s le satisfac.
Trebuie fcut distincia ntre:

regulile structurale inerente modelrii datelor;


regulile de funcionare specifice unei aplicaii particulare.

Exist trei tipuri de constrngeri structurale (de


cheie, de referin, de entitate) ce constituie
mulimea minimal de reguli de integritate pe care
trebuie s le respecte un SGBD relaional.
Restriciile de integritate minimale sunt definite n
raport cu noiunea de cheie a unei relaii.
O mulime minimal de atribute ale cror valori
identific unic un tuplu ntr-o relaie reprezint o
cheie pentru relaia respectiv.

Fiecare relaie are cel puin o cheie. Una dintre cheile candidat
va fi aleas pentru a identifica efectiv tupluri i ea va primi
numele de cheie primar. Cheia primar nu poate fi
reactualizat. Atributele care reprezint cheia primar sunt fie
subliniate, fie urmate de semnul #.
O cheie identific linii i este diferit de un index care
localizeaz liniile. O cheie secundar este folosit ca index
pentru a accesa tupluri. Un grup de atribute din cadrul unei
relaii care conine o cheie a relaiei poart numele de
supercheie.
Fie schemele relaionale R1(P1, S1) i R2(S1, S2), unde P1
este cheie primar pentru R1, S1 este cheie secundar pentru
R1, iar S1 este cheie primar pentru R2. n acest caz, vom
spune c S1 este cheie extern (cheie strin) pentru R1.

Modelul relaional respect trei reguli de


integritate structural.
Regula 1 unicitatea cheii. Cheia primar
trebuie s fie unic i minimal.
Regula 2 integritatea entitii. Atributele cheii
primare trebuie s fie diferite de valoarea null.
Regula 3 integritatea referirii. O cheie extern
trebuie s fie ori null n ntregime, ori s
corespund unei valori a cheii primare asociate.