Sunteți pe pagina 1din 19

BAZE DE DATE

Prin
baz de date nelegem o colecie de date elementare i
interdependente, structurate i organizate astfel nct s fie accesibile unei
comuniti de utilizatori. Bazele de date sunt concepute pentru a prelucra volume
mari de date.
Organizarea datelor n unul sau mai multe fiiere stocate n memoria extern
este n concordan cu aceast definiie.
Din pacate, utilizarea direct a fiierelor are mai multe dezavantaje precum:
acces dificil la date - n practic, pentru accesarea fiecarui fi ier
trebuie scris un program, n plus orice modificare a structurii
fiierului presupune modificarea tuturor programelor care l folosesc.
lipsa de securitate - ntruct orice programator poate accesa direct
fiierele, este imposibil s se garanteze securitatea i integritatea
datelor.
ntr-un mediu n care mai muli utilizatori acceseaz acelea i fi iere
apar probleme de concuren greu de rezolvat.

Prin urmare, devine necesar utilizarea unui software specializat,


responsabil cu gestionarea fiierelor bazei de date, u urarea rezolvrii aspectelor de
securitate i de furnizare de diferite tipuri de interfe e necesare pentru a accesa
datele.
Acest software complex poart denumirea de Sistem de Gestiune a Bazelor
de Date (SGBD) i reprezint sistemul de programe care permite construirea
bazelor de date, introducerea informaiilor n bazele de date i dezvoltarea de
aplicaii privind bazele de date. Conceptul de Sistem de Gestiune a Bazelor de
Date (SGBD) se regsete cu aceeai denumire i semnificaie n terminologia
francez (SGBD - Systeme de Gestion de Bases de Donnees) i englez (DBMS DataBase Management System).
Conceptul de baz de date a aprut n 1964 n cadrul primului raport
CODASYL1 prezentat la lucrrile unei conferine pe probleme de limbaje de
gestiune a datelor Development and Management of Computer centered datebase. La aceast conferin a fost lansat ideea organizrii datelor prin
intermediul unui fiier de descriere global, numit dicionar de date care are
menirea de a asigura independena programelor fa de date i a datelor fa de
programe2.
Baza de date conine nu numai datele operaionale ale organizaiei, ci i o
descriere a acestora. De aceea ea este definit i ca o colecie autodescris de
nregistrri integrate. Aceast descriere a datelor este cunoscut sub denumirea de
catalog de sistem sau dicionar de date sau meta-date (date despre date).
Natura autodescriptiv a bazelor de date este cea care determin
independena program-date.
Accesul utilizatorilor la informaiile despre structura unei baze de date se
realizeaz prin intermediul dicionarului de date.
Sistemul de gestiune a bazelor de date constituie o interfa ntre utilizatori
i baza de date i asigur urmtoarele funciuni:
1. Descrierea structurii bazei de date: a fiecrui tabel, a relaiilor
dintre tabele, a restriciilor n reprezentarea informaiilor etc. cu
ajutorul unui limbaj de descriere a datelor LDD.
LDD este utilizat att pentru proiectarea bazelor de date ct i
pentru redefinirea lor.
2. Operaii asupra datelor aflate n baza de date:

introducerea iniial a datelor

adugarea de noi date


COnference on DAta SYstems Languages Conferina despre Limbajele Sistemelor de
Date
2
Lungu, I., .a., Baze de date, Organizare, proiectare i implementare, Editura All,
Bucureti, 1995, p.13
1

modificarea unor date existente pentru a le pune n


acord cu realitatea

tergerea unor date devenite inutile


Aceast functiune este realizat cu ajutorul unui limbaj de
manipulare a datelor LMD.
3. Interogarea bazei de date, adic extragerea unor informaii stocate
n aceasta, realizarea de statisci asupra datelor etc. cu ajutorul unui
limbaj de cereri LC
4. Administrarea i protecia bazei de date - ansamblul de

proceduri necesare asigurarii integritii i securitii datelor.


Diferite modele de baze de date
Exist mai multe modele de baze de date, diferen iate n func ie de
reprezentarea datelor pe care le conine:
Modelul ierarhic: Datele sunt clasificate ierarhic ntr-o structur de tip
arbore. Acest model folosete pointeri ntre nregistrri. Acesta a fost primul model
de SGBD

Modelul de reea: ca si modelul ierarhic acest model foloseste pointeri la


nregistrri. Structura sa nu este neaprat arborescent.

Modelul relaional: datele sunt stocate n tabele bidimensionale (formate din


rnduri i coloane). Manipularea acestor date are loc n conformitate cu teoria
matematic a relaiilor.

Modelul deductiv: datele sunt reprezentate n form tabelar, dar


manipularea lor se face prin calculul predicatelor.
Modelul orientat pe obiecte: datele sunt stocate ca obiecte, adic structuri
numite clase de date cu membri.

Baze de date XML: unitatea fundamental de stocare este documentul XML


i nu nregistrarea. XML (eXtensible Markup Language) este un limbaj generic
bazat pe marcatori (taguri). Limbajul este considerat a fi extensibil deoarece
permite utilizatorilor s i defineasc propriile elemente. XML a fost creat n
principal pentru a facilita schimbul de date ntre diferite aplicaii prin intermediul
Internetului,.
Bazele de date relaionale reprezint cel mai frecvent tip de baze de date
utilizat.
Niveluri i modele de reprezentare a datelor n baze de date
n demersul realizrii unei baze de date exist trei niveluri de percepie a
acesteia:
- extern, corespunztor utilizatorilor, care i exprim cerinele
informaionale prin aa - numitele scheme externe (subscheme);
- conceptual, aferent proiectanilor bazei de date, care se
concretizeaz n schema conceptual;
- intern, corespunztor programatorilor, care realizeaz
reprezentarea datelor pe suportul fizic.

Vzut prin prisma celor trei niveluri, baza de date poate fi reprezentat ca
n figura urmtoare.3
Utilizator A1

Utilizator A2

Aplicaie

Comenzi
autonome

Schema
extern A

Utilizator B2

Aplicaie

Comenzi
auto nome

Schema
extern B

Imagine A
(nivel extern)
INTERFAA A

Schema conceptual
(global)

Utilizator B1

Imagine B
(nivel extern)

INTERFAA B

Imagine global
(nivel glo bal)

Sistem de
gestiune a
bazei de date

INTERFAA
Schema intern

...

BAZA DE DATE MEMORAT P E DISC

Nivele de abstractizare a datelor n bazele de date

Determinarea structurii unei baze de date se poate aborda ascendent,


realizndu-se descrierea schemelor externe, urmat de elaborarea schemei
conceptuale, sau descendent definind mai nti, schema conceptual i deducnd
ulterior schemele externe posibil de obinut.
Cel mai adesea, schema conceptual se obine pe baza schemelor externe,
prin eliminarea redundanelor i rafinarea acestora. Trecerea de la schema
conceptual la cea intern se face prin intermediul limbajelor de descriere a datelor,
care sunt incluse n SGBD-uri. Un model de date presupune un limbaj de descriere
a realitii, n timp ce o schem este o descriere a unei realiti dup un model dat.
Nivelul extern (schema extern)

Fotache, M., Baze de date relaionale. Organizare, interogare i normalizare, Editua


Junimea, Iai, 1997, p.32
3

La nivelul extern, fiecare grup de lucru care manipuleaz datele posed o


anumit descriere a acestora numit schem extern. Aceast descriere corespunde
felului n care grupul vede baza de date n programele lui de aplicaii. Prin urmare
nivelul extern reflect mulimea datelor care prezint interes pentru un utilizator
sau pentru un grup de utilizatori.
Exist aadar, mai multe scheme externe, fiecare schem extern
presupune utilizarea unei pri din baza de date, folosind informaiile ntr-un mod
bine determinat. Aceast parte de informaie se numete vedere. Fiecrei vederi i
corespunde un grup de utilizatori. Pentru un grup particular se definesc tipurile de
cereri de informaii i modul de determinare a datelor din BD care formeaz
rspunsuri la aceste cereri. Un pas important n proiectarea unei BD este
determinarea vederilor i a claselor de utilizatori asociate lor. Vederile permit ca
aceleai date s fie privite din perspective diferite de diferii utilizatori.
Nivelul conceptual (modelul conceptual)

Nivelul conceptual este un nivelul central care structureaz datele astfel


nct acestea s poat fi preluate i prelucrate cu ajutorul unui SGBD.
Nivelul conceptual reprezint viziunea proiectanilor BD asupra datelor.
Modelul conceptual (schema conceptual) al datelor este esen ial pentru
buna dezvoltare a bazei de date. n msura n care baza de date este fundamentul
ntregului sistem, o proiectare greit a schemei conceptuale va induce n baza de
date anomalii dificil de remediat ulterior.
n practica proiectarii bazelor de date (n principal a bazelor de date
relaionale), la nivel conceptual, unul dintre modelele frecvent utilizat este modelul
Entitate-Asociere (E/A). Modelul Entitate-Asociere (E/A) denumit i model
Entitate-Relatie(E/R) a fost propus de Peter Pin-Shan Chen n 1976.
Modelul E/A este caracterzat prin a fi simplu dar suficient de puternic pentru
a reprezenta structuri relaionale. Mai presus de toate, acest model se bazeaz pe o
reprezentare grafic care faciliteaz foarte mult n elegerea.
Modelul E/A mparte elementele unui sistem real n dou categorii i anume
n entiti(agregri de date elementare) i n asocieri ntre entiti.
O entitate (sau tip entitate) este o grupare de obiecte cu caracteristici sau
proprieti similare. Entitile sunt reprezentate grafic prin dreptunghiuri.
O entitate este identificat printr-un nume(un substantiv) i descrie
proprietile obiectelor pe care le reprezint, numite atribute ale entit ii.
Exemple de entiti: student, profesor, curs, angajat, produs, utilaj, factura.
Un atribut se definete ca fiind o proprietate a unei entiti sau a unei
asocieri. Fiecare atribut care a fost selectat la definirea unei entiti este o
caracteristic semnificativ pentru domeniul studiat.
Exemplu:
ANGAJAT
Marca
Nume
Prenume
Data naterii
CNP

Denumirea entitii
Identificatorul entitii
Atribute

Un atribut poate fi simplu, cnd poate lua o singur valoare, sau repetitiv
cnd poate lua mai multe valori(exemple: Limbi straine cunoscute, numar telefon).
Exist atribute care necesit valori nule fapt care trebuie s fie luat n
considerare la proiectarea bazei de date.
Entitatea reprezint un tip de obiecte. Fiecare obiect individual constituie o
realizare(sau instan) a entitii.
n cadrul unei entiti nu pot exista dou realizri(instane) identice. Fiecare
entitate trebuie sa conin un atribut sau un grup de atribute care identific n mod
unic instanele entitii. Acesta este denumit identificatorul(cheia) entitii i
servete drept cheie primar n viitoarea baz de date.
Exist dou tipuri de identificatori naturali i artificiali.
Un identificator natural este alctuit dintr-un atribut sau un grup de atribute
cu semnificaie real pentru entitatea n cauz. De exemplu, combinaia Nume,
Prenume, Data naterii este un identificator natural pentru entitatea Angajat.
Un identificator artificial este alctuit dintr-un atribut sau un grup de atribute
fr semnificaie real pentru entitatea n cauz, fiind folosit doar pentru a face
distincie ntre instanele entitii. Exemple CNP, Marca, Numr inventar.
n reprezentarile grafice identificatorii entitilor se noteaza subliniat.
Regula minimalitii identificatorilor: n cazul identificatorilor compui,
trebuie s nu existe un subgrup al su care s poat ndeplini rolul de identificator,
adic numrul de elemente componente ale identificatorului s fie minim. Aceasta
se poate asigura prin verificarea dependenelor funcionale dintre componentele
identificatorului respectiv.
Asocierile modeleaz interdependenele dintre clasele de obiecte
reprezentate de entiti. Sunt luate n considerare doar interdependenele necesare
aplicaiei de proiectat, n lumea real putnd exista ntre entitile analizate i alte
asocieri care nu sunt semnificative pentru aplicaie. O asociere poate avea atribute
proprii.
Asocierile sunt reprezentate uzual prin verbe i grafic prin linii ntre entit i.
Asocierile pot fi binare (ntre 2 entiti) sau n-are (ntre n entiti, n>2).
O caracteristica foate importanta a asocierilor este cardinalitatea. Acesta
exprima modul de participare al instanelor fiecarei entitati la asociere, mai concret
cardinalitatea ne arat la cte asocieri poate participa o instan a unei entit i .
Fiind date dou entiti, E1 i E2, se definesc urmtoarele asocierile binare:
Asocierea unu-la-unu (one-to-one) este asocierea n care unei
instane a entitii E1 i coreaspunde cel mult o instan a entitii E2,
i reciproc; se noteaz cu 1:1.
Asocierea unu-la-multi (one-to-many) este asocierea n care unei
instane a entitii E1 i coreaspund zero, una sau mai multe instane

ale entitii E2, dar unei entiti din E2 i corespunde cel mult o
instan a entitii E1; se noteaz cu 1:N.
Asocierea multi-la-multi (many-to-many) este asocierea n care unei
instane a entitii E1 i coreaspund zero, una sau mai multe instane
ale entitii E2, i, de asemenea, instane a entitii E2 i coreaspund
zero, una sau mai multe instane ale entitii E1; se noteaz cu N:N.

Aceste valori reprezint cardinalitatea maxim a asocierii. O asociere este


caracterizat i de o cardinalitate minim care indic obligativitatea participrii
instanelor la asociere.
Cardinalitatea minim zero: pot exista instane ale entitii care nu
particip la nici o realizare a asocierii.
Cardinalitatea minim unu: toate instanele entitii trebuie s participe la
asociere.
Rolul unei entiti este un nume care desemneaz modul de participare al
entitii la o asociere. Identificarea asocierilor se realizeaz prin rolurile entitilor
participante deci, concret, cu ajutorul identificatorilor entitilor participante.
Exemple:
Cardinalitate maxim

ANGAJAT
CNP
Nume
Prenume
Data naterii
Adresa

DEPARTAMENT
LUCREAZA

1, 1
lucreaza la

Data ncadrarii

Cod departament

Adresa departament
Cardinalitate minim
rol

STUDENT

rol

Atribut al asocierii

CURS

Cod student
Nume
Prenume
Data naterii

1, n

PARTICIPA

ANGAJAT
CNP
Nume
Prenume
Data naterii
Adresa

0, n

loc munca Denumire departament

Cod curs
0, n Denumire curs
Nr.puncte credit

DEPARTAMENT

0, 1

CONDUCE
Data numirii

0, 1 Cod departament
Denumire departament
Adresa departament

In determinarea asocierilor trebuie s se in seama i de posibilitatea


existenei asocierilor complexe (ntre mai mult de dou entiti). De exemplu, fie
entitile FURNIZOR, MATERIAL, DEPOZIT i asocierile binare
corespunztoare. Aceste asocieri permit s se determine furnizorii materialelor,
materialele intrate n depozite respectiv furnizorii ce aprovizioneaz depozitele. Nu
se poate determina ce furnizor aprovizioneaz cu un anumit material un anume
depozit. Introducerea asocierii aprovizionare ntre entitile FURNIZOR,
MATERIAL i DEPOZIT permite rezolvarea cererii ce furnizor aprovizioneaz cu
un anumit material un anume depozit?.

FURNIZOR

0, n

0, n

MATERIAL

aprovizionare

0, n
DEPOZIT

Asociere
complex

Cazuri speciale de entiti i asocieri


Subentitate-Superentitate. n modelul E-A se pot defini subtipuri de entiti
denumite i subentiti, care reprezint specializri ale unor tipuri de entiti
denumite superentiti, i se pot defini, de asemenea, ierarhii pe mai multe nivele
de tipuri i subtipuri de entiti.
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 o entitate dat, se definesc una sau mai multe subentiti, 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 subentitile
INGINER, ECONOMIST, MUNCITOR. Acestea motenesc toate atributele
tipului iniial dar au n plus atribute suplimentare, specifice rolului lor.
ANGAJAT
CNP
nume si prenume
adresa

0,1
1,1
INGINER
Specializare

0,1

0,1

1,1
ECONOMIST
Calificare

10

1,1
MUNCITOR
Meserie

Intre subentitate i superentitate exist ntotdeauna o asociere de tip1,1:0,,


semnificnd faptul c o instan a unei subentiti este asociat cu o singur
instan a entitii de baz i reciproc.
O subentitate se reprezint ntr-un dreptunghi inclus n dreptunghiul care
reprezint superentitatea corespunztoare.
ANGAJAT
CNP
nume si prenume
adresa
INGINER

ECONOMIST

Specializare

Calificare

MUNCITOR
Meserie

Generalizarea este procesul de abstractizare invers specializrii, prin


care se creaz un supertip de entitate pornind de la mai multe tipuri de
entiti. Pentru aceasta se identific atributele comune ale mai multor tipuri
de entiti i aceste atribute vor caracteriza superentitatea, iar atributele care
difer de acestea rmn atribute specifice ale fiecrui tip.

11

De exemplu, dac au fost definite tipurile de entiti: AUTOMOBIL (Marca,


VitezaMaxima, Pret, NumarPasageri) i CAMION (Marca, VitezaMaxima, Pret,
Tonaj), se poate defini un supertip al acestor tipuri: VEHICUL (Marca,
VitezaMaxima, Pret), care cuprinde toate atributele comune, iar tipurile
AUTOMOBIL i CAMION devin subtipuri ale tipului VEHICUL, fiecare
coninnd atributele specifice (NumrPasageri pentru tipul AUTOMOBIL i Tonaj
pentru tipul CAMION).
Rezultatul obinut prin generalizare este, ca i n cazul specializrii, o
ierarhie de tipuri i subtipuri de entiti, iar asociearea dintre mulimile
corespunztoare este tot o asociere 1:1. Ceea ce difer n generalizare fa de
specializare, este doar modul n care se definesc nivelele ierarhiei.
Specializarea poate fi total(instanele superentitii aparin unei subentiti)
sau pariala(pot exista instane ale superentitii care s nu aparin nici unei
subentiti). Generalizarea, fiind prin definiie gruparea de entit i deja existente n
baza de date nu poate fi dect total.
Intre subtipuri poate exista o excluziune, ceea ce se traduce prin faptul ca o
anumita instan nu poate apartine decat unei singure subentiti. Exista insa si
cazuri n care aceeai instan aparine mai mulor subtipuri. De exemplu un angajat
al unei universitai poate fi i student la frecven redus. Pentru astfel de situaii
trebuie precizate dup caz relaii de excluziune, incluziune, etc.
Introducerea de subtipuri prin specializare sau prin generalizare prezint
dou avantaje principale: favorizeaz proprietile comune la nivelul tipului
(superentitii) i face mult mai clar reprezentarea unor tipuri de asocieri la care
particip numai o parte dintre entiti.
Asocieri reflexive

12

Pot exista asocieri i intre o entitate i ea insi, acestea se numesc asocieri


reflexive sau recursive.
Muncitor
subordonat

Sef echipa
conduce

Etapele obinerii modelului Entitate-Asociere


1) Identificarea entitilor sistemului
2) Identificarea atributelor i a identificatorilor entit ilor
3) Identificarea asocierilor ntre entiti
4) Identificarea atributelor proprii asocierilor
5) Stabilirea cardinalitilor
6) Trasarea diagramei
Nivelul intern

13

Nivelul intern este nivelul elementar la care pot fi considerate datele i se


refer la modul n care sunt stocate datele pe suporturi magnetice. La acest nivel
structura datelor este foarte detaliat. Nivelul intern cuprinde structurile de date i
organizrile fiierelor utilizate pentru stocarea datelor pe dispozitivele de stocare.
El trateaz probleme cum ar fi: alocarea spaiului de stocare pentru date i
indexuri, descrierile nregistrrilor pentru stocare, cu dimensiunile de stocare
pentru articolele de date, plasarea nregistrrilor, tehnicile de comprimare i de
codificare a datelor. Nivelul intern interacioneaz cu metodele de acces al
sistemului de operare (tehnici de administrare a fiierelor, pentru stocarea i
regsirea nregistrrilor de date) pentru a plasa datele pe suporturile de stocare, a
regsi datele, a realiza indexurile.
Includerea n baza de date a descrierii structurii acesteia o deosebete
calitativ de fiierele de date, deoarece prin aceasta se asigur independena datelor
din baz fa de programele de aplicaii i invers. Posibilitatea modificrii structurii
la un nivel, fr a afecta structura celorlalte niveluri este ntlnit sub numele de
independena datelor, prezent sub dou forme:

independena fizic de date, adic posibilitatea modificrii structurii


bazei de date la nivel intern (cum ar fi utilizarea unor organizri ale fiierelor sau
structuri de stocare diferite, a unor dispozitive diferite de stocare, modificarea de
indexuri sau de algoritmi hash), fr a fi necesar schimbarea structurii
conceptuale i rescrierea programelor de prelucrare a datelor. Asemenea
modificri sunt necesare pentru ameliorarea performanelor de lucru (vitez de
acces, mrimea fiierelor etc.). Autonomia fizic este cea care asigur i
portabilitatea bazei de date de pe un sistem de calcul pe altul fr modificarea
schemei conceptuale i a programelor;

independena logic de date se refer la faptul c modificarea


schemei conceptuale a bazei de date (cum ar fi adugarea sau eliminarea unor
entiti, atribute sau relaii) nu necesit i modificarea schemei externe sau
rescrierea programelor de aplicaii.
Este important s se fac distincie ntre descrierea bazei de date i baza de
date nsi. Descrierea bazei de date constituie schema bazei de date. Ea este
specificat n timpul procesului de proiectare a bazei de date i este schimbat
rareori. Setul de date din baza de date se numete instana bazei de date. Mai multe
instane ale bazei de date pot corespunde aceleiai scheme a bazei de date.

14

Modelul relaional al datelor

Modelul relaional al datelor a fost conceput i dezvoltat de


Edgar Frank Codd (19232003, informatician american de origine englez)
la nceputul anilor 1970 i cuprinde trei componente principale: structura
datelor, integritatea datelor i prelucrarea datelor.
Structura datelor
In modelul relaional al datelor sunt definite no iunile de atribut, domeniu,
relaie, schema relaiei, schema relaional.
Un atribut este un identificator(un nume) ce descrie o informatie memorat
n baza de date.
Domeniul unui atribut este o mulime de valori posibile. Aceste valori sunt
de tip similar.
O relaie este o submulime a produsului cartezian a n domenii ale
atributelor(n>0).
Elementele unei relaii se numesc tupluri.
Intr-o relaie nu sunt permise tupluri identice.
Relaiile sunt reprezentate sub forma tabelelor bidimensionale n care fiecare
rnd reprezint un tuplu i fiecare coloan(atribut al rela iei) reprezint valorile
actuale ale tuplurilor dintr-un domeniu al produsului cartezian. Tabelele formeaz
structura logic a modelului relaional.
La nivel fizic, sistemul utilizeaz diverse tehnici de stocare (fi iere
secveniale, indexate, tabele de dispersie, compresia datelor, pointeri etc). Tabelele
reprezint o abstractizare a datelor nregistrate fizic n memorie.
Gradul (aritatea) unei relaii este dat de numrul de atribute.
Pentru o relaie(tabel), pot exista trei tipuri de chei(identificatori):
cheie candidat un ansamblu minimal de atribute(coloane) eventual un
singur atribut care permite identificarea fr echivoc a fiecrui
tuplu(rnd) al relaiei(tabelului).
cheie primar. Pentru fiecare relaie se alege o cheie candidat care va fi
desemnat ca fiind cheia primar a relaiei. Celelalte chei candidat, daca
exist, poart denumirea de chei alternante. Atributele care compun cheia
primar nu pot avea valoarea Null (valoare convenional pentru situa ia
n care valoarea unui atribut este necunoscut sau neaplicabil).

15

cheie strin un ansamblu de atribute(eventual un singur atribut) al


unei relaii R care n acelai timp este cheie primar sau alternant n alt
relaie S, nu neaprat distinct de R i care respect regula integrit ii
refereniale(RIR) adic valorile cheii strine, dac nu sunt null, se
regsesc printre valorile cheii primare (candidat)ale rela iei S.

Schema relaiei precizeaz numele relaiei, lista de atribute cu domeniile lor


i cheia primar a relaiei.
Schema relaional este compus din
menionarea cheilor strine.

mulimea schemelor relaiilor cu

De exemplu, pentru relaiile COMANDA i CLIENT urmatoare:

cheie primar
avem
relaional:

urmtoarea

cheie strain

23

CLIENT
NumeClie
nt
Marius

AdresaClie
nt
Pitesti

24
25

Bogdan
Radu

Pitesti
Bucuresti

schem
CodClient

COMANDA(NrComanda,
#CodClient)

CLIENT(CodClient, NumeClient, AdresaClient)


Integritatea datelor
Este dat de corectitudinea informaiilor coninute n baza de date i
presupune detectarea, corectarea i prevenirea diferitelor erori. Condi iile de
integritate nu permit introducerea n baza de date a unor date aberante.
Exist constrngeri(reguli) de integritate la nivel de domeniu care privesc
anumite valori pentru atribute, constrngeri la nivel de tuplu i constrngeri
multituplu- combinaii de mai multe tupluri, constrngeri legate de cheile candidat
(unicitatea valorilor cheii i pentru cheia primara, excluderea valorilor nule),
constrngeri legate de cheia strin (necesitatea existen ei unei valori apar innd
cheii primare din relaia asociat care s coincid cu valoarea cheii strine nenul
(RIR)).

16

Prelucrarea datelor
Are la baz algebra relaional bazat pe o colec ie de operatori ce au ca
operanzi relaii. Rezultatul aplicrii unui operator la una sau dou rela ii(n func ie
de aritatea acelui operator) este tot o rela ie.
Sunt cinci operaii de baz care pot fi aplicate rela iilor: reuniunea, diferen a,
produsul cartezian, proiecia i selecia.
Algoritm de transformare a modelului Entitate-Asociere n model relaional.
1 O entitate devine o relaie(tabel)
2 Un atribut al unei entiti devine atribut al rela iei corespunztoare(coloan n
tabel). Identificatorul entitii devine cheie primar a rela iei.
E1
IdE1
Atribut1
Atribut2

Atributn

RE1(IdE1, Atribut1, Atribit2,, Atributn)

3. O asociere, n funcie de tipul su, va fi reprezentat fie printr-o rela ie special


(tabel asociativ) fie printr-o cheie strin ntr-una din cele dou rela ii care face
referire la cheia primar a celeilalte rela ii.
3.1 Asocierile maximale 1:1 se rezolv prin intermediul cheii strine.
Cheia strin va fi plasat n funcie de cardinalitatea minim.
-Pentru cardinalitatea minim 1:0 cheia strin va fi plasat n relaia
cu cardinalitatea minim 1.

E1
IdE1

1,1

0,1

E2
IdE2

RE1(IdE1, #IdE2, )
RE2(IdE2, )
-Pentru cardinalitatea minim 0:0 cheia strin va fi plasat n relaia cu mai puine
tupluri.
-Pentru cardinalitatea minim 1:1 cheia strin va fi plasat n oricare rela ie.

17

3.2
Asocierea maximal 1:n se rezolv prin intermediul cheii strine. Cheia
strin va fi plasat n relaia de partea 1 a asocierii.
E1
IdE1
Atribut1
Atribut2

Atributn

E2
IdE2

1,1

Asociere
Atribut_A1
Atribut_A2

0,n

E1(IdE1, Atribut1, Atribut2, , Atributn, #IdE2, Atribut_A1, Atribut_A2 )


E2(IdE2, ..)
3.3 Asocierea maximal n:n se transform ntr-o relaie nou, un tabel asociativ
care conine dou chei strine corespunztoare celor dou tabele asociate. Cheia
primar a tabelului asociativ este compus din cele dou chei strine plus eventual
alte coloane adiionale.
Exemplificare:
Se dorete realizarea unei aplicaii cu baze de date pentru eviden a vnzrilor
produselor unei firme. Produsele se vnd ctre clien i prin intermediul facturilor.
Se consider urmtoarea colecie (simplificat) a datelor :
NrFactura, DataFactura, CodClient, NumeClient, AdresaClient, CodProdus,
DenumireProdus, Cantitate, Pret unitar.
Reguli de gestiune:
O factur este emis pentru un client
Unui client i pot fi emise mai multe facturi
O factur face referire la mai multe produse
Un produs este obiectul mai multor facturi
S se realizeze modelul conceptual i modelul relaional al datelor.
Rezolvare:
Entitile sistemului sunt:
Factura, Client, Produs.
Entitatea Factura este caracterizat prin atributele NrFactura i DataFactura.
NrFactura reprezint identificatorul entit ii.
Entitatea Client este caracterizat prin atributele CodClient, NumeClient,
AdresaClient. CodClient reprezint identificatorul entitii.
Entitatea Produs este caracterizat prin atributele CodProdus, DenumireProdus,
Pret. CodProdus reprezint identificatorul entitii.
Intre entitile Client i Factur exist asocierea <<solicit>> de cardinalitate n:1.

18

Intre entitile Factur i Produs exist asocierea <<facturare>> de cardinalitate


n:n i cu atributul specific cantitate.
Modelul conceptual al sistemului analizat este urmtorul:

CLIENT

FACTURA

CodClient
NumeClient
Adresa

NrFactura
Data

1, 1

Solicit

0, n

1,n

PRODUS
CodProdus
Denumire
Pret

0,n

Facturare

Cantitate

Prin aplicarea algoritmui de transformare a modelului Entitate-Asociere n model


relaional obinem urmtorul model relaional:
CLIENTI (CodClient, NumeClient, Adresa),
FACTURI (NrFactura, Data, #CodClient),
PRODUSE (CodProdus, Denumire, Pret),
DETALIIFACTURI (#NrFactura, #CodProdus, Cantitate)

19

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