Sunteți pe pagina 1din 28

DD 1

Modelarea datelor
Modelarea datelor
Modele de date, scheme si instante Modele de date, scheme si instante
Definitie: Se defineste modelul modelul datelor datelor ca ca un set de un set de concepte concepte ce ce poate poate
fi fi utilizat utilizat in in descrierea descrierea structurii structurii datelor datelor. Prin structura structura bazei bazei de date de date
se intelege tipul datelor, legatura dintre ele, restrictiile ce trebuiesc
indeplinite de date.
O arhitectura de date asociata unei baze de date poate fi
reprezentata pe trei niveluri, avind ca scop separarea aplicatiilor
utilizatorului de baza de date propriuzisa.
Nivel
2
DD
Nivel
extern Grup 1 . Grup n
Nivel
conceptual Schema conceptuala
Nivel Schema interna
intern
Mediul de stocare
Modelarea datelor
Arhitectura pe trei niveluri:
Nivelul Nivelul fizic fizic numit numit si si nivel nivel intern intern sau sau nivel nivel de de stocare stocare materializat
prin baza de date stocata fizie pe mediul de stocare adecvat. Acest
nivel este gestionat de catre SGBD privind tablespace si blocuri
aferente stocarii tabelelor.
Nivelul Nivelul conceptual conceptual sau schema conceptuala descrie structura
intregii baze de date pentru o comunitate restransa de utilizatori. La
nivelul conceptual se face o descriere completa a bazei de date,
ascunzind detaliile legate de stocarea fizica, concentrandu-se
asupra descrierii entitatilor, tipurilor de date, relatiilor dintre ele,
precum si a restrictiilor asociate. Acest nivel se ocupa si de
3
DD
precum si a restrictiilor asociate. Acest nivel se ocupa si de
obiectele aditionale aferente bazei de date (indesci, triggeri,
proceduri tocate etc). Apel la facilitatile SGBD.
Nivelul Nivelul extern extern sau nivelul vizual (utilizator), include o colectie de
scheme externe ce descriu baza de date prin prisma diferitelor
grupuri de utilizatori. Fiecare grup utilizator vede baza de date prin
prisma propriilor interese si perspective. Baza de date este partajata
fiecare grup avand acces numai la anumite sectiuni., anumite detalii
fiind ascunse.
Modelarea datelor
Caracteristici ale arhitecturii pe trei niveluri:
Independenta fizica a datelor. Nivelul conceptual este independent
de nivelul fizic astfel ca o schimbare la nivelul fizic nu afecteaza
perceptia datelor la nivel logic
Independenta logica a datelor. Modelul conceptual nu afecteaza
nivel extern, grupurile de utilizatori au aceeasi perceptie a datelor si
nu influienteaza partajarea datelor la nivelul grupurilor
Pentru modelarea datelor se parcurg urmatoarele etape:
Colectarea cerintelor etapa in care se colecteaza cerintele de la
grupurile de utilizatori pentru a identifica datele ce trebuie memorate
si prelucrarile ce trebuie efectuate. Cerintele sunt exprimate sub
forma de text;
Elaborarea modelului Entitate Asociere (EA) sau model Entitate
Relatie (ER). Modelul surprinde entitatile si asocierile dintre acestea.
Modelul EA este o diagrama
Realizarea schemei relationale. Definirea structurii relatiilor conform
algebrei relationale.
Modelarea datelor 4
DD
Exemplu Exemplu proiectare proiectare
Colecatrea cerintelor pentru constructia unei baze de date aferenta
unei companii, numita COMPANIE.
Compania are un numar de angajati organizati pe departamente, si
urmareste realizarea unor activitati numite generic proiecte. Pentru
fiecare angajat se pastreaza in baza numele, atribuitul de
identificare (cod numeric personal - cnp), informatii specifice de
personal (adresa, salariul, functie, sex, data de nastere etc). Orice
angajat este afiliat unui singue departament, dar poate lucra la mai
multe proiecte ce nu sunt neaparat coordonate de acelasi
5
DD
multe proiecte ce nu sunt neaparat coordonate de acelasi
departament. Trebuie sa se cunoasca numarul de ore alocate
saptaminal pentru fiecare proiect la care lucreaza. O parte dintre
angajati au un lider de grup numit si supervizor.
Compania este organizata in departamente, fiecare departament are
un nume, si grupeaza un numar de angajati (minim 6), putind avea
mai multe sedii.
Un departament coordoneaza cel putin un proiect, dar poate
coordona oricate.
Angajatii pot avea persoane in intretinere ce influienteaza valoarea
deducerilor la calculul impozitului.
Modelarea datelor
Entitati, atribute, relatii
O entitate este reprezentata de un obiect real sau conceptual, cu o
existenta independenta. O entitate poate fi un obiect cu existenta
fizica (ex: persoana, automobil, companie, activitate, curs
universitar, etc) sau un obiect conceptual (ex: teoreme, leme etc).
Orice entitate este caracterizata de o serie de proprietati numite si
atribute atribute ce identifica o instanta a entitatatii respective. De exemplu,
pentru o entitate angajat se pot enumera o serie de atribute cum sint
nume, adresa, data nasterii, sex, salariu.
6
DD
nume, adresa, data nasterii, sex, salariu.
Exemple de instante ale entitatilor:
e1={Nume=Vasile Ionescu, Adresa=Dreptatii - 211, Sector 6, Virsta
= 40, Telefon=6621311}
e2={ Nume=U.P.B., Sediu=Splaiul Independentei - 313, Rector=
George Darie}
Modelarea datelor
Caracteristici atribute:
Atribut compus. Unele atribute pot fi impartite in componente cu
semnificatie independenta (cu semantica). Un astfel de atribut se
numeste atribut compus. Un exemplu este cel al atributului adresa,
ce poate fi subdivizat in atributele componente: Oras, Judet, Cod
postal, Strada.
Atributele ce nu sint compuse se numesc atribute atomice.
Valoarile atributelor compuse se obtin prin concatenarea valorilor
atributelor atomice.
7
DD
atributelor atomice.
Multe atribute au valoare unica pentru o entitate particulara si sint
numite atribute cu o singura valoare. Spre exemplu virsta unei
persoane. Exista atribute ce pot lua mai multe valori dintr-un set finit,
ca de exemplu gradele didactice intr-o universitate, culoarea unui
automobil, etc. Acestea sunt atribute cu mai multe valori.
Atributele derivate sint atributele ce se pot determina din relatiile ce
exista intre ele ca de exemplu, virsta unei persoane ce se poate
determina din data curenta si data de nastere.
Modelarea datelor
O baza de date este constituita in mod uzual din grupe de entitati.
Fiecare angajat este caracterizat de aceleasi atribute, dar fiecare
entitate angajat va avea un set propriu de valori ce il caracterizeaza.
Entitatile ce sint caracterizate de aceleasi atribute se numesc entitati
tip. Pentru entitatea tip ANGAJAT avind atributele Nume, Virsta,
Salariu, se dau mai jos ca exemplu doua entitati particulare.
e1(Popescu Vasile, 43, 3880)
e2(Dumitriu Petre, 32, 3240)
Descrierea atributelor entitatii tip este numita schema entitatii
Uzual, o entitate tip contine un atribut ce are valori distincte pentru
8
DD
Uzual, o entitate tip contine un atribut ce are valori distincte pentru
fiecare instanta individuala. Acest atribut este numit atrtibut cheie,
iar valorile sale pot fi utilizate pentru identificarea in mod unic a
entitatilor componente.
O cheie poate fi formata si din mai multe atribute, avind proprietatea
ca prin combinarea valorilor acestora se obtine un set de valori
distinct.
In general atribuitele se impart in:
Atribute de identificare identifica instanta
Atribute de descriere specifica proprietatile instantei
Modelarea datelor
Pentru a se distinge, atributele compuse vor fi reprezentate intre
paranteze. Se poate face prima descriere a entitatilor pentru baza
de date COMPANIE
O entitate tip DEPARTAMENT avind atributele Nume, Numar,
Locatie (Sediu), Manager, Data de la care are aceasta functie.
Entitatea tip PROIECT cu atributele Nume, Numar, Locatie,
Departamentul ce coordoneaza proiectul, cu atribut cheie oricare
dintre Nume sau Numar.
Entitatea tip ANGAJAT cu atributele nume, cnp, marca, serie_ci,
numar_ci, sex, data nasterii, adresa, salariu, departament si
supervizor. Atributele nume si adresa pot fi vazute ca atribute
9
DD
supervizor. Atributele nume si adresa pot fi vazute ca atribute
compuse.
O entitate tip INTRETINUT cu atributele angajat, nume, sex, data de
nastere, tip relatie (referitor la relatia dintre angajat si persoana
aflata in intretinere).
In aceasta incercare de definire nu s-a tinut cont de faptul ca un
angajat poate sa lucreze la mai multe proiecte, nu apare in acest
caz indicat numarul de ore pe saptamina alocate unui anumit
proiect.
Obs: In aceasta incercare nu s-a precizat ca manager este o asociere
intre un angajat si departamentul pe care il conduce.
Modelarea datelor
Relatii intre entitati
O relatie intre n entitati tip E1,E2,...,En este o asociatie intre entitatile
tip.
O relatie instanta ri este un membru al relatiei tip si statueaza o
asociere intre instante ale entitatilor tip. De exemplu relatia
LUCREAZA_PENTRU intre entitatile tip ANGAJAT si DEPARTAMENT
asociaza fiecare angajat cu departamentul pentru care acesta lucreaza.
Se defineste rangul sau gradul unei relatii tip ca numarul entitatilor tip
participante la relatie.
Daca relatia se stabileste intre elementele aceleiasi entitati se spune ca
10
DD
Daca relatia se stabileste intre elementele aceleiasi entitati se spune ca
s-a stabilit o relatie recursiva. Ca exemplu, relatia SUPERVIZOR se
stabileste intre angajati si supervizor, relatie in care ambele instante
sunt membrii al aceleiasi entitati.
Restrictii (metrici)
Restrictia de cardinalitate este marcata de numarul relatiilor instanta la
care o entitate poate sa participe. Se simbolizeaza prin (m:n)
Restrictia de participare specifica o conditie de existenta a unei relatii.
Pot exista restrictii de participare partiala sau totala.
Modelarea datelor
Model E-R
Modelul pentru BD Companie
Ini Nume
Ssn Numar Nume
Pren Nume Loc
Adresa
Salariu (1.1) (6.N)
ANGAJAT Lucreaza DEPARTAMENT
Sex (0.1)
(1.1) (1.n)
Dat_n (0.1) (1.n) Manager
11
DD
Modelarea datelor
Dat_n (0.1) (1.n) Manager
Ore
Supervisor (0.n) (1.n) Control

Relatie Lucreaza_la
(1.1) (1.n) (1.1)

Nume INTRETINUT Nume PROIECT

Relatie Dat_n Numar
Sex Loc
MEMORAREA DATELOR, ORGANIZARE MEMORAREA DATELOR, ORGANIZARE
Mediul de stocare poate fi impartit in doua categorii:
stocarea primara priveste acel mediu asupra caruia se poate opera
direct de catre unitatea centrala.
stocarea secundara se refera la toate mediile externe de
memorare, cum sunt discul magnetic, banda magnetica, disc optic,
caracterizate de capacitate mare, cost redus, dar cu un timp de
acces mult mai mare decit memoria interna.
Justificarea stocarii externe a BD:
12
DD
Justificarea stocarii externe a BD:
volum prea mare pentru a fi stocate in memoria primara;
datele sunt persistente dupa intreruperea sursei de alimentare,
adica au caracter permanent;
costul pe unitatea de informatie este mult mai mic;
poate asigura transportabilitatea intre mai multe masini
Modelarea datelor
Detalii suport stocare disc magnetic:
Informatia este stocata pe suprafata discului pe cercuri concentrice
cu diametre distincte numite piste (track). La discurile compactate
pistele de aceeasi raza formeaza un cilindru.
Fiecare pista este impartita in mai multe blocuri, ce apartin unui
sector. Marimea unui bloc este cuprinsa uzual intre 512 si 4096
octeti functie de sistemul de operare aferent. Separarea blocurilor se
face in spatii de lungime fixa prin gap interbloc, ce contine informatii
speciale de control scrise in momentul initializarii discului.
Orice referire la informatiile stocate pe disc este facuta la nivel de
13
DD
Orice referire la informatiile stocate pe disc este facuta la nivel de
bloc. Adresa blocului este obtinuta prin combinarea numarului
suprafetei, numarului pistei (intr-o suprafata) si numarului blocului (in
cadrul unei piste).
Accesul la informatiile de pe disc se face prin citirea unui bloc si
aducerea acestuia in memoria principala intr-o zona contigua numita
si buffer.
Cand mai multe blocuri se transfera in sau din memoria interna,
utilizarea mai multor buffere face ca viteza de transfer sa creasca.
Modelarea datelor
Tipuri de inregistrari:
Inregistrari cu lungime fixa
Inregistrari cu lungime variabila
14
DD
In general, un bloc contine mai multe inregistrari, dar pot exista
inregistrari ce incep intr-un bloc si se termina in alt bloc, functie de
dimensiunea inregistrarii.
Modelarea datelor
Daca se noteaza numarul de octeti ai unui bloc cu B, si cu R
numarul de octeti ai unei inregistrari (valabil doar pentru
inregistrarile de lungime fixa), numarul inregistrarilor ce pot fi stocate
intr-un bloc va fi dat de realtia:
bfr = [B/R] in care,
bfr - reprezinta numarul de inregistrari pe bloc (blocking factor rate)
[x] - reprezinta functia parte intreaga.
In general R nu divide pe B, deci, daca nu sint inregistrari ce trec
dintr-un bloc in altul, in fiecare bloc folosit ramine un spatiu neocupat
de B-(bfr*R) octeti.
15
DD
de B-(bfr*R) octeti.
Posibilitati de alocare a blocurilor:
Alocarea contigua sau consecutiva a blocurilor
Alocarea cu legaturi este metoda caracterizata de existenta unor
pointeri de inlantuire a blocurilor.
Alocarea indexata utilizeaza unul sau mai multe blocuri index ce
contin pointeri la blocurile cu inregistrarile de date.
Modelarea datelor
Metode de cautare
1. Cautare liniara (secventiala) - inregistrare cu inregistrare
2. Cautare dihotomica cu segmentare doar pentru tabele ordonate
dupa criteriul de acces.
Metode de cautare cu segmentare:
Cautare binara. Se considera o tabele secventiala cu N
inregistrari, ale carui chei sint in ordine crescatoare k1 < k2 <....<
kN, cautarea avind ca scop gasirea inregistrarii cu cheia k.
Cautare binara uniforma
16
DD
Cautare binara uniforma
Cautare Shar (nod radacina [log
2
n)]
Cautare Fibonacci (nod radacina cel mai mare numar Fibonacci
perfect mai mic decat n)
Alte tehnici (HASH)
Pointer = functie_hash(camp_hash) si indica grupul in care se
gaseste inregistrarea.
Utilizata atat la stocare cat si la citire
Nu are ordine fizica
Modelarea datelor
Hash
Grup1
Grup2
Grup3
Grupuri initiale (date de
valorile functiei hash)
17
DD
Grup n
Overflow 1
Overflow k
Grupuri overflow
Modelarea datelor
Indecsi
Index structura aditionala de date pentru facilitarea accesului
Tipuri:
Index primar. Un index primar este realizat pe baza unui atribut
cheie la o tabela ordonata dupa campul cheie.
Indexul secundar este construit dupa un camp cheie al tabelei de
date, insa tabela nu este ordonata dupa acest camp
Index de grup. Daca cmpul de indecsare nu este un camp cheie,
putand avea pentru mai multe inregistrari aceeasi valoare structura
aditionala de acces poarta denumirea de index de grup (clustering
18
DD
aditionala de acces poarta denumirea de index de grup (clustering
index). La o tabela de date se pot construii oricate structuri de index
de grup functie de atributele utilizate pentru constructia sa.
Index multinivel atunci cand indexul se trateaza similar cu o tabela
la care se construieste index in continuare. Exista mai multe tehnici
de implementare: arbori B, arbori B+.
Obs. Trebuie inteleasa diferenta majora intre indexare si sortare.
Indexarea este o metoda de acces logic pe cand sortarea se refera
la reorganizarea tabelei si duce la o alta ordine fizica.
Modelarea datelor
Index primar
Un index primar este un exemplu de index nondens datorita faptului
ca are cate o intrare pentru fiecare bloc, fata de indexul dens ce
asociaza cate o intrare pentru fiecare inregistrare a tabelei de date.
Este posibil intrucat tabela de date este ordonata.
Indexul primar necesita mai putine blocuri pentru stocare datorita
faptului ca:
asociaza cate o singura inregistrare unui bloc de date;
o inregistrare index ocupa mult mai putini octeti decit o inregistrare a
19
DD
o inregistrare index ocupa mult mai putini octeti decit o inregistrare a
tabelei de date. Ca efect, cautarea prin intermediul indexului este
mult mai rapida decat intr-o tabela de date, putind fi utilizate si
metode de cautare binara.
o inregistrare pentru care valoarea cheii primare este k se gaseste
in blocul i daca este indeplinita conditia k(i)<=k<k(i+1). Adresa
blocului i este P(i) si inregistrarile din acest bloc sunt ordonate fizic
dupa cimpul cheie.
Modelarea datelor
Exemplu de index primar
TABELA DE DATE
Nume Ssn . Dep_nr
Fisier index Abrudan
Cheie Pointer
ancorare bloc
Acosta
20
DD
Acosta
Abrudan
Adam Adam
Vovc
Vovc
Modelarea datelor
Index secundar
TABELA DE DATE
Dep_nr Nume Ssn .
Fisier index 5
Cheie Pointer 2
ancorare bloc 1
102
1
2 31
21
DD
2 31
3 1042
4 3
5 312
1042
513
4
Modelarea datelor
Index de grup (cluster) Index de grup (cluster)
Astfel de indexi sint folositi cind inregistrarile tabelei de date sint
ordonate fizic dupa un cimp noncheie, sau neordonate dupa un
camp noncheie.
Tabela ordonata
TABELA DE DATE
Dep_nr Nume Ssn .
Fisier index 1
22
DD
Fisier index 1
Cheie Pointer 1
ancorare bloc 1
2
1
2 2
3 3
4 3
5 4
102
102
Modelarea datelor
Tabela nordonata
TABELA DE DATE
Dep_nr Nume Ssn .
Fisier index 1
Cheie Pointer 21
ancorare bloc 3
7
23
DD
7
1
3 3
7 21
21
23
1234
3
Modelarea datelor
Index multinivel (arbori B, arbori B+) Index multinivel (arbori B, arbori B+)
TABELA DE DATE
Dep_nr Nume Ssn .
Top index Index 1
Cheie Pointer nivel 1 21
ancorare bloc 22
1 7
1 3
24
DD
1 3
21 4 3
7 4
21
22
1032
Modelarea datelor
Arbori B
Un arbore B de ordin p, construit dupa un cimp cheie al fisierului index
satisface urmatoarele restrictii:
1. Fiecare nod intern in arborele B are structura
<P1,<K1,Pr1>,P2,<K2,Pr2>,...,<Kq-1,Prq-1>,Pq>
cu q<=p, in care, Pi este un pointer la un nou nod arbore numit si
pointer arbore pointer arbore, pointerii Pri fiind pointeri data pointeri data, pointeri catre blocuri in
tabela de date ce contin inregistrarea cu cheia k.
2 In fiecare nod K1<K2<....<Kq-1
Valoarea inregistrarii cu cheia X in subarborele punctat de Pi este data
25
DD
Valoarea inregistrarii cu cheia X in subarborele punctat de Pi este data
de conditiile Ki-1<X<Ki pentru 1<i<q, X<Ki pentru i=1 si Ki-1<X
pentru i=q
4. Fiecare nod are cel mult p pointeri arbore
5. Fiecare nod exceptind radacina si nodurile frunza au cel putin
[p/2] pointeri arbore. Nodul radacina are cel putin doi pointeri.
6. Un nod cu q pointeri arbore, q<=p, contine q-1 valori ale cimpului
de indexare, deci q-1 pointeri data
7. Toate nodurile frunza sunt la acelasi nivel, au aceeasi structura
exceptind faptul ca toti pointeri arbore Pi sint nuli.
Modelarea datelor
Arbori B+
1. Fiecare nod intern are structura
<P1,K1, P2,K2,...,Pq-1,Kq-1, Pq>
unde q<=p si fiecare Pi reprezinta un pointer arbore.
2. In fiecare nod este indeplinita conditia
K1<K2<....<Kq-1, q<=p
3. Pentru toate valorile cimpului de cautare X in subarborele punctat prin Pi
se indeplineste relatia
Ki-1<X=Ki pentru 1<i<q, X<=Ki pentru i=1 si Ki-1<X pentru i=q
4. Fiecare nod intern are cel mult p pointeri arbore.
5. Fiecare nod intern exceptind radacina are cel putin [p/2] pointeri arbore.
26
DD
5. Fiecare nod intern exceptind radacina are cel putin [p/2] pointeri arbore.
Nodul radacina are cel putin doi pointeri arbore daca este un nod intern si
q<=p pointeri data daca este nod frunza.
6. Un nod intern cu q pointeri, q<=p, are q-1 valori ale cimpului de cautare.
Pentru nodurile frunza sint indeplinite urmatoarele restrictii
1. Fiecare nod frunza este de forma
<<K1,Pr1>,<K2,Pr2>,...,<Kq-1,Pq-1>,Pnext>
unde q<=p, fiecare Pri este un pointer data si Pnext indica urmatorul nod frunza
al arborelui B+.
2. In fiecare nod frunza este indeplinita conditia
K1<K2<,...,<Kq-1, q<=p
Modelarea datelor
Arbore B+
< P
1
, K
1
, P
2
... , K
i-1
, P
i
, K
i
, .. , K
q-1
, P
q
, ... >
Index
X X X
-------- ----------- ----------
XK
1
K
i-1
<XK
i
K
q-1
<X
27
DD
< K
1
, P
r1
, K
2
... , K
i-1
, P
ri-1
, K
i
, .. , K
q-1
, P
rq-1
, P
nest
>
Pointer data Pointer spre nod frunza
Modelarea datelor
Arbore initial 5 o 8 o inserare 1
* 5 * inserare 3 si 7
1 o 5 o 8 o
28
DD
1 o 5 o 8 o
* 3 * 5 *
1 o 3 o 5 o 7 o 8 o
Modelarea datelor