Documente Academic
Documente Profesional
Documente Cultură
1
Sistem de gestiune a bazei de date
Baza de date
3
Cuvntul dat este de origine latin i provine de la verbul a da. n
limba englez, substantivul dat (date, la plural) se traduce prin datum
(data, la plural). Exemple de date sunt: cantitile de mere obinute anual
ntr-o livad de pomi fructiferi, activitile turistice propuse de ghid
participanilor la o excursie; modificrile climatice suferite de o regiune a
globului terestru de-a lungul unui numr de ani, cursul bancar al unei valute
de-a lungul unei luni sau a unui an calendaristic etc.
Exist o diferen esenial ntre date, informaii i cunotine:
1. datele sunt informaii primare care au fost doar culese i inregistrate;
2. informaiile sunt date prelucrate, structurate (validate, corectate,
organizate, sortate, relaionate);
3. cunotinele sunt informaii contextualizate.
Arhitectura sistemelor de gestiune a bazelor de date este puternic
determinat de modelul de date al bazelor de date. Dincolo de definiiile
date pn acum, ce este de fapt o baz de date? Este un obiect
(asemenea numerelor, funciilor, mulimilor)? Este o metod (asemenea
algoritmilor, procedurilor)?
Definiie Model =
= (n sens strict) un sistem teoretic sau material cu ajutorul cruia pot fi
studiate indirect proprietile i transformrile unui alt sistem, mai complex,
cu care primul sistem prezint o analogie;
= (n sens larg) ceea ce poate servi ca orientare pentru reproduceri (un
tipar). (cf. DEX)
4
Lume real
a
5
personal specializat n organizarea de expoziii, restaurare, organizare de
cursuri (de specialitate sau de iniiere).
Propunei mai multe modele pentru activitile unui muzeu.
1
E.F. Codd este considerat a fi "printele" conceptului de model de date, n
general, i al conceptului de model de date relaional, n particular.
6
1.3.2. Modele de date: perspectiv istoric
Evoluia modelelor de date pentru bazele de date i SGBD-uri a fost
sugestiv sintetizat de R.G.G. Canttell n articolul su "What Are Next-
Generation DB Systems?", publicat n revista Communications of the ACM,
n octombrie 1991: "Istoria informaticii a cunoscut multe generaii de
sisteme de gestiune a datelor, ncepnd cu sistemele de fiiere indexate,
continund apoi cu sistemele de tip ierarhic i de tip reea, iar mai nou
cu sistemele relaionale. Acum suntem pe punctul de a intra ntr-o nou
generaie de sisteme de gestiune a bazelor de date care ofer administrare
de obiecte, i care accept tipuri de date mult mai complexe".
Cu toate c a generat o activitate de cercetare foarte susinut dar i
o activitate practic, industrial extrem de productiv, domeniul bazelor de
date este unul dintre cele mai tinere domenii ale informaticii. Este general
acceptat faptul c "rdcinile" sale trebuie cutate aproximativ acum 40 de
ani2 n obiectivul fixat de Preedintele J.F. Kennedy pentru programul
Apollo: aducerea primului om pe Lun pn la sfritul anilor '60. In acel
moment nu exista nici un instrument informatic care s funcioneze efectiv
i care s poat administra uriaele volume de date implicate n programul
spaial. Ca urmare, North American Aviation (NAA) primul contractor al
proiectului, a dezvoltat un software bazat pe o structur ierarhic (prile se
agreg n componente din ce n ce mai ample) denumit GUAM
(Generalized Update Access Method). Spre mijlocul anilor '60, IBM s-a
alturat NAA dezvoltnd n continuare GUAM i producnd unul dintre
primele sisteme comerciale de gestiune a bazelor de date: IMS
(Information Management System). IBM a preluat modelul ierarhic pentru
a respecta cerina de stocare a datelor pe benzi magnetice (deci n acces
secvenial). Ulterior, aceast restricie a fost nlturat i IMS continu s
fie principalul SGBD ieirarhic utilizat de majoritatea calculatoarelor
mainframe3.
Construirea bazelor de date a cunoscut o evoluie foarte rapid,
trecnd prin mai multe abordri, clasificate dup cum urmeaz:
sistemele de fiiere;
sistemele prerelaionale (sau "istorice"4): ierarhic i reea,
sistemul relaional;
sistemele postrelaionale: orientat obiect i hibrid (obiect-relaional);
sistemele semantice: multi-dimensional i logic (deductiv).
2
Data apariiei primului sistem comercial de gestiune a bazelor de date
3
Un calculator mainframe este un calculator cu capacitate de memorie i vitez de
lucru foarte mari, utilizat de marile corporaii pentru a stoca volume foarte mari de
date i pentru a coordona sute sau mii de terminale (inclusiv calculatoare
personale) conectate la el. Operarea unui mainframe necesit de obicei un
personal specializat.
4
numite i navigante sau tradiionale (legacy systems)
7
1.3.2.1. Modelele prerelaionale
Pot fi caracterizate ca modele de moment: au oferit soluii pentru
problemele vremii lor dar nu au avut un fundament teoretic puternic i
riguros.
(I.) Sistemul de gestiune bazat pe fiiere, considerat de fapt un
predecesor al sistemelor de gestiune a bazelor de date, este o colecie de
programe care realizeaz fiecare cte "un serviciu" pentru utilizatorii
datelor (de obicei: generarea de rapoarte). Fiecare program i definea i
i administra propriile date. Chiar dac a avut numeroase dezavanataje
(abordarea descentralizat n stocarea informaiilor, gradul mare de
redundan i dependen program-date), sistemul de gestiune bazat pe
fiiere a constituit un salt semnificativ fa de fiierele administrate manual:
saltul de la abordarea informaional la cea informatic.
(a) (b)
Facultate
9
Desfurare
Curs Examen
Locaie
Inscriere
Activitate didactic
Facultate
Student
Predare
10
Edgar Frank Codd5 (de la IBM Research Laboratory): "A Relational Model
of Data for Large Shared Databanks". n acest articol, autorul aplica o serie
de concepte din algebra relaional pentru a rezolva problemele legate de
stocarea volumelor mari de date i enuna "celebrele" 12 reguli (condiii) pe
care trebuie s le ndeplineasc un SGBD pentru a fi declarat relaional.
S amintim ns existena unui precursor: modelul bazat pe teoria
mulimilor, propus de D.L. Childs n articolul su: "Feasability of a Set-
Theoretical Data Structure", aprut n 1968 n Proc. Fall Joint Computer
Conference.
Cele mai importante prototipuri de sisteme de gestiune a bazelor de
date de tip relaional au fost:
System R, dezvoltat la San Jose Research Laboratory din California
spre sfritul anilor '70. Acest model a condus la:
o apariia unui limbaj structurat de interogare a bazelor de date: SQL,
o producerea mai multor SGBD-uri relaionale comerciale: DB2 i
SQL/DS de la IBM i, respectiv, ORACLE de la Oracle Corporation
(n deceniul 9 al secolului trecut);
INGRES (Interactive Graphics Retrival System), dezvoltat la
Universitatea Berkeley din California;
Peterlee Relational Test Vehicle, dezvoltat la IBM UK Centre din
Peterlee, Marea Britanie.
Numrul sistemelor relaionale comerciale a ajuns acum la cteva
sute, dintre care cele mai cunoscute sunt: DB2 (de la IBM), Ingres II (de la
Computer Associates International Inc.), Oracle 8i (de la Oracle
Corporation), Ms Access, FoxPro (de la Microsoft), Paradox, Visual
dBase (de la Borland), Sybase Adapted Server (de la Sybase Inc.).
Succesul acestui model continu s fie att de mare nct multe sisteme
nerelaionale ofer acum i o interfa cu utilizatorii de tip relaional,
indiferent de modelul de date pe care se bazeaz de fapt.
12
1.3.2.3. Modelele postrelaionale
Chiar dac se regsete n descrierea unor situaii reale, cu o
organizare intrinsec piramidal, modelul ierarhic i-a atins rapid limitele. La
fel, modelul relaional a devenit impropriu pentru rezolvarea unor probleme
din realitatea nconjurtoare care presupun manipularea unor volume
uriae de informaie, a unei mari varieti de tipuri de date: hri
meteorologice sau geografice necesare previziunilor meteorologice sau
dirijrii traficului, imagini transmise prin satelit utilizate n msurarea
factorilor poluani, date neconvenionale pentru proiectarea asistat de
calculator n inginerie sau arhitectur, serii dinamice implicate n tranzaciile
bursiere sau bancare, stocarea obiectelor binare mari (BLOBs = Binary
Large Objects) necesare n digitalizarea informaiei coninut n fiierele
audio sau video. Au aprut astfel i s-au dezvoltat modelele postrelaionale,
de generaia a treia: modelul orientat obiect i modelul obiect-relaional.
(I.) Modelul orientat obiect permite inglobarea semanticii obiectelor celor
mai variate, la fel ca n limbajele de programare orientate-obiect. De altfel,
una dintre deosebirile majore fa de modelul relaional const n
distanarea de conceptul de independen fa de limbajele de programare
i dezvoltarea conceptului de integrare a limbajelor de programare n
sistemul de gestiune a bazei de date (invocarea unor funcii C++ mai
degrab dect inglobarea unui limbaj special pentru interogarea datelor, ca
de exemplu SQL). Acest fapt a fost determinat de:
utilizarea aproape exclusiv a limbajelor de programare orientate obiect
pentru dezvoltarea aplicaiilor software;
includerea n aproape orice aplicaie software a unei baze de date ca
element fundamental al acesteia.
Cele mai cunoscute prototipuri de baze de date orintate obiect sunt:
OPENOODB (de la Texas Instruments), IRIS (de la Hewlett Packard), iar ca
variant comercial: GEMSTONE/OPAL (de la GemStone Systems),
VERSANT (de la Versant Object Technology). Dei cu o cot de pia
semnificativ inferioar sistemului relaional (150 milioane dolari fa de 10
miliarde, numai n SUA n anul 1999), modelul orientat obiect este creditat
cu o cretere anual extrem de rapid: 50%.
n ciuda caracterului intuitiv i a altor avantaje evidente ale
modelului orientat obiect, modelul relaional continu s domine piaa
sistemelor de gestiune a bazelor de date. Motivele sunt numeroase:
fundamentarea matematic riguroas, simplitatea, volumul mare de date
deja stocate dup acest model i costul enorm al migrrii spre un model
complet diferit.
(II) Modelul hibrid extinde modelul relaional oferind un set de tipuri de
date mai bogat, i include i orientarea obiect. Se incearc astfel
combinarea avantajelor celor dou abordri: cea relaional i cea orientat
obiect. Astfel, atributele i instanele entitilor pot avea tipuri complexe i
pot evita unele dintre restriciile specifice modelului relaional. De exemplu,
13
n timp ce n modelul relaional fiecare atribut trebuie s ia pentru fiecare
instan a unei entiti o valoare i numai una din domeniul lui de definiie,
n modelul hibrid poate lua un subset de valori (de exemplu: pentru un
angajat oarecare, atributul Telefon poate lua ca valori numrul telefonului
fix de acas i de la servicu, al telefonului mobil propriu i de serviciu, dac
angajatul dispune de toate patru).
Cel mai cunoscut exemplu: Informix Universal Server care combin
tehnologiile relaionale i orientate obiect din dou produse preexistente:
Informix i Illustra.
Principalele avantaje i dezavantaje ale modelelor de date (i ale
sistemelor de gestiune a bazelor de date corespunztoare) au fost
sintetizate de M. Stonebraker prin diagrama din Figura 7 (vezi [18]):
modelul relaional permite realizarea chiar simultan a unor interogri
variate i rapide dar complexitatea datelor stocate nu difer prea mult de
complexitatea datelor memorate n baze de date de tip ierarhic sau reea;
cu modelul orientat obiect se poate stoca informaie variat i complex (de
la texte la sunete i imagini) dar viteza de interogare (n cazul imaginilor i
mai ales al sunetelor) este foarte sczut; modelul care pare s elimine
toate dezavantajele i s cumuleze toate avantajele modelelor anterioare
este modelul obiect-relaional.
Complexitatea datelor /
posibile extinderi
Figura 7: Clasificarea Stonebraker pentru
sistemele de gestiune a bazelor de date
14
CAPITOLUL 2: PROIECTAREA BAZELOR DE DATE
1.3. Arhitectura SGBD
Datele din baza de date pot fi descrise pe trei nivele: extern, conceptual i
intern:
Nivelul extern:
Schema Schema Schema
imaginea fiecrui
extern 1 extern 2 extern 3
utilizator asupra BD
Nivelul conceptual
(structura logic a BD): Schema
ansamblul datelor stocate conceptual
n BD i a relaiilor dintre
ele (fr detalii de
implementare)
Nivelul intern:
implementarea fizic a BD Schema
(structuri de date, intern
indexare, acces)
6
ANSI = American National Standards Institute
7
SPARC = Standards Planning and Requirements Committee
15
este descris reprezentarea fizic a bazei de date n calculator
(sunt specificate: spaiul de stocare a datelor, modul de stocare a
acestora, structurile de date, organizarea fiierelor etc.);
sunt utilizate funcii ale sistemului de operare pentru plasarea
datelor pe dispozitivele de stocare, pentru construirea indecilor,
pentru citirea datelor etc.;
Nivelul conceptual (nivelul logic) realizeaz trecerea de la nivelul intern
la nivelul extern i asigur independena acestora. Acest nivel:
grupeaz percepiile tuturor utilizatorilor bazei de date (deoarece
conine fiecare viziune (view) din nivelul extern, direct sau indirect);
conine structura logic a bazei de date descris prin conceptele de
entitate, atribut i relaie, constrngeri referitoare la date, informaii
de securitate i integritate;
descrie datele stocate n baza de date i relaiile dintre ele dar nu
conine detalii referitoare modul de stocare a datelor pe suportul
fizic (numrului de octei ocupai pe disc etc.).
Scopul arhitecturii pe cele trei nivele este acela de separare a percepiei
fiecrui utilizator individual aspura datelor de modul de reprezentare fizic a
acestora n baza de date. Figura 2 ilustreaz acest lucru reprezentnd
nivelul intern, nivelul conceptual i dou vederi corespunztoare la nivelul
extern: una aparinnd unui utilizator de PL/I, cealalt aparinnd unui
utilizator de COBOL.
ANGAJAT
COD_ANGAJAT CHARACTER (6)
COD_DEPARTAMENT CHARACTER (4)
SALARIU NUMERIC (5)
Nivel intern
STORED__ANG BYTES=20
PREFIX TYPE=BYTE(6), OFFSET=0
ANG# TYPE=BYTE(6), OFFSET=6, INDEX=ANGX
16
DEPT# TYPE=BYTE(4), OFFSET=12
SALAR TYPE=FULLWORD, OFFSET=16
Observaie
n timp ce nivelele extern i conceptual trebuie s urmeze acelai model
(relaional, orientat-obiect etc.), nivelul intern nu are nimic de a face cu
modelul de date al bazei - el constnd din nregistrri memorate, pointeri,
indeci etc.
Intr-o baza de date sunt necesare trei nivele de independenta a
datelor:
independenta fizica: asigura posibilitatea modificarii schemei fizice a
datelor fara ca aceasta sa oblige la modificarea schemei conceptuale,
schemei logice si a programelor de aplicatie.
independenta logica: asigura posibilitatea modificarii schemei
conceptuale a datelor fara ca aceasta sa oblige la modificarea
schemei logice si a programelor de aplicatie.
independenta fata de strategiile de acces: permite programului sa
precizeze data pe care doreste sa o acceseze, dar nu modul cum
acceseaza aceasta data. SGBD va stabili drumul optim de acces la
date.
Total__1000 RON__
18
Pas 2. identificm principalele entititi i relaii: (aici: teatrul are mai multe
Ateliere care vnd diferite tipuri de Produse unor Clieni sau le
achiziioneaz de la Furnizori)
Pas 3. identificm tipurile de relaii dintre entiti (aici: un tip de produs
este vndut unui client sau mai multor clieni iar un client cumpr unul sau
mai multe produse; analog un tip de produs este achiziionat de la un
furnizor sau de la diveri furnizori iar un furnizor ofer unul sau mai multe
produse; aceste operaii au loc conform unui deviz: apare astfel o nou
entitate: Devize)
Pas 4. identificm atributele entititilor i relaiilor dintre entiti (aici:
Denumire, Adres, Telefon, Sef atelier pentru entitatea Ateliere;
Denumire, Cantitate, PreUnitar pentru entitatea Produse; Denumire,
Adres, Persoana de contact att pentru entitatea Client ct i pentru
entitatea Furnizor; Data operaiei, Tipul operaiei (vnzare sau
achiziionare), Denumirea atelierului, Denumirea clientului/Furnizorului,
Denumirea produsului, Preul total pe tip de produs, Preul total al
produselor pentru entitatea Devize
Pas 5. identificm restriciile care trebuie respectate: (aici: pe un deviz pot
aprea fie produse vndute fie produse achiziionate; pe un deviz nu pot
aprea mai mult de 4 categorii de produse; un deviz se refer la produsele
vndute sau achiziionate la o aceeai dat calendaristic, de la sau ctre
acelai partener (client sau furnizor)
Pas 6. identificm operaiile de baz (aici: ordonarea clienilor sau
furnizorilor dup nume, selectarea clienilor sau furnizorilor cu cea mai
recent comand, calcularea trimestrial a totalului ncasrilor i respectiv
plilor efectuate etc.).
19
Figura 3 : O foaie de observaie
20
Lum rea
ea l
Adres Num
Num
a e
e
Elev Inva
Clasa
In
22
#5 Sarcin de lucru: "Arhimede": entitile i relaiile bazei de
date
Institutul "Arhimede" produce materiale didactice pentru coli. De exemplu,
departamentul su dedicat geometriei produce machete de figuri i corpuri
geometrice. Construii modelul conceptual al bazei de date a acestui
institut.
23
fizice de memorie; sunt descrise: structura memoriei i metodele de
accesare menite s asigure accesul eficient la informaii.
Schema
extern
Schema
conceptual
Schema
intern
Stocare
fizic
24
#6 Sarcin de lucru: "Hefaistos": un service auto;
de la sursa de date la implementare n Ms Access
Un service auto poate repara automobile, maini sport, vehicule de
teren, furgonete, microbuze, camioane i autocare.
a) Proiectai un formular cu ajutorul cruia eful fiecrui atelier de reparaii
(mecanic, electric, tinichigerie etc.) s nregistreze fiecare vehicul admis
pentru reparaii.
b) Preluai informaiile din formulare i construii cel
puin trei scheme pentru baza de date a service-ului.
c) Alegei una dintre ele i implementai proiectul n
Ms Access..
25
CAPITOLUL 3: MODELUL CONCEPTUAL AL
BAZELOR DE DATE RELATIOANLE
3.1. Prima etap a modelrii conceptuale
Aa cum am vzut n capitolul anterior, proiectarea unei baze de date
incepe cu analiza situaiei reale care trebuie modelat prin baza de date.
Aceast analiz necesit un dialog ntre proiectantul bazei de date i viitorii
ei utilizatori. Astfel, sunt puse n evident:
cerinele utilizatorilor privind datele care trebuie stocate i
administrate;
cerinele utilizatorilor privind operaiile care trebuie efectuate cu
aceste date.
Etapa urmtoare const n realizarea modelului conceptual al bazei
de date. n cazul modelului relaional, se ncepe cu o descriere detailat a
entititilor i atributelor, a relaiilor dintre entiti i a condiiilor pe care
trebuie s le ndeplineasc. Aceast descriere poate mbraca mai multe
forme schema conceptual, diagrama entitate-relaie (diagrama ER).
Definiii Entitate =
= un "lucru" sau un "obiect" din lumea real care poate fi distins (deosebit)
de toate celelalte lucruri sau obiecte.
= un obiect (precum o rachet, un tablou), un eveniment (precum naterea
unei persoane, marcarea unui gol), o activitate (producia de oel a unei
uzine, nchirierea unei maini) din lumea real care poate fi descris() prin
caracteristici bine definite (despre care exist date care pot fi stocate).
Exemple
1) Fiecare client al unei bnci este o instan a entitii Clieni; fiecare
tablou dintr-un muzeu este o instan a entitii Tablouri,
2) Fiecare curs predat intr-o facultate este o instan a entitii
CursuriUniversitare etc.
Atenie
Entitile dintr-o baz de date pot fi disjuncte sau nu; n al doilea caz
avem de a face cu subentiti (de exemlu, entitile Piloi i
MecaniciDeBord sunt disjuncte i sunt subentiti ale entitii
PersonalNavigant).
Intr-o baz de date pot exista entiti a cror existen este determinat
de existena altora (de exemplu, entitatea PersoaneInIntretinere depinde de
entitatea Salariai); primele se numesc entiti dependente, celelalte se
numesc entiti principale.
Exemplu
Fie entitatea Tri; considerm atributele Nume, Continent, Capital,
FormDeGuvernmnt, Suprafa, SarbtoareNaional. Tabelul 1 prezint
cteva instane ale acestei entiti i valorile luate de atribute.
Entitate Elev
30
Exemple
1) Pentru entiti precum Elevi, Profesori, Angajai un exemplu de
identificator unic este codul numeric personal; un contraexemplu: numele
(chiar nsoit de prenume!) sau data naterii. Se poate utiliza i atributul
convenional CodElev (CodProfesor etc.), cu valori formate din iniialele
numelui i prenumelui, urmate de numere distincte formate din 2 sau 3 cifre
2) Pentru entitatea Comenzi putem folosi un atribut convenional (de
exemplu: CodComand, cu valori numere distincte de 5 cifre) sau putem
folosi trei atribute ale sale: NumeFurnizor, NumeClient, DataEmiterii.
31
c) Descriei atributele urmtoarelor entiti i identificai un atribut / grup de
atribute cu proprietatea de identificator unic: (i) persoan; (ii) abonat
telefonic; (iii) automobil; (iv) calculator.
A B C D A B C D E
a1 b1 c1 d1 a1 b1 c1 d1 e1
a2 b3 c1 d2 a2 b1 c1 d1 e2
a3 b4 c2 d2 a3 b1 c2 d1 e1
a4 b2 c2 d1 a4 b2 c1 d1 e1
R1 R2
32
n exemplul nostru, adresa va fi modelat ca entitate n oricare dintre
urmtoarele cazuri:
cadrul didactic are mai multe adrese (locuina din localitate, o locuin
de vacan, o alt coal la care pred etc). Motivul: ntr-o baz de date
corect proiectat (normalizat) un atribut nu poate lua simultan mai multe
valori pentru aceeai instan a unei entiti;
structura adresei (localitate, strad, sectorul/judeul etc.) este
important (de exemplu, trebuie s extragem din baza de date cadrele
didactice care locuiesc ntr-o anumit localitate sau ntr-un anumit sector
din Bucureti). Motivul: valorile atributelor sunt atomice.
In oricare dintre situaiile complementare (o singur adres, tratarea
adresei ca un tot unitar), este indicat modelarea prin atribut.
3.6. Relaii
Oridecteori un atribut al unei entiti se refer la alt
entitate din baza de date se stabilete, de fapt, o relaie ntre
cele dou entiti (de exemplu, atributul Destinaie al entitii
Trenuri se refer la oraul ctre care circul un tren, indicnd astfel
Hand osh
relaie
ak.ico
ntre entitatea Trenuri i entitatea Orae). Cnd proiectm baza de date,
aceste referiri nu ar trebui s fie reprezentate ca atribute ale entitilor ci ca
relaii (att n sensul real ct i n sensul matematic al cuvntului) ntre
entiti. Atributele prin care se stabilete aceast relaie se numesc chei
sau cmpuri de legatur.
Exemple
In baza de date a unei firme de transport putem identifica urmtoarele
relaii: un ofer Conduce o main; o marf AreCaDestinaie o localitate;
o main AjungeIn mai multe localiti.
33
#10 Sarcin de lucru: Relaii ntr-o baz de date
In Figura 3 sunt date dou relaii care pot face parte din baza de date a
unei bnci. Specificai: (a) atributele fiecrei relaii; (b) instanele fiecrei
relaii; (c) posibile domenii de definiie pentru atribute.
Atenie
Entitile i atributele sunt denumite prin substantive; relaiile dintre
entiti sunt denumite prin verbe urmate de prepoziii; exist situaii n care
ordinea entitilor aflate n relaie este important (atunci avem de fapt
dou relaii care trebuie citite de la stnga la dreapta, respectiv de la
dreapta la stnga) i situaii n care ordinea nu este important.
Numele date entitilor, respectiv relaiilor, trebuie s fie unice la
nivelul bazei de date. Numele atributelor trebuie s fie unice numai la
nivelul aceleiai entiti; eventualele confuzii la nivelul bazei de date se
rezolv prin cuplarea numelui atributului cu numele entitii. Este totui
indicat pentru simplificarea referirilor ca cel puin numele atributelor
care constituie cheile primare s fie unice i la nivelul bazei de date.
34
Schema conceptual a unei baze de date const din numele
entitilor urmate ntre acolade de numele atributelor respective. Cheile
primare sunt indicate prin subliniere.
Tabelul 2 i Tabelul 3 prezint conveniile de reprezentare grafic (n
diagramele ER) a entitilor, atributelor i relaiilor din modelul conceptual al
unei baze de date relaionale.
Reprezentare
Exemple
grafic
Salariai
Entitate
dreptunghi dublu
dependent
Atribut elips
PersInIntreinere
Atribut cu valori
elips dubl
multiple
Culoare
elips i subliniere cu
Cheie primar linie continu
elips i subliniere cu
Cheie extern linie punctat
Relaie romb
Telefon
Tabelul 2: Un set de convenii pentru diagrama entitate-relaie
Vechime
35
NrMatric
CodClie
PredL
Reprezentare
Exemple
grafic
linii cu i fr bifurcaii
Relaie
36
IdActor Num Prenume
e
Titlu An
Actori
JoacIn
Num Filme
e
Durat
Studiouri Produc
Tip
Adres
(b)
(c)
37
#14 Sarcin de lucru: Atribut sau relaie n diagrama ER?
Construii diagrama entitate-relaie pentru fiecare dintre urmtorele cazuri:
a) un brbat (care are nume, adres, ocupaie) este obligatoriu cstorit cu
o femeie; o femeie (cu aceleai atribute) este obligatoriu cstorit cu un
brbat;
b) cele dou entiti au aceleai atribute ca la punctul (a) dar pot fi i
celibatari;
c) cele dou entiti au aceleai atribute ca la punctul (a), poti fi i
celibatari, pot avea sau nu copii (n primul caz, apare doar numrul copiilor)
38
Departamente
Salarii primite
Atenie
n continuare, pentru reprezentarea grafic a modelului conceptual al
bazelor de date vom utiliza conveniile din Tabelul 2 deoarece considerm
c asocierea unei anumite forme geometrice pentru fiecare element al
modelului mrete sugestivitatea reprezentrii.
39
n-are (ntre mai multe entiti; de exemplu: relaia Monteaz este o
relaie de gradul cinci ntre entitile Regizori, Scenografi,
DesigneriCostume, Actori i PieseDeTeatru).
Definiie Relaie 11 =
= o relaie ntre dou entiti E1 i E2 n care unei instane a entitii E 1 ii
corespunde o singura instan din entitatea E2 i reciproc.
Definiie Relaie 1m =
= o relaie ntre dou entiti E1 i E2 n care unei instane a entitii E 1
(numit entitate dominant) ii pot corespunde mai multe instane din
entitatea E2 dar unei instane din E2 nu-i poate corespunde dect cel mult
o instan din E1 .
Definiie Relaie nm =
= o relaie ntre dou entiti E1 i E2 n care unei instane a entitii E1 ii
pot corespunde mai multe instane din entitatea E 2 i, reciproc, unei
instane din entitatea E2 i pot corespunde mai multe instane din entitatea
E1 .
Exemple
40
In baza de date a unui liceu putem avea urmtoarele tipuri de relaii:
1-1: un elev are o singur foaie matricol (n care sunt nregistrate notele
sale); o foaie matricol aparine unui singur elev;
1-m: ntr-o clas inva mai muli elevi dar un elev nva ntr-o singur
clas;
n-m: un profesor pred la mai multe clase; la o clas predau mai muli
profesori.
CNP ValoarePagub
Client Accident
Dein Produ
e ce
Automobil
41
NrBile
t
Pori
Imbarcare Pleac
42
restricie asupra numrului de elevi care pot nva n locaia respectiv;
n schimb, nu trebuie s nregistrm culoarea bncilor pentru c
aceast caracteristic nu are relevan pentru situaia modelat de
baza de date).
Definiie Relaie
Se numete relaie peste mulimile M1, M2, Mn orice submulime a
produsului lor cartezian: R M1, x M2, x x Mn
Exemplu
Fie mulimile Marca = {Dacia, Ford, Fiat, Audi, Opel, Volvo}, Tip = {benzin,
motorin}, CapacCil = {1100, 1200, 1300, 1400, 1600}, NrLoc = {4,5}, NrUi
= {2, 4, 5}. Atunci, entitatea Automobil poate fi reprezentat ca o relaie
peste aceste mulimi:
Automobil Marca x Tip x CapacCil x NrLoc x NrUi
Iat cteva instane ale acestei entiti: (Dacia, benzin, 1400, 5, 4),
(Dacia, motorin, 1400, 5, 4), (Dacia, benzin, 1100, 5, 4), (Dacia,
motorin, 1400, 5, 5), (Ford, motorin, 1400, 5, 5), (Ford, benzin, 1600, 5,
4), (Fiat, benzin, 1300, 5, 4), (Fiat, benzin, 1100, 5, 4), (Audi, motorin,
1600, 5, 4), (Opel, benzin, 1400, 5, 5), (Volvo, benzin, 1400, 5, 5),
(Volvo, motorin, 1600, 5, 4).
Atenie
Orice entitate este reprezentat printr-o tabel; numele entitii devine
numele tabelei;
Oricrui atribut al unei entiti i corespunde o coloan (numit i cmp)
n tabela corespunztoare entitii; numele atributului devine antetul
coloanei respective din tabel;
Orice instan a unei entiti este reprezentat printr-un rnd n tabela
asociat entitii, numit nregistrare; fiecare celul din nregistrare
conine valoarea luat de atributul corespunztor pentru instana resp.
Exist o diferen ntre tabelele care reprezint entiti i cele care
reprezint relaii dintre entiti: n al doilea caz unele dintre coloane
corespund atributelor relaiei dintre entiti (aici: TipRol i NrScene) dar
44
altele repet atribute ale entitilor corelate (aici: coloanele Nume,
Adresa, respectiv Titlu, An).
CodCabin CodCabin
et et
Grad
Prenume Nume
Nume Prenume
45
Figura 9: Implementarea unei relaii 1-1 n Ms Access
46
primare din entitatea U (aici: atributul CodClas este cheie primar pentru
entitatea Clase i cheie extern pentru entitatea Elevi).
Atenie
In diagrama entitate-relaie, cheile externe se reprezint la fel ca i
cheile primare, dar sublinierea se face punctat.
Observm c n timp ce, la nivelul entitii U, valorile luate de atributul
a1 sunt unice (el fiind cheie primar), la nivelul entitii V valorile luate de
atributul a1 pot fi duplicate (el fiind cheie extern).
Din punctul de vedere al relaiei 1-m dintre entitile U i V, entitatea
U poate fi privit drept entitate principal iar entitatea V drept entitate
secundar.
CNP
CodClas Nume
Locai
e
1 m
Clase InCareInva Elevi
NrTable Prenume
NrBanc CodClas
i
47
Metod: Stabilirea unei relaii 1m
Pentru a stabili o relaie 1-m ntre dou entiti (aici relaia InCareInva
ntre entitile Clase i Elevi) procedm astfel:
(1.) includem n descrirea ambelor entiti un acelai atribut (aici:
CodClas);
(2.) definim acest atribut drept cheie primar pentru entitatea principal i
drept cheie extern pentru entitatea secundar.
48
CodClient (cheile externe asociate entitilor Clieni i respectiv Furnizori)
i DataEmiterii;
(2.) stabilim relaiile 1-m ntre tabelele T 1 i T3 (pe baza atributului
codClient), respectiv ntre tabelele T2 i T3 (pe baza atributului
codFurnizor).
Figura 10 prezint diagrama entitate-relaie a bazei de date a acestei firme.
n m
Clieni Comand Furnizori
49
50
Figura 11: Implementarea unei relaii de tip n-m n Ms Access
Atenie
Observm c singurele relaii dintre entiti care trebuie s fie reprezentate
prin tabele sunt relaiile de cardinalitate n-m. Tabela corespunztoare
trebuie s conin cel puin cheile externe necesare relaionrii celor dou
entiti; n acest caz cheia primar a relaiei este format din cele dou
atribute, altfel: se poate aduga relaiei un alt atribut care va fi definit drept
cheie primar a acesteia.
51
3.12.1. Valorea special Null a atributelor
Pentru a putea formula prima regul de integritate trebuie s
analizm situaia unei valori speciale pe care o pot lua atributele entitilor:
valoarea Null.
Definiie Null =
= valoarea pe care o ia un atribut pentru o instan a unei entiti atunci
cnd pentru respectiva instan:
nu exist o valoare (de exemplu, pentru entitatea Angajai, n cazul
salariailor civili de sex feminin, atributul SerieNrLivretMilitar nu poate
lua nici o valoare, deci i se atribuie valoarea Null),
exist o valoare dar nu a fost nregistrat (de exemplu, atributul
SerieNrCarteIdentitate),
nu tim dac exist sau nu o valoare (de exemplu, atributul
NrApartament).
Definiie
Oricare ar fi entitatea E din baza de date, nici un atribut care face parte
din cheia sa primar nu poate lua valoarea Null pentru nici o instan a
entitii.
Definiie
Fie dou entiti U i V relaionate; pentru orice instan a entitii V
(secundar) valoarea cheii externe trebuie s corespund valorii cheii
primare a unei instane oarecare a entitii U (principal) sau s fie Null.
Exemplu
Fie baza de date a liceului i entitile Clase
i Elevi aflate n relaie 1-m (vezi Figura 9). Regula
de integritate referenial nu ne permite s
nregistrm datele personale ale unui elev i s-l
includem intr-o clas care "nu exist" (adic s dm
atributului su CodClas cheie extern pentru entitatea Elevi o valoare
pe care nu a luat-o atributul CodClas cheie primar pentru entitatea
Clase pentru nici una dintre instanele entitii Clase).
53
Atenie
Dac totui trebuie s nregistrm datele unui elev nainte de a
inregistra datele clasei din care face parte putem face acest lucru dnd
atributului CodClas al entitii Elev valoarea Null (lucru permis, ntruct
aici atributul CodClas este cheie extern i nu primar).
55
a) Construii diagrama ER.
b) Specificai gradul i tipul relaiilor dintre aceste entiti.
c) Care sunt cheile primare i externe?
d) Ce restricii trebuie s impunei asupra acestei scheme?
56
#31 Sarcin de lucru: Scheme conceptuale i diagrame ER
a) Construii diagrama entitate-relaie pentru baza de date a bibliotecii
liceului n care nvati.
b) Construii diagrama entitate-relaie pentru baza de date a unei companii
de televiziune prin cablu / a unui furnizor de internet.
59
#40 Sarcin de lucru: Bazele de date i WWW
a) Accesai site-ul web al unui productor de echipamente de calcul (de
exemplu: www. ibm.com, www. dell.com etc.) i ncercai s realizai
diagrama entitate-relaie a unei baze de date pentru acest site.
b) Acelai enun n cazul site-ului web al unui distribuitor de carte precum
www.amazon.com.
60
CAPITOLUL 4: NORMALIZAREA BAZELOR DE DATE
4.1. Introducere: definiii, terminologie
Normalizarea poate fi privit ca ultima etap n proiectarea unei baze
de date. Aa cum am vzut, acest proces de tip top-down ncepe cu
identificarea principalelor entiti i relaii; urmeaz ca acestea s fie
examinate (inclusiv la nivelul raporturilor dintre atributele care le
caracterizeaz) n scopul eliminrii tuturor "defectelor" lor i transformrii
ntr-un set de relaii adecvat, coerent i bine structurat.
Aceast tehnic a fost iniiat tot de E.F. Codd (a se vedea [6]). El a
propus iniial trei seturi de reguli pe care o relaie trebuie s le satisfac
pentru a fi coerent i pe care le-a denumit prima (FN1), a doua (FN2),
respectiv a treia (FN3) form normal (dnd astfel i numele tehnicii
nsi). Ulterior, R. Boyce a introdus, mpreun cu E.F. Codd, o definiie mai
tare a FN3 denumit forma normal Boyce-Codd (FNBC). In fine, au mai
fost definite nc dou forme normale: a patra (FN4) i a cincea (FN5)
form normal, care ns au n vedere situaii destul de rar intalnite.
S remarcm caracterul "progresiv" al acestor forme normale
(ilustrat i prin Figura 1): o relaie aflat n FN3 este automat n FN2 i deci
i n FN1. De fapt, cteodat din punct de vedere al performanelor n
exploatare este preferabil ca baza de date s fie lsat intr-o form
normal inferioar (se execut procesul invers normalizrii, denumit
denormalizare a bazei de date).
Definiie Normalizare =
= un proces prin care un set de relaii care ncalc anumite principii de
proiectare este nlocuit cu un alt set de relaii adecvat, coerent i bine
structurat.
Acest proces se desfoar n mai multe etape: n fiecare etap se
urmrete eliminarea unui alt tip de defecte ale relaiilor astfel nct, pe
msur ce relaiile trec n forme normale superioare, ele devin din ce n ce
mai puin vulnerabile fa de anomaliile de actualizare a datelor.
(b.)
64
4.3. Dependene funcionale
Procesul de normalizare se bazeaz pe examinarea relaiilor dintre
atributele entitilor, oglindite prin conceptul de dependen funcional.
Atenie
Observm c unei valori a atributului a 2 i pot corespunde mai multe
valori ale atributului a1. (putem spune c a1 este argumentul iar a2 este
imaginea unei funcii n sensul matematic al cuvntului).
Se pot afla n dependen funcional nu numai atribute individuale ci i
grupuri de atribute. Vom ignora dependenele triviale, adic dependenele
a1 a2 n care a2 depinde funcional de un subset al a1.
atributul a2 depinde
a1 a2
funcional de a1
Figura 7: Reprezentarea grafic a dependenei funcionale
Exemple
1) Fie entitatea Elevi = {CNP, Nume, Prenume, Adresa, codClas};
atributul Nume depinde funcional de atributul CNP (atributul CNP este
determinantul dependenei).
2) Fie entitatea Clase = {CodClas, Locaie, NrBanci, NrTable); fiecare
dintre atributele Locaie, NrBanci, NrTable depind funcional de atributul
CodClas (care este deci determinantul dependenei funcionale).
65
3) Fie entitatea Medici = {CodCabinet, Grad, Nume, Prenume); atributul
CodCabinet depinde de grupul de atribute {Nume, Prenume, Grad}.
Atenie
Examinarea dependenelor funcionale dintre atributele unei entiti ne
permite s determinm care dintre cheile candidate trebuie s fie aleas
drept cheie primar: este aleas cheia candidat care apare ca determinant
n toate dependenele funcionale identificate la nivelul entitii respective
( a se vedea al doilea exemplu de mai sus.
Atenie
Reamintim faptul c n modelul relaional, orice entitate i relaie dintre
entiti este modelat matematic prin conceptul de relaie i reprezentat
convenional printr-o tabel. In continuare, prin relaie vom nelege
modelul matematic al unei entiti sau al unei relaii ntre entiti,
reprezentat convenional printr-o tabel, ca mai sus.
Exemplu
Fie baza de date a unei firme de transport auto
care se ocup cu transportul de persoane; dintre
entitile care apar intr-o astfel de baz de date
enumerm: Angajai, Vehicule, Garaje, Clieni,
Trasee. S presupunem c formularele de culegere date completate de
eful fiecrui garaj conin (pe lng adresa garajului): tipul vehiculelor
deinute (limuzin, microbuz, autocar), numerele de nmatriculare ale
acestora, datele de identificare ale oferilor care le conduc. Transcrirea
direct a datelor din aceste formulare n tabela Garaje poate conduce la
rezultatul din Figura 8.
67
Se cunosc dou metode de a aduce o relaie n FN1; o vom prezenta
pe cea mai eficient dintre ele (vom presupune c un singur atribut nu
respect condiia din FN1):
68
Figura 10: Tabela nou creat, Vehicule
Atenie
Intr-o relaie pot exista mai multe atribute cu valori
multiple, deci care s fie fiecare la rndul su
responsabile pentru forma nenormalizat a relaiei
(tabelei). In acest caz, aducerea relaiei la FN1 se
desfoare n tot atia pai cte astfel de atribute
exist (aici: noua tabel Garaje22 este tot n form nenormalizat din
cauza atributului Soferi). Prin urmare, vom proceda pentru acest atribut
69
aa cum am procedat i pentru atributul TipAuto: a se vedea Figura 12
(tabela Garaje33 aflat acum n FN1) i Figura 13 (tabela Soferi nou
creat) precum i Figura 14 (tabela de jonciune Conduc prin care vom
realiza relaia de tip nm dintre entitile nou create Soferi i Vehicule).
70
Figura 13: Tabela nou creat, Soferi
72
Figura 15: Setul de relaii rezultat dup incheierea operatiei
de aducere la FN1 a entitii Garaje
Exemplu
Fie baza de date a unui institut de cercetri care
are mai multe filiale i n care salariaii sunt pltii n
funcie de numrul de ore lucrate n cadrul unui
proiect de cercetare sau al altuia. Dintre entitile
care apar ntr-o astfel de baz de date enumerm:
Filiale = {CodFil, NumeFil, LocFil}, Angajai = {CNP,
CodFil, NumeAng, Adresa, SalariuPeOra}, Proiecte
= {CodPrj, TitluPrj, CodFil, DataPredrii}. Pe lng
acestea, am mai introdus n baza de date i entitatea AngajaiProiecte =
{CNP, NumeAng, CodPrj, TitluPrj, NrOre, DataPredrii} cu instanele din
Figura 16.
S presupunem c data de predare a proiectului tr1 a fost devansat cu o
lun; dac nu operm aceast modificare n ambele nregistrri din tabel
73
care se refer la acest proiect atunci apare o anomalie de actualizare i
baza de date ii pierde consistena.
Atenie
FN2 se refer numai la relaii a cror cheie primar este format din
mai multe atribute deoarece se bazeaz pe conceptul de dependen
funcional complet.
Contraexemplu
S examinm relaia Vehicule din exemplul de mai sus: dependena
funcional
NrInmatr, TipAuto CodGaraj
nu este complet: atributul CodGaraj este dependent funcional de un
subset al {NrInmatr, TipAuto }, i anume de NrInmatr.
74
Definiie A doua form normal
O relaie este n FN2 dac i numai dac:
(1) este deja n FN1;
(2) oricare dintre atributele sale care nu fac parte din cheia primar este
complet dependent funcional de cheia primar.
d.f.2
d.f.1
d.f.3
75
Figura 17: Dependenele funcionale complete din entitatea
AngajaiProiecte
AP1 AP2
CNP codPrj nrOre CNP NumeAn
g
AP3
codPrj titluPrj dataPredrii
76
Exemplu
Fie baza de date a institutului de cercetri descris n
paragraful anterior. S presupunem c am mai introdus n
baza de date i entitatea AngajaiFiliale = {CNP, NumeAng,
Adresa, Oras, CodFil, NumeFil, LocFil} cu instanele din
Figura 20.
In cazul n care una dintre filiale ii schimb sediul (de
exemplu filiala CercAero se mut de la Hui la Iai), operarea modificrii
numai n una dintre cele dou nregistrri care se refer la filiala respectiv
determin apariia unei anomalii de actualizare i baza de date ii pierde
consistena.
Atenie
FN3 se bazeaz pe conceptul de dependene funcionale tranzitive.
77
Exemplu
S examinm relaia EleviClase din paragraful 4.2:
78
atributul NumeFil se adaug atributelor CodFil i LocFil pentru a
forma entitatea Fil1);
(3.) definirea atributului a2 drept cheie primar a celei de-a doua entiti
nou create;
(4.) stabilirea relaiilor dintre noile entiti (n scopul recuperrii informaiilor
de legatur, pierdute eventual prin inlocuirea entitii iniiale cu entiti
normalizate).
Atenie
Observm c atributul care asigur tranzitivitatea (atributul notat a2) nu este
nici cheie primar n relaia respectiv nici mcar parte a cheii primare.
Tocmai din acest motiv, dependena a2 a3 nu este dezirabil la nivelul
relaiei respective.
79
Relaia este n FN2; Se pstreaz n relaia iniial
Nici un atribut care nu numai cheia primar i atributele
face parte dintr-o cheie care depind funcional de ea
candidat nu este funcional direct (inclusiv atributul
dependent de un alt atribut "incriminat");
care nu face nici el parte Se creeaz cte o nou
dintr-o cheie candidat (nici relaie din fiecare atribut care nu
un atribut care nu face face parte din cheia primar
FN3
parte dintr-o cheie mpreun cu toate atributele
candidat nu este funcional (care nu fac nici ele parte din
dependent de cheia cheia primar a relaiei iniiale)
primar prin tranzitivitate) care sunt dependente funcional
de acesta;
Se stabilesc relaiile necesare
ntre noile relaii i relaia iniial
modificat
80
#4 Sarcin de lucru: Dependene funcionale
Enumerai dependenele funcionale din relaiile R1, respectiv R2.
A B C D A B C D
a1 b1 c1 d1 a1 b2 c1 d1
a1 b1 c2 d2 a1 b1 c2 d2
a1 b2 c3 d1 a2 b2 c1 d3
a1 b2 c4 d4 a2 b1 c2 d4
R1 a2 b3 c4 d5
R2
81
b) Acelai enun pentru R = {A, B, C, D, E, F, G, H} i dependenele
funcionale: A {B, C}, {A, B, E} {C, D, G, H}, C {G, D}, D G, E
F.
#21
Catalog.ico
Sarcin de lucru: Restricii contextuale; normalizare
Fie urmtoarea schem conceptual pentru baza de date a unui depozit:
Comenzi = {CodComand, DataComenzii, CodClient, SumaTotal},
ProdusComandat = {CodComand, Cod Produs, CantitateTotal,
CostTotal, %Bonificaie}. Considerm urmtoarele restricii contextuale:
fiecare produs are o alt bonificaie; PreTotal se refer la un singur produs
comandat; DataComenzii este data la care s-a fcut
comanda (nu data la care a fost expediat);
SumaTotal reprezint totalul ncasrilor dintr-o
comand.
a) Ce alte restricii mai trebuie enunate?
b) Sunt relaiile normalizate? Dac nu, cum le
putei normaliza?
87
O agenie de intermediere de angajri are ca obiect de activitate gsirea
unor compatibiliti ntre calificrile de care dispun solicitanii de serviciu i
serviciile oferite de diverse firme. Mai multe firme pot oferi servicii similare
i aceeai firm poate oferi mai multe posturi de acelai tip (de exemplu: 3
posturi de ofer de ambulan). Fiecare ofert de servicu primete un
numr unic de identificare i este descris prin denumire, salariile minim i
maxim oferite, numrul de posturi libere, durata contractului pentru fiecare
post (dac nu este pe durat nelimitat). Datele nregistrate pentru fiecare
solicitant sunt: CNP, nume, adres, vrst, numere de telefon, adrese
email, precum i diplomele / calificrile obinute, principalele servicii
deinute anterior i perioadele respective, nivelul salariilor primite n fiecare
serviciu. Sunt inregistrate, de asemenea, situaiile de coinciden ntre
ofertele primite din partea firmelor i solicitrile primite din partea
persoanelor, inclusiv data calendaristic la care a aprut coincidena i
dac ea s-a materializat ntr-o angajare propriu-zis.
a) Este nevoie s inregistrai date despre firmele ofertante?
b) Aducei pe rnd baza de date n FN1, FN2, FN3.
88
BIBLIOGRAFIE
1. BONTEMPO, Charles J., MARO SARACCO, Cynthia: Database
Management Principles and Products, Prentice Hall, Upper
Saddle River, NJ, 1995.
2. BOWERS, David S.: From Data To Database, Chapman & Hall, London,
UK, ediia a 2a, 1993.
3. CANTTELL, R.G.G.: "What Are Next-Generation DB Systems?", CACM
vol. 34, no. 10 (Oct.1991).
4. CHILDS, D.L.: "Feasability of a Set-Theoretical Data Structure", n Proc
Fall Joint Computer Conference, 1968, p. 557-564.
5. CHEN, P.P.: "The Entity-Relationship Model Toward a Unified View of
Data", ACM Trans. Database Systems, vol. 1, no. 1, (1976), p.
9-36.
6. CODD,E.F.: "A Relational Model of Data for Large Shared Databanks",
Comm. ACM, vol. 13 (1970), no. 6, p. 377-387.
7. CODD Edgar Frank: "Further Normalization of the Data Base Relational
Model", n R. RUSTIN (editor): Data Base Systems, Prentice
Hall Inc. Englewood Cliffs, NJ, 1972.
8. CONNOLLY,Thomas, BEGG,Carolyn, STRACHAN, nne: Database
Systems, A Practical Approach to Design, Implementation, and
Management, 2nd ed., Addison-Wesley, Harlow, 1999.
9. DATE, . J.: An Introduction to Database Systems, Addison-Wesley,
Reading, Mass., 2000.
10. ELMASRI, amez, NAVATHE, Shamkant B.: Fundamentals if Database
Systems, 3RD ed., Addison Wesley, Reading, Mass., 2000.
11. FAGIN, R.: "A Normal Form for Relational Databases That is Based on
Domains and Keys", n Transactions on Database Systems 6
(Sept.1981).
12. FLEMING, C, von HALLE, B.: Handbook of Relational Database
Design, Addison-Wesley, Reading MA., 1989.
13. GARCIA-MOLINA, Hector, ULLMAN, Jeffrey D., WIDOM, Jennifer: A
First Course in Database Systems, Prentice Hall, Upper Saddle
River, NJ, 2000.
14. KROENKE, David M.: Database Processing: Fundamentals, Design &
Impelmentation, Ediia a 7a, Prentice-Hall Inc., Upper Saddle
River, NJ, 2000.
15. O'NEIL, Patrick: Database - principles, programming, performance,
Morgan Kaufmann Publ.Inc., San Fransisco, 1994.
16. ROB, Peter, CORONEL, Carlos: database Systems: Design,
Implementation, and Management, International Thomson Publ.,
Cambridge MA., 1997
89
17. SILBERSCHATZ, Abraham, KORTH, Henry F., SUDARSHAN, S.:
Database System Concepts, McGraw-Hill Co.Inc., New York,
1997.
18. STONEBRAKER, M.: Object-Relational DBMSs: The Next Great Wave,
Morgan Kaufmann Publ. Inc., San Francisco Ca., 1996.
***(DEX)*** Dicionarului Explicativ al Limbii Romne, Editura Acedemiei,
Bucureti, 1984
90