Documente Academic
Documente Profesional
Documente Cultură
MODELAREA DATELOR
Posibilitatea de a obine informaii utile dintr-o colecie de date (deci dintr-o baz de date) depinde
de modul de organizare i interpretare a datelor. Datele n sine nu constitue informaie, ci numai datele
mpreun cu regulile de organizare (structurare) a acestora permit interpretarea i utilizarea informaiilor
coninute de datele respective.
De exemplu, secvena de octei:
21 00 00 3A 00 00
ntr-un program imagine memorie nu are nici-o semnificaie dac nu se cunoate modul de codare a
instruciunilor main ale procesorului respectiv. Dac presupunem c secvena de mai sus face parte dintrun program pentru procesorul Z80, atunci secvena de octei este interpretat ca secven de insruciuni:
LD
HL,0
LDA
0
Un model de date este un instrument teoretic care permite structurarea i interpretarea corect a
datelor.
Un model de date ne permite deci s identificm semnificaia sau coninutul de informaie a unei
colecii de date. Pentru exemplul de mai sus, arhitectura procesorului (setul de instruciuni) este modelul
care permite interpretarea corect de ctre procesor a secvenei de instruciuni date.
Relund definiia bazelor de date, se poate specifica mai precis c o baz de date este o colecie de
date persistente, organizate conform unui anumit model de date.
2.1. Entiti i asocieri
Elementele eseniale ale modelelor de date folosite n proiectarea bazelor de date sunt entitile
(entities) i asocierile (relationships) dintre acestea.
O entitate este "orice poate fi identificat n mod distinctiv". O entitate se refer la un aspect al
realitii obiective, care poate fi deosebit de restul universului i poate reprezenta un obiect fizic, o
activitate, un concept, etc.
Orice entitate este descris prin atributele sale. Atributele prin care este descris o entitate se aleg
pe baza criteriului relevanei relativ la domeniul de interes pentru care se definete modelul respectiv, astfel
nct s asigure diferenierea precis a entitii respective fa de restul universului. De exemplu, entitatea
ANGAJAT (al unei instituii) reprezint o persoan angajat a instituiei, care are o anumit funcie,
lucreaz ntr-o anumit secie i primete un anumit salariu. Aceast entitate fi descris prin mai multe
atribute, dintre care o parte sunt atribute de identificare a persoanei (cum sunt: Nume, Prenume,
DataNasterii, Adresa), iar alte atribute sunt atribute legate de activitatea acesteia n instituia respectiv
(cum sunt: Funcia, Salariul).
n bazele de date entitile similare, care pot fi descrise prin aceleai atribute, se grupeaz n
mulimi, fiecare entitate avnd valori particulare ale atributelor respective. Toate entitile similare, care pot
fi descrise prin aceleai atribute, aparin unui acelai tip de entitate (entity type). Colecia tuturor entitilor
de acelai tip dintr-o baz de date constitue o mulime de entiti (entities set). O mulime de entiti se
descrie prin aceleai atribute prin care este descris fiecare entitate component.
n proiectarea bazelor de date de orice tip se folosesc asocieri (relationships) ntre mulimile de
entiti (datele) componente, pentru a modela realitatea pe care baza de date o reprezint. Asocierile pot fi
binare (ntre 2 mulimi de entiti) sau n-are (ntre n mulimi de entiti, n>2).
Asocierile binare sunt, la rndul lor, de trei categorii, dup numrul elementelor asociate din
fiecare dintre cele dou mulimi (Figura 2.1). Fiind date dou mulimi de entiti, E1 i E2, se definesc
urmtoarele asocierile binare:
Asocierea unu-la-unu (one-to-one) este asocierea n care unei entiti din mulimea E1 i
coreaspunde o singur entitate din mulimea E2, i reciproc; se noteaz cu 1:1.
Asocierea unu-la-multe (one-to-many) este asocierea n care unei entiti din mulimea E1
i coreaspund una sau mai multe entiti n mulimea E2, dar unei entiti din E2 i corespunde
o singur entitate n mulimea E1; se noteaz cu 1:N.
E1
Asocierea multe-la-multe (many-to-many) este asocierea n care unei entiti din mulimea
E1 i coreaspund una sau mai multe entiti n mulimea E2, i, de asemenea, unei entiti din
E2 i corespund una sau mai multe entiti n mulimea E1; se noteaz cu M:N.
(a) E2
E1
(b)
E2
E1
(c) E2
utilizator (operator) obine informaiile dorite (drepturile salariale ale unui angajat, etc) reprezint o
aplicaie de baze de date.
Modelul Entitate-Asociere, introdus n 1976 de P.S. Chen, este un model conceptual de nivel nalt
al bazei de date, care conine mulimile de entiti i asocierile dintre ele, dar nu presupune nici un mod
specific de gestiune a datelor. Acest model este folosit pentru dezvoltarea unui model conceptual al bazei
de date (de tip ierarhic, reea, relaional sau orientat pe obiecte) corespunztor unui anumit sistem de
gestiune a datelor.
n proiectarea bazelor de date se consider dou categorii de entiti:
Entiti obinuite (puternice, normale, regular entities)
Entiti slabe (dependente, weak entities).
Entitile normale au o existen proprie n cadrul modelului, n timp ce entitile slabe nu pot
exista dect dac exist o entitate normal (puternic) cu care sunt asociate. De exemplu, entitatea
DEPENDENT poate s reprezinte o persoan care depinde de un angajat al unei instituii (adic se afl n
ntreinerea acestuia). Entitatea ANGAJAT este o entitate puternic, deoarece ea exist n mod mod normal
n modelul activitii instituiei, n timp ce o entitate DEPENDENT este o entitate slab: nu se va nregistra
o astfel de persoan dect dac printele acesteia este angajat n acea instituie.
2.3.1 Diagrama Entitate-Asociere
Modelul Entitate-Asociere se reprezint printr-o diagram, numit diagrama Entitate-Asociere,
care conine mulimile de entiti i asocierile dintre acestea. Exist numeroase variante de notaii pentru
redarea diagramei E-A. Una dintre cele mai folosite notaii reprezint un tip de entitate (precum i
mulimea de entiti de acel tip) printr-un dreptunghi, iar atributele tipului de entitate prin elipse conectate
(printr-o linie continu) ca aceasta. Pentru entitile puternice se utilizeaz un dreptunghi ncadrat cu o linie
simpl, iar pentru entitile slabe se utilizeaz un dreptunghi ncadrat cu linie dubl (Figura 2.2).
O asociere dintre dou sau mai multe mulimi de entiti se reprezint printr-un romb conectat prin
link-uri (linii continue, formate din unul sau mai multe segmente) la tipurile de entiti asociate. O asociere
poate s aib sau nu un nume; dac are un nume, acesta poate fi nscris n rombul respectiv sau n
vecintatea acestuia. Tipul asocierii se noteaz prin nscrierea multiplicitii pe fiecare link care conduce la
un tip de entitate. Este posibil ca o asociere s prezinte ea nsi atribute, i aceste atribute se reprezint prin
elipse conectate la asocierea respectiv.
Nume entitate
Nume entitate
Atribut
Nume
atribut
E1
E2
Nume
Buget
Nume
Prenume
Salariul
Nume
Termen
Lucreaz la
SECTIE
ANGAJAT
PROIECT
Intreine
DataInceperii
N
DEPENDENT
Nume
Varsta
GradRudenie
Durata
Buget
FACULTATE
FACULTATE
PROFESOR
PROFESOR
NOTA
(a)
STUDENT
STUDENT
(b)
d) Modelul E-A nu precizeaz modul cum sunt realizate asocierile ntre mulimile de entiti. Acest
aspect depinde de modelul de date specializat, utilizat pentru definirea modelului conceptual al bazei de
date. De exemplu, n modelele ierarhic i reea, asocierile sunt realizate explicit, prin link-uri (arce) de la o
entitate la entitile asociate, n timp ce n modelul relaional asocierea se realizeaz prin valorile unor
atribute comune ale mulimilor de entiti (chei).
2.3.2. Ierarhii de tipuri de entiti
Modelul E-A prezentat n capitolul precedent este suficient pentru modelarea aplicaiilor de baze
de date "tradiionale", adic bazele de date utilizate pentru activiti financiare i industriale. Dup anii
1970, domeniile n care se folosesc baze de date au devenit tot mai numeroase, ca de exmplu,
telecomunicaiile, proiectarea tehnologic, sistemele de informaii geografice, seviciul WWW, etc. Tipurile
de entiti definite n astfel de baze de date sunt mult mai complexe i pentru reprezentarea lor ct mai
intuitiv i mai compact au fost propuse numeroase concepte noi, iar modelul E-A a fost extins, pentru a
ngloba aceste noi concepte.
Tipuri-subtipuri. n modelul E-A extins se pot defini subtipuri de entiti, care reprezint
specializri ale unor tipuri de entiti, i se pot defini, de asemenea, ierarhii pe mai multe nivele de tipuri i
subtipuri de entiti. Este evident analogia dintre ierarhiile de tipuri de entiti din modelul E-A. i
ierarhiile de clase din modelul orientat pe obiecte.
Se pot folosi dou modaliti de definire a ierarhiilor de tipuri: specializarea i generalizarea.
Specializarea este un proces de abstractizare a datelor prin care, pornind de la un tip de entitate
dat, se definesc unul sau mai multe subtipuri, difereniate ntre ele n funcie de rolul pe care l au n
modelul de date.
De exemplu, de la tipul de entitate ANGAJAT se definesc subtipurile SECRETARA,
TEHNICIAN, INGINER. Acestea motenesc toate atributele tipului iniial i fiecare dintre ele are n plus
atribute suplimentare, specifice rolului lor. Din nou, se poate observa analogia cu motenirea i ierarhiile de
clase din modelul obiect, dar n modelul E-A ierarhia tipurilor se reprezint prin asocierea dintre tipul de
entitate iniial i subtipurile acestuia, pe unul sau mai multe nivele.
n Figura 2.5 este reprezentat diagrama E-A care definete tipul de entitate ANGAJAT i
subtipurile acestuia (SECRETARA, TEHNICIAN, INGINER), iar ierarhia tipurilor i a subtipurilor este
reprezentat prin asocierile dintre acestea.
Nume
Prenume
DataNasterii
Adresa
Salariul
ANGAJAT
1
SECRETARA
TEHNICIAN
INGINER
VitezaRedactare
GradCalificare
Specialitatea
SECRETARA
ANGAJAT
s1
a1
s2
a2
TEHNICIAN
a3
t1
a4
t2
a5
INGINERI
t3
a6
i1
a7
i2
a8
i3
ANGAJAT
SECIE
Numr
Nume
Buget
1*
Nume
Prenume
DataNasterii
Adresa
Salariul
PROIECT
1*
1*
Nume
Prenume
DataNasterii
Adresa
1*
DEPENDENT
Nume
Varsta
GradRudenie
SECRETARA
TEHNICIAN
INGINER
VitezaRedactare
GradCalificare
Specialitatea
Corespondena dintre modelul E-A i modelul obiect este destul de evident. Un tip de entitate
din modelul E-A corespunde unei clase n modelul obiect, o entitate corespunde unui obiect, iar mulimea
de entiti de un tip dat corespunde tuturor instanierilor de obiecte din clasa respectiv.
n UML o clas se reprezint printr-un deptunghi cu trei compartimente: n primul compartiment
(cel mai de sus) este nscris numele clasei; n compartimentul urmtor sunt nscrise atributele clasei (care
sunt atributele pe care le prezint orice obiect instan a clasei), iar n ultimul compartiment sunt nscrise
metodele clasei, care reprezint operaiile care pot fi aplicate obiectelor. n UML se admit i notaii mai
puin detaliate, n care sunt reprezentate numai unul sau dou din compartimentele unei clase.
n reprezentarea UML a unei diagrame E-A, un tip de entitate se reprezint prin compartimentul de
nume i compartimentul de atribute; metodele nu sunt specifice diagramelor E-A.
Asocierile (relationships) ntre tipurile de entiti din diagramele E-A sunt numite (tot) asocieri
(associations) n UML i se reprezint prin link-uri (legturi) ntre clase.
O asociere binar de tipul 1:N sau M:N ntre dou tipuri de entiti din modelul E-A corespunde
unei asocieri binare de acelai tip n modelul obiect, reprezentat printr-un link ntre cele dou tipuri de
entiti. Link-ul este marcat cu numele (opional) al asocierii i prin multiplicitatea fiecrui tip de entitate n
cadrul asocierii, marcat la captul corespunztor al link-ului, cu o singur valoare (de exemplu 1) sau n
forma (minmax); un asterix (*) nseamn nici-o limit superioar a participarii n asociere.
n UML, o asociere n care o entitate este pus n coresponden cu entiti care sunt pri
constituente ale acesteia se numete agregare (aggregation), deci agregarea este corespondena ntre
"ntreg" i prile acestuia. O agregare se reprezint printr-un link de asociere marcat cu un indicator de
agregare, un romb plasat la captul link-ului din vecintatea tipului de entitate care reprezint "ntregul". n
modelul obiect i n limbajul UML agregrile sunt intens utilizate, dar n diagramele E-A agregarea se
utilizeaz numai pentru asocierea unui tip de entitate slab cu tipul de entitate puternic de care depinde.
Ierarhiile de tipuri din diagrama E-A, reprezentate prin asocieri de tipul 1:1, corespund ierarhiilor
de clase (motenirilor) din modelul obiect, care se reprezint n UML printr-un link cu o sgeat
direcionat ctre superclas.
Proiectul conceptual de nivel nalt al unei baze de date (diagrama E-A) poate fi dezvoltat
independent de un SGBD anume, ca un proiect pe hrtie sau dezvoltat pe baza unor instrumente software
de proiectare vizual. De obicei ns, SGBD-urile (n special SGBD-urile relaionale) pun la dispoziie
instrumente mai mult sau mai puin "prietenoase" de proiectare a bazelor de date, n care se poate dezvolta
proiectul conceptual. De exemplu, Access ofer o interfa vizual de proiectare a relaiilor
(corespunztoare tipurilor de entiti) i a asocierilor dintre acestea. La fel, SQL Server permite proiectarea
vizual a relaiilor, iar Oracle Developer 2000 adaug faciliti grafice de proiectare pentru SGBD Oracle.
n Access, relaiile i asocierile sunt reprezentate n "diagrama de asocieri" (Relationships), care
este corespondentul relaional al diagramei Entitate-Asociere. n aceast diagram relaiile se reprezint
asemntor tipurilor de entiti n notaie UML, printr-un dreptunghi cu dou compartimente,
compartimentul de nume i compartimentul de atribute. Dat fiind c n modelul relaional singurele asocieri
posibile ntre relaii sunt asocierile binare de tip 1:1 sau 1:N, diagrama de asociere mai conine, n afar de
relaii, doar link-uri de asociere marcate cu 1 (la captul dinspre relaia cu multiplcitate 1) i cu (la
captul dinspre relaia cu multiplicitate > 1). Diagrame de asociere asemntoare se pot dezvolta i in SQL
Server i Oracle Developer.
2.4. Modele de date specializate
La proiectarea unei bazei de date se stabilete schema conceptual a acesteia, conform modelului
specializat de date ales, prin dou seturi de reguli:
Un set de reguli de structurare a datelor, care exprim proprietile statice ale modelului. n
SGBD, aceste reguli sunt exprimate prin limbajul de definire a datelor (LDD).
Un set de reguli de manipualare (operaii) a datelor, care reprezint proprietile dinamice
ale modelului. n SGBD, aceste reguli sunt exprimate prin limbajul de manipulare a datelor
(LMD). Prin operaiile prevzute n LMD nu se poate modifica organizarea datelor, ci numai
valori particulare ale acestora.
n continuare se vor prezenta pe scurt primele (din punct de vedere istoric) modele de date
specializate: modelul ierarhic i modelul reea. Modelul relaional va fi studiat n majoritarea cursului, iar
modelele post-relaionale (modelul obiect i modelul obiect-relaional) vor fi analizate ulterior prin
comparaie cu modelul relaional. Prezentarea modelului ierarhic i a modelului reea se face mai cu seam
pentru a nelege ulterior ce a adus nou modelul relaional, care este de departe modelul cel mai folosit n
realizarea bazelor de date n momentul de fa.
2.4.1. Modelul de date ierarhic
Modelul de date ierarhic a fost primul model folosit pentru proiectarea bazelor de date. Cea mai
cunoscut realizare de SGBD ierarhic este sistemul IMS (Information Management System) dezvoltat de
firma IBM n cadrul programului de cercetri Apollo. Dei acest model este depit, se mai pstreaz unele
aplicaii de baze de date n model ierarhic.
Modelul conceptual al unei baze de date ierarhice se definete printr-un arbore direcionat, compus
din mai multe nivele, n care sunt reprezentate tipurile de entiti i asocierile dintre acestea. Tipurile de
entiti constitue nodurile arborelui, iar asocierile dintre tipurile de entiti sunt reprezentate prin arce ntre
noduri. Fiecare nod (cu excepia nodurilor frunz) are unul sau mai multe arce ctre noduri de pe nivelul
imediat inferior (ctre nodurile fii) i fiecare nod (cu excepia nodurlui rdcin) are un singur arc ctre un
nod de pe un nivel superior (nodul parinte). n Figura 2.8(a) este prezentat arborele de definiie
corespunztor diagramei E-A din Figura 2.4(a).
FACULTATE
f1
FACULTATE
f2
f3
PROFESOR
PROFESOR
p1
p2
p3
STUDENT
STUDENT
s1
s2
(a)
s1
s3
s2
s3
(b)
Figura 2.8. Baz de date ierarhic
(a) Arborele de definiie al bazei de date ierarhice. (b) Asocierea ntre entiti.
Asocierile 1:1 i 1:N se reprezint simplu ntr-o astfel se structur: o entitate (dintr-un nod aflat pe
un anumit nivel al arborelui) se poate asocia prin link-uri cu una sau mai multe entiti de pe nivelul
imediat inferior. Entitile sunt reprezentate prin nregistrri, iar link-urile care realizeaz asocierile sunt
vectori de adrese (pointeri) ctre entitile fii, memorai explicit n entitatea printe.
Asocierile M:N sunt mult mai greu de reprezentat, datorit structurii de definire de tip arbore i se
realizeaz prin multiplicarea entitilor din nodurile fii atunci cnd sunt referite de mai multe entiti din
nodul parinte, ceea ce conduce la o mare redundan a datelor memorate. n figura 2.7(b) este prezentat un
exemplu de asocieri ntre entiti.
n modelul ierarhic nu se pot rezolva dect acele interogri pentru care au fost prevzute n mod
explicit asocieri prin arcele arborelui. n plus, n modelul ierarhic apare o puternic asimetrie n rezolvarea
interogrilor. De exemplu, la interogarea Care sunt studenii care studiaz cu profesorul p1? rspunsul se
obine relativ uor, prin explorarea subarborelui corespunztor entitii p1. n schimb, interogarea Care
sunt profesorii care predau studentului s1, se rezolv mult mai greu. Este necesar explorarea subarborilor
tuturor profesorilor i reinerea acelora care au n subarbore entitatea s1. Cele dou interogri sunt
echivalente la nivelul semantic, dar au o complexitate de rezolvare diferit, datorat asimetriei de
reprezentare a entitilor i a asocierilor.
Avantajele modelul ierarhic sunt simplitatea i eficiena de calcul, dar acestea nu sunt suficiente
pentru ca acest model s mai fie utilizat, n condiiile existenei altor modele mult mai performante.
2.4.2. Modelul de date reea
Aprut dup modelul ierarhic, modelul de date reea de structurare a bazelor de date a fost
standardizat n 1971, de o comisie DBTG (Database Task Group).
Modelul reea folosete o structur de graf pentru definirea tipurilor de entiti i a asocierilor ntre
acestea. La fel ca i n modelul ierarhic, nodurile grafului reprezint tipurile de entiti, iar muchiile
grafului reprezint n mod explicit asocierile dintre tipurile de entiti.
Deosebirea fa de modelul ierarhic const n aceea c asocierile M:N se reprezint fr duplicarea
entitilor, fiecare entitate putnd fi adresat de mai multe entiti. n acest fel redundana datelor este
redus, iar interogrile devin simetrice.
La fel ca i la modelul ierarhic, dezavantajul principal al modelului reea este acela c fiecare
interogare trebuie s fie prevzut nc din faza de proiectare, prin introducerea link-urilor necesare n
graful de reprezentare. n plus, complexitatea reprezentrii datelor n modelul reea este deosebit de
ridicat, iar programatorul trebuie s o cunoasc pentru a putea realiza aplicaiile necesare.
n momentul de fa nu se mai utilizeaz modelul de date reea pentru baze de date de uz general
(baze de date care suport interogri), dar mai exist unele domenii n care structurarea ca graf a datelor
permite o parcurgere eficient. Un exemplu reprezentativ de baze de date cu structura reea sunt bazele de
date grafice, folosite n modelarea scenelor tridimensionale din realitatea virtual.
10