Sunteți pe pagina 1din 96

Curs 1 BD

INTRODUCERE

-Notiuni Fundamentale-
Bibliografie de baza pentru disciplina
Baze de Date – anul II

Joe Celko, “Joe Celko’s data and databases


concepts in practice”
R. Dollinger, “Baze de date si gestiunea
tranzactiilor”
Paulina Mitrea, “Accesibilitate WEB, Multimedia,
Paralelism si Arhitecturi Distribuite pt. Baze de
Date de Inalta Performanta
Th. Borangiu, Dorin Carstoiu, Andra Condrut etc:
”DB2 UDB”
Curs Nr. 1 BD – Notiuni Fundamentale

Istoric:
• Primele forme de inregistrare a datelor: tablitele de lut sumeriene
de acum 6000 de ani (taxe si impozite platite regilor locali,
consemnarea unor decizii/sentinte judecatoresti, etc)
• Aparitia bibliotecilor, inca din antichitate (cea mai veche:
biblioteca din Alexandria/Egipt)
• Consemnarea/inregistrarea datelor in tabele trasate manual, pe
diverse suporturi destinate acestui scop (piele/papirus/hartie etc),
reprezinta o prima forma de sistematizare/structurare a datelor
• Aparitia si dezvoltarea tehnicii de calcul  transpunerea pe
calculator /in format electronic/ a tuturor tehnicilor manuale,
reprezinta un salt calitativ fara precedent in organizarea si
gestionarea datelor
Curs Nr. 1 BD – Notiuni Fundamentale

Stadiul actual (1):


• Bazele de Date moderne:
-varietate de domenii pentru care se inregistreaza date: socio-
economic, stiintific, cultural, administrativ, educational, medical,
tehnic etc
-varietate de forme de inregistrare a datelor: valori numerice,
texte, imagini (statice/dinamice), harti etc  baze de date
MultiMedia
-varietate de arhitecturi concepute si implementate pentru
stocarea/accesarea datelor: stocare/accesare locala, in maniera
client-server, baze de date distribuite, baze de date accesibile pe
web, baze de date de mare dimensiune gazduite pe sisteme de calcul
de inalta performanta (HPC)
Curs Nr. 1 BD – Notiuni Fundamentale

Stadiul actual (2):


SGBD-uri = Sisteme de Gestiune a Bazelor de Date: asigura
accesul automat, rapid si sigur la volume imense de date, care pot fi
dispersate/distribuite pe statii de calcul/suporturi de alta natura de
pe intregul mapamond
-SGBD-urile au aparut si s-au dezvoltat ceva mai tarziu decat
compilatoarele sau sistemele de operare, dar la ora actuala exista
SGBD-uri extrem de puternice (ex. SGBD-OO, SGBC etc)

-Cele mai moderne: SGBD-urile Relationale, SGBD-uri OO,


SGBC
Curs Nr. 1 BD – Notiuni Fundamentale

Termeni si Definitii:
(a) Notiunea de Data versus Informatie
•DECIZIILE – necesare permanent, atat in viata obisnuita
cotidiana, cat si in sectoarele speciale ale diferitelor
domenii de activitate (socio-economic, cultural,
administrativ etc)
•Luarea DECIZIILOR in cunostinta de cauza este
conditionata de existenta INFORMATIILOR privind
contextul in care si pentru care se iau deciziile respective
•INFORMATIILE se obtin prin prelucrarea de DATE
specifice domeniului/contextului in care si pentru care se
iau deciziile
Curs Nr. 1 BD – Notiuni Fundamentale

DECIZII

INFORMATII
prelucrare/procesare

DATE
Curs Nr. 1 BD – Notiuni Fundamentale

(b)DEFINITIILE NOTIUNILOR DE DATA versus INFORMATIE:


1.DATELE = fapte/obiecte reprezentate conform unor conventii,
culese din viata reala pe baza de observatii si masuratori

2. INFORMATIA = rezultatul interpretarii datelor de catre un


anumit subiect, conferindu-i acestuia capacitatea de a lua decizii

 DATELE se transcriu in INFORMATII doar dupa ce sunt


procesate prin interactiune cu un sistem capabil a le interpreta
Curs Nr. 1 BD – Notiuni Fundamentale

CARACTERISTICI:
Obs1:
Aceeasi DATA poate fi interpretata in mod diferit de catre
subiecti diferiti, de unde rezulta ca poate genera
INFORMATII diferite in functie de subiectul/sistemul
care o prelucreaza

Obs2:
DATELE au un caracter obiectiv, in timp ce
INFORMATIA are un caracter subiectiv.
 Importanta inregistrarii si gestionarii corecte a datelor,
ca entitati obiective ce fundamenteaza deciziile
Curs Nr. 1 BD – Notiuni Fundamentale

Etape de evolutie a Bazelor de Date:


Etapa1:
Etapa de adaptare a tipurilor de organizare a datelor existente
in sistemele de prelucrare manuala la conditiile tehnice
impuse de utilizarea calculatoarelor electronice
(etapa fisierelor secventiale)
Etapa2:
Etapa de separare dintre structura logica de date si structura
fizica de stocare/memorare a acestora  independenta
fizica a datelor
(etapa fisierelor secvential-indexate)
Curs Nr. 1 BD – Notiuni Fundamentale

Etapa3:
Etapa aparitiei fisierelor integrate, obtinute prin inlocuirea
grupurilor de fisiere destinate unor aplicatii particulare cu
sisteme complexe de elemente de date a caror organizare este
determinata de legaturile logice intrinseci existente intre
acestea (si mai putin de catre modul de prelucrare de la nivelul
fiecarei aplicatii)
-se permite realizarea a mai multe fisiere logice pe baza
acelorasi date fizice
Reducerea redondantei datelor (prin folosirea acelorasi date
fizice de catre mai multe aplicatii)
Realizarea premiselor Independentei Logice a datelor
 Aceste structuri integrate stau la originea Modelului
Conceptual din arhitectura bazelor de date moderne
Curs Nr. 1 BD – Notiuni Fundamentale

Etapa4:
Etapa Bazelor de Date propriu-zise, etapa in care se
realizeaza independenta aplicatiilor fata de structura logica a
datelor
Modificarile efectuate in structura logica a datelor nu atrag
dupa sine si necesitatea modificarii aplicatiilor
Curs2A_Partea1_ArhitecturaBD
Zona de Zona de Zona de Zona de Zona de Zona de Zona de Zona de
lucru 1 lucru 2 lucru 3 lucru 4 lucru 5 lucru m lucru m+1 lucru m+2

Vedere V1 Vedere V2 Vedere Vn

Transformarea Vedere V2-Model Conceptual Transformarea Vedere Vn-Model Conceptual


Transformarea Vedere V1-Model Conceptual

Nivelul mediu
MODELUL CONCEPTUAL
( Descrierea Bazei de Date = descrierea
structurilor logice ale b. d. prin intermediul
LDD )

Transformarea Model Conceptual – Nivel Intern

Nivelul intern

Baza de Date
fizica
Curs2A_Partea1_ArhitecturaBD

Def: Arhitectura unei baze de date este o constructie pe trei niveluri, care asigura structurarea cea mai eficienta a
resurselor unei baze de date.
Cele trei niveluri:
• Nivelul Intern (baza de date fizica)
• Nivelul Mediu (modelul conceptual, schema conceptuala)
• Nivelul Extern (modelul extern, subschema, nivelul vederilor).

Nivelul Intern

Def: Numit si baza de date fizica, consta dintr-o colectie de fisiere ce contin datele fizice, plus diverse
structuri auxiliare menite sa asigure accesul operativ la datele fizice, precum:
directoare, indecsi, pointeri, tabele de dipersie etc.
Obs1: Baza de date fizica este rezidenta in memoria secundara a calculatorului (de ex. pe discuri
magnetice sau optice).
Obs2: Modul de organizare al bazei de date fizice este in mare masura influentat de:
(a) configuratia echipamentelor hardware pe care este gazduita baza de date
(tipul de procesor, tipul perifericelor etc)
(b) sistemul de operare.

 Schimbarea SO sau modificarile efectuate in configuratia echipamentelor hardware, pot determina


modificari ale bazei de date fizice.
Bazat pe modalitatile de asigurare, prin insasi arhitectura BD, a independentei fizice a datelor,
modificarile efectuate la nivelul intern al bazei de date nu afecteaza
nivelurile superioare ale arhitecturii.
Curs2A_Partea1_ArhitecturaBD

Nivelul Mediu

Def: Numit si Model Conceptual, reprezinta o abstractizare a unei parti a lumii reale, constand in descrierea
structurii logice a datelor din baza de date, anume:
(a) descrierea tuturor unitatilor/entitatilor logice din baza de date,
impreuna cu
(b) descrierea legaturilor dintre aceste unitati/entitati.

Obs1: Modelul Conceptual integreaza viziunile tuturor utilizatorilor asupra bazei de date, reprezentand un
compromis intre cerintele diverselor categorii de utilizatori, chiar daca aceste cerinte par a fi, initial,
conflictuale.

Obs2: Modelul Conceptual specifica ce anume poate face parte din baza de date (din punctul de vedere al
conformitatii cu cerintele), respectiv ce anume nu poate face parte din baza de date = constrangerile
explicite asupra datelor.

Obs3: Prin Modelul Conceptual se realizeaza o gestiune independenta a structurii logice generale a bazei de
date, utilizatorul fiind astfel degrevat de necesitatea de a cunoaste intreaga structura a bazei de date.

Obs4: Prin Modelul Conceptual este asigurata independenta structurilor logice de date fata de structura
fizica de memorare a acestora pe Nivelul Intern al Arhitecturii BD.
Curs2A_Partea1_ArhitecturaBD

Nivelul Extern

Def: Numit si Model Extern, acest nivel poate fi privit ca o descriere a unei baze de date virtuale
corespunzatoare viziunii unui utilizator sau grup de utilizatori; aceasta descriere este facuta in termenii
unitatilor logice reprezentate la nivelul Modelului Conceptual (deci in contextul descrierilor logice
care constituie Nivelul Mediu al arhitecturii bazei de date).

Obs1: Nivelul Extern este nivelul cel mai apropiat de utilizator, fiind constituit din totalitatea Vederilor si a
Interfetelor Utilizator implementate la nivelul Zonelor de Lucru ale utilizatorilor. La o Vedere pot fi
conectate una sau mai multe Zone de Lucru, corespunzatoare unuia sau mai multor utilizatori.

Obs2: Prin intermediul Vederilor utilizatorii au acces doar la parti bine definite din baza de date, care
prezinta interes concret pentru ei, fiindu-le in acelasi timp ascunse acele parti pe care nu trebuie sa le
“vada” sau care nu prezinta interes pentru utilizatorul/utilizatorii conectati la Vederea respectiva.
Curs2B_Part2_SGBD&AdminBD

SGBD

/ Eng: D B M S /

Def. SGBD = intregul ansamblu software care trateaza toate cererile de


acces la baza de date.

Cerere de acces la b.d. = interogare;


pas I: Cererea de acces este formulata de catre utilizator in termenii
conceptelor de la nivelul uneia din ”vederile” definite in sistem (pe
nivelul extern al arhitecturii b.d.)
pas II: Cererea este interceptata de catre SGBD
pas III: Cererea este interpretata de catre
interpretorul LMD (componenta a SGBD)
LMD = Limbaj de Manipulare Date

dupa pasii I- III reprezentare in format intern a interogarii


prelucrari
succesive

comenzi de acces la fisierele fizice din baza de date

OBS: A. In etapele succesive de transformare, SGBD foloseste informatiile


de descriere de la toate nivelurile b.d. (extern, mediu si intern), impreuna cu
descrierile interfetelor.
In plus: a) SGBD mai consulta si o serie de tabele:
- tabele de autorizare a accesului la date
- tabele cu informatii de control al accesului concurent
etc.
b) SGBD prelucreaza reprezentarile succesive ale interogarii
in vederea optimizarii executiei interogarii

B. Cererile de acces la fisierele fizice sunt preluate si rezolvate de


catre un sistem de gestiune a fisierelor = sistem general parte a sistemului
de operare care gazduieste baza de date, sau un sistem specializat incorporat
in SGBD.

date extrase din fisierele fizice sub forma de siruri de biti


Curs2B_Part2_SGBD&AdminBD

C. Datele extrase din fisierele fizice parcurg calea inversa (de jos
in sus) , rezultatul transformarilor succesive fiind un raspuns formulat
in tremenii cunoscuti de utilizator ( generarea de rapoarte la nivelul
extern al arhitecturii b.d.)

Facilitati (functionalitati de baza) cuprinse in SGBD:


- facilitati de descriere a datelor (LDD)
- facilitati de manipulare a datelor (LMD)

LDD (eng. DDL):


– descrierea modelelor externe
- descrierea modelului conceptual
- descrierea interfetelor dintre cele trei niveluri ale
arhitecturii b.d.
- [ descrierea unor aspecte legate de structura fizica
de date ]
- alte facilitati ale LDD = operatii de intretinere a b.d:
incarcarea bazei de date, specificarea restrictiilor
de integritate, etc.

LMD (eng. DML):


- constituie limbajele de interogare ca interfata intre
SGBD si utilizatori
- concretizare in set de comenzi si primitive ce
corespund operatiilor uzuale in exploatarea b.d.:
accesarea, adaugarea, stergerea si actualizarea
datelor
Curs2B_Part2_SGBD&AdminBD

Administrarea Bazei de Date

Definitie:
Administrarea bazei de date = ansamblul de activitati menite a gestiona si
corela in mod optim totalitatea resurselor bazei de date, atat
la nivel software cat si hardware, implicand totodata si
raspundere personala privind starea bazei de date in orice
moment.

Administratorul bazei de date = persoana sau grupul de persoane care


rom: ABD; eng: DBA raspunde de ansamblul activitatilor legate
de baza de date

Grupe de atributii ale ABD:


I. Atributii de proiectare
II. Atributii de administrare propriu-zisa
III. Atributii operative
IV. Atributii de coordonare

I. Atributiile de proiectare :

I.a) Atributii premergatoare proiectarii propriu-zise:

pasul I.a.1: determina necesitatile de informatie ale tuturor


utilizatorilor (prin consultare atenta a fiecarui utilizator in
parte, facand astfel si legatura intre utilizatori in ceea ce
priveste necesitatile commune de informatie);

pasul I.a.2: pe baza consultarilor de la pasul 1, ABD decide


continutul de date al bazei de date, stabilind toate
entitatile care trabuie reprezentate precum si legaturile
dintre ele.
Curs2B_Part2_SGBD&AdminBD

I.b) Atributii de proiectare propriu-zisa:


pasul I.b.1: descrierea modelului conceptual si a modelelor
externe, folosind LDD;
pasul I.b.2: stabilirea structurii fizice de date si a strategiilor de
acces la datele fizice, in functie de caracteristicile
echipamentului hardware si ale sistemului de operare
care gazduiesc baza de date;
pasul I.b.3: stabilirea drepturilor de acces ale diferitelor categorii
de utilizatori, la diferitele parti ale bazei de date, drepturi
ce se stabilesc atat la nivel global (la nivelul modelului
conceptual al bazei de date), cat si la nivel local (la
nivelul fiecarei vederi corespunzatoare unui utilizator sau
unui grup de utilizatori).

Activitati specifice mai importante derulate in contextul pasilor


1.b.1 si 1.b.2:
- stabilirea naturii transformarilor de la nivelul interfetelor
model extern-model conceptual, respectiv model
conceptual-model intern
- definirea constrangerilor de integritate a datelor ca parte a
modelului conceptual al bazei de date, folosind clauzele
specifice din contextul comenzilor LDD
- elaborarea unor proceduri de validare cu rol in verificarea
integritatii datelor

I I. Atributii de administrare propriu-zisa :

II.a) Contact permanent al ABD cu toti utilizatorii pentru a


rezolva:

II.a.1) cerintelor tuturor utilizatorilor


II.a.2) eventualele reclamatii ale utilizatorilor
Curs2B_Part2_SGBD&AdminBD

II.b) Impunerea unei discipline in randul utilizatorilor in ceea ce


priveste exploatarea bazei de date

II.c) Impunerea alinierii la standardele existente in ceea ce priveste


reprezentarea datelor si elaborarea documentatiilor.

II.d) Intocmirea listelor de achizitii de echipamente de calcul noi si


accesorii specifice in exploatarea bazelor de date.

III. Atributii operative :

III.a) alegerea celor mai potrivite dispozitive de memorare;

III.b) stabilirea structurii fizice a datelor care se potriveste cel mai


bine pentru dispozitivele fizice alese;
OBS: aceasta structura se mai poate schimba daca: (1) apar
modificari in cerintele utilizatorilor relativ la modul de folosire
a datelor sau (2) apar noi dispozitive de memorare simtindu-se
nevoia reorganizarii structurii fizice a datelor (pentru a se putea
asigura accesul optim la date).

III.c)stabilirea strategiei de arhivare si recuperare in caz de defect a


datelor (stabilirea strategiei de back-up); stabilirea periodicitatii
si extensiei operatiilor de arhivare;

III.d)stabilirea modului de refacere a datelor pierdute in caz de


defect prin folosirea jurnalului sau a copiilor arhivate.

III.e)modificarea drepturilor de acces la date pentru unele categorii


de utilizatori, daca acest lucru este impus de catre anumite
conditii obiective.
Curs2B_Part2_SGBD&AdminBD

IV. Atributii de coordonare :


• target: optimizarea si cresterea eficientei in exploatarea bazei de date.

• sarcini concrete:
- determinarea modului de utilizare a resurselor
- urmarirea si monitorizarea parametrilor de functionare a
sistemului
- masurarea performantelor echipamentelor
- depistarea factorilor care limiteaza performanta sistemului
- luarea de decizii privind modificarea structurii fizice a
datelor si a strategiilor de acces la date
- adaugarea si/sau eliminarea de structuri de date auxiliare
care accelereaza cautarea (ex. Structuri de indexare)
- determina algoritmul de planificare a functionarii
sistemului in scopul maximizarii performantei acestuia
- poate decide asupra momentului cand se lanseaza in
executie o aplicatie
- decide asupra resurselor ce se pot repartiza unei anumite
aplicatii.

***
Curs2B_Part2_SGBD&AdminBD

Evolutia SGBD-urilor. SGBD-uri comerciale.

SGBD-urile clasice: concepute si proiectate pt. un anumit gen de


aplicatii, relativ limitate ca domeniu de aplicabilitate (adresandu-
se in special domeniului economic)

Exemple tipice:
- probleme de gestiune a intreprinderilor (personal,
magazii, salarii, productie etc)
- sisteme de rezervare a locurilor (ticketing)
- sisteme de gestiune a bibliotecilor
- aplicatii financiar-bancare etc
Caracteristici (trasaturi specifice):
- volum mai mare sau mai mic de date, asupra carora
se aplica o serie de operatii relativ simple: oparatii de
adaugare, stergere, actualizare, regasirea unor
inregistrari care satisfac anumite conditii prescrise
 Aceste SGBD-uri asigura rezolvarea cu eficienta a
accesului operativ la volume mari de date, dar au o putere
de expresie limitata (ex. LMD clasice nu permit
exprimarea unor operatii cu caracter recursiv!)

Obs1: Limitarea puterii de expresie a SGBD-urilor clasice a


constituit o strategie a perioadei de inceput a dezvoltarii
SGBD-urilor, pentru a se facilita
(a) dezvoltarea cu prioritate a functionalitatilor specifice de
accesare, adaugare, stergere, actualizare etc
(b) mentinerea in limite acceptabile a timpului de raspuns al
SGBD-urilor (chiar si p. Cazul in care se lucreaza cu
volume mari de date)
(c) simplitatea LMD-urilor traditionale face posibila
utilizarea optimizatoarelor automate, apte a transforma
interogarile formulate de utilizator in interogari
echivalente care se executa mult mai eficientin urma
fazei de optimizare automata timpul de executie a
interogarii poate fi redus de peste 100000 de ori
Curs2B_Part2_SGBD&AdminBD

Obs2: Pt. limbajele de programare conventionale (C, Pascal, Java


etc) nu se cunosc tehnici de optimizare care sa reduca atat
de masiv timpii de executie.

SGBD-urile moderne: concepute si proiectate pt. o mare varietate de


domenii de aplicabilitate: ex. domeniul proiectarii (f. important!) :
- proiectarea circuitelor VLSI
- CAD
- B. D. grafice
- B. D. geografice
- B. D. pt. ingineria programelor
- B. D. MultiMedia
- etc

Caracteristici ale SGBD-urilor moderne:


- facilitatea de a accesa si manipula volume mari si
foarte mari de date, insotita de facilitatea de a efectua
operatii mult mai complexe decat in cazul SGBD-
urilor clasice
- implementarea de LMD-uri cu o putere de expresie
mult mai apropiata sau chiar egala cu cea a
limbajelor de programare conventionale

Solutiile care au stat la baza conceperii si realizarii SGBD-urilor


evoluate:

1. Abordarea Orientata Obiect  realizarea Sistemelor de Gestiune a


Bazelor de Date de tip SGBD- OO (ex.
IRIS, Orion, GemStone, O2, Ontos)

2. Abordarea logica  realizarea Sistemelor de Gestiune a


Bazelor de Cunostinte: SGBC
Caracteristici ale SGBC:
- furnizarea tuturor serviciilor oferite de celelalte tipuri de
SGBD-uri
- posesia de Limbaje Declarative cu putere de expresie
apropiata sau chiar egala cu cea a limbajelor
conventionale (famile de limbaje DATALOG)
DIAGRAMA TRASEULUI
CERERILOR DE ACCES LA BAZA DE DATE
(sau INTEROGARILOR)
IN CONTEXT SGBD

Nivelul extern al Arhitecturii BD / Nivelul Vederilor


_______________________________________________________________________

Formularea Interogarii de catre Raspunsul la Interogare formulat


Utilizator in tremenii cunoscuti de utilizator
/la nivelul uneia dintre vederile /inclusiv rapoarte prezentate la nivelul
aflate pe Nivelul Extern al uneia dintre vederile aflate pe Nivelul
Arhitecturii BD/ Extern al Arhitecturii BD/

Interceptarea Cererii de

Transformari succesive efectuate sub


Acces/Interogarii
de catre SGBD

control SGBD
Interpretarea Cererii/Interogarii
de catre interpretorul LMD
(componenta a SGBD)

Reprezentarea in format intern


a interogarii
(la nivel SGBD)
prelucrari succesive + (efectuate de catre
optimizari SGBD)
Sistem de
Comenzi de acces Gestiune Fisiere Date extrase din fisierele fizice
la fisierele fizice din baza de date (SGF) sub forma de siruri de biti
(adresate Nivelului Fizic/Intern al (de la Nivelului Fizic/Intern al
Arhitecturii BD) Arhitecturii BD)
Curs Nr. 3 & 4 - Modele de Date.
Modelul de Date Ierarhic
• Ierarhic
• Retea
• Relational
Importanta modelelor: Performanta oricarei
colectii de date in furnizarea de informatii depinde de
modul de organizare a acestor date
Regulile dupa care sunt organizate si manipulate datele
caracterizeaza modelele.
CERINTE ale modelarii datelor:
Sa se reprezinte cat mai fidel situatia din
lumea reala
Adaptarea datelor la cerintele reprezentarii
si prelucrarii pe calculator
DEFINITIE:
D.p.d.v. tehnic, un model de date este un
formalism avand doua componente:
 Un set de reguli pentru organizarea si structurarea datelor
 Un set de reguli pentru manipularea datelor
CLASIFICAREA modelelor dupa gradul de
tipizare a datelor:
MT1: Modele de date strict tipizate
MT2: Modele de date slab tipizate
Def. MT1=fiecare data trebuie sa apartina unei
categorii (datele care nu se incadreaza in
mod natural intr-o categorie, vor trebui sa
fie fortate intr-una din categoriile
modelului, sau ignorate complet)
Def. MT2=modelele in care nu se face nici o
presupunere referitor la categorii
AVANTAJE SI DEZAVANTAJE
Avantaje MT1: proprietatile datelor pot fi
abstractizate si cercetate in termenii
categoriilor carora le apartin
Dezavantaje MT1: lipsa de flexibilitate =
dificultati in reprezentarea deosebirilor
semantice mai subtile
Obs1: Majoritatea modelelor existente la ora
actuala sunt modele strict tipizate.
Obs2: Orice SGBD are la baza un model de
date asociat.
CLASE DE PROPRIETATI CUPRINSE IN
MODELELE DE DATE:
P1: Proprietati statice
P2: Proprietati dinamice
Definitie matematica a modelelor de date:
Un model de date notat M poate fi definit ca
fiind compus din doua parti:
 un set G de reguli de structurare a datelor,
numite reguli generatoare, care exprima
proprietatile statice ale modelului de date
 un set O de operatii permise asupra datelor,
care exprima proprietatile dinamice ale
modelului.
Corespondente in cadrul SGBD:
Setul G – materializat prin intermediul LDD
Setul O – materializat prin intermediul LMD
Definirea LDD utilizat pentru descrierea
structurilor de date permise in cadrul unui
model de date M, in doua moduri:
1. prin specificarea obiectelor permise si a relatiilor
permise dintre ele, folosind reguli generice de definire
2. prin specificarea obiectelor si relatiilor nepermise,
excluse prin definirea unor restrictii numite constrangeri
Partitionare a regulilor generatoare G:
Gs = partea de specificare a structurii
= set de reguli generatoare care genereaza structura unei
scheme S
Gc = partea de specificare a constrangerilor (genereaza
constrangerile asociate schemei S)
Partile unei scheme S:
Ss = parte de structura
Sc = parte de constrangeri = lista explicita a constrangerilor
care trebuie respectate
OBS:
Exista constrangeri explicite si constrangeri implicite
Constrangerile implicite sunt incorporate in partea de
structura Ss , fiind inerente modelului de date ales
Definitie LMD: cuprinde operatii care
produc schimbari in starea bazei de date

Obs1: Operatiile din cadrul LMD nu pot


afecta structura bazei de date ele
conserva modelul conceptual al bazei de
date
Obs2: Orice SGBD are la baza un model de
date M; LDD si LMD sunt materializari ale
seturilor G si O ale modelului M
Metode de structurare si vizualizare date:
ABSTRACTIZARE:
 GENERALIZARE
 AGREGARE

Def: ABSTRACTIZARE= neglijarea aspectelor nerelevante


in favoarea concentrarii asupra proprietatilor care
prezinta interes dintr-un anumit punct de vedere (se retin
acele aspecte care au relevanta pentru scopul propus.
Criteriul de relevanta= esenta oricarei abstractizari
Utilitate: Abstractizarea (in modelarea datelor) conduce
la obtinerea unor categorii de date sau si/sau combinatii
ale acestor categorii in categorii mai generale.
Exemplu de abstractizare:
Tipizarea
Forma elementara de abstractizare: definirea
unui tip pornind de la o clasa de obiecte
similare
Ierarhii de tipuri: obtinute prin abstractizare
efectuata pe mai multe niveluri (tipurile de
pe un anumit nivel constituie obiecte pentru
nivelul imediat superior de abstractizare)
Obs: Ierarhiile de tipuri sunt structuri cu o mare
putere expresiva, in cadrul carora tipurile generate
si legaturile dintre ele sunt mai usor de inteles si
vizualizat.
Forme de abstractizare utilizate in b.d.:
Def1: Generalizarea = forma de abstractizare care
asociaza unei multimi de tipuri un singur tip
generic
Mecanism specific:
Scoaterea in evidenta a similitudinilor dintre
obiecte sau tipuri si neglijarea deosebirilor dintre
acestea.
a) Generalizarea obiect-tip = clasificare
b) Generalizarea tip-tip = generalizare propriuzisa
Def2: Specializarea = opusul generalizarii
Def3: Instantierea = opusul procesului de clasificare
Obs1: Un tip generalizat poate reuni toate proprietatile
comune ale obiectelor si tipurilor constituente.
Reciproca: Toate proprietatile tipului generalizat pot fi
mostenite de tipurile si obiectele constituente.
Exceptii:
1. Mostenirea anumitor proprietati poate fi explicit
invalidata pt. unii constituenti.
2. Pentru tipul generalizat, pot fi definite proprietati
specifice acestuia, care nu se mostenesc.
Ex. de ierarhie de generalizare (prez. pe tabla, la curs)
Def4: Agregarea = forma de abstractizare prin care
un obiect este reconstituit din partile sale
componente.
Mecanism specific:
Punerea in evidenta a structurii unui obiect in mod
gradat, pentru a ilustra:
(a) modul in care partile componente se
raporteaza la obiectul privit ca intreg si (b)
relatiile dintre componente in cadrul intregului.
Ex. de ierarhie de agregare (prez. pe tabla, la curs)
Ex. de ierarhie combinata de generalizare si
agregare (prezentata pe tabla, la curs)
Entitati & legaturi intre entitati
Componenta unui Model Conceptual:
descrierea tuturor entitatilor unei b.d. impreuna cu
toate legaturile dintre ele.
Entitate (definitie) = un continut de sine statator,
adica o realitate obiectiva care exista prin ea
insasi.
Ex: entity: a concrete object in its reality, such
as a person or thing
Caracterizarea entitatilor: prin proprietatile lor.
Tipuri de entitati (def.)= reprezentarea entitatilor in
cadrul modelelor de date
= reprezentari care corespund unor categorii de obiecte
din lumea reala, constituind intensiunea acestei
categorii.
Atribute (def.) = reprezentarea in cadrul modelelor de date
a proprietatilor care caracterizeaza entitatile.
Obs: un tip de entitate poate fi privit ca:
(a) rezultanta agregarii atributelor entitatii pe care o
reprezinta in cadrul unui model de date (abstractizare
prin agregare)
(b) rezultatul clasificarii prin generalizare ‘tip-obiect’ a unei
multimi de entitati avand proprietati comune
(abstractizare prin generalizare)
Def: Extensiunea unui tip de entitate =
multimea entitatilor cu proprietati comune,
reprezentate (descrise) prin tipul de entitate
respectiv; fiecare entitate din aceasta
multime este o instantiere (entitate
individuala) a tipului de entitate caruia ii
apartine.
Obs: Entitatile individuale (instantierile) se
deosebesc intre ele prin valorile diferite pe
care le au atributele lor.
FORME DE STRUCTURARE A DATELOR
in cadrul modelelor:
I. Prima forma de structurare: modalitatea
de asociere a atributelor tabele
II. A doua forma de structurare: modalitatea
de reprezentare a legaturilor existente
intre multimile de entitati ale b.d.
(a) leg. 1:1
(b) leg. 1:N
(c) leg: M:N
Modelul de date IERARHIC
Primul model de date utilizat in construirea structurilor
de date utilizate in SGBD-uri.
Cea mai reprezentativa implementare:
IMS (Information Management System / IBM- dezvoltat
in contextul programului de cercetari spatiale
Apollo)
Caracteristici specifice modelului:
(1) Diagrama structurii de date: graf orientat de tip
arbore ierarhic
(2) Reprezentarea legaturilor intre entitati prin arcele
orientate ale arborelui
Tipurile de Entitati si Atributele aferente, considerate pt.
exemplificarea reprezentarii Bazei de Date a Universitatii
prin intermediul Modelului Ierarhic

Facultate (CodF, NumeF, AdresaF)


Personal (NumeP, FunctieP, SalarP)
Profesor(NumeProf, GradDidacticProf, DisciplinaProf)
Sala (NumarS, AdresaS, CapacitateS)
Student (NumeStud, FormaInvat, SitSc, AnStud)
Intensiunea Modelului Ierarhic al Bazei de Date a Facultatilor:
FACULTATE

PERSONAL PROFESOR SALA

STUDENT

Extensiunea Modelului Ierarhic al Bazei de Date a Facultatilor:


Reprezentarea “in extenso” (extinsa) a BD Facultati, rezultata prin:
(a)Reprezentarea extensiunii tuturor tipurilor de entitati ale BD “Facultati”
(b)Conectarea acestora conform legaturilor de tip arbore ale ierarhiei
reprezentate prin Intensiunea BD Facultati
Descrierea Bazei de Date de tip Ierarhic folosind
LDD:
Presupune definirea celor trei elemente esentiale
structurale:
- arborele de definitie ierarhic (specificarea nodului
radacina si a legaturilor de tip tata-fiu)
- tipurile
de inregistrari(nodurile arborelui)
- campurile din cadrul inregistrarilor(tipul si
dimensiunea)
Ex: cu LDD al SGBD ierarhic IMS
TREE Facultati
RECORD Facultate ROOT
CodF INTEGER
NumeF CHAR(15)
AdresaF CHAR(20)
RECORD Personal PARENT = Facultate
NumeP CHAR(15)
FunctieP CHAR(10)
SalarP REAL
RECORD Profesori PARENT = Facultate
NumeProf CHAR(15)
GradDidacticProf CHAR(10)
DisciplinaProf CHAR(20)
………………..
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

MODELUL DE DATE
RETEA
DBTG = Data Base Task Group
Infiintare: in 1971 , la Conferinta de Normalizare a Limbajelor pentru Baze de Date
CODASYL (COnference on DAta SYstems Language)

Standardul actual al modelului de B.D. de tip RETEA a fost emis de catre DBTG
Raportul initial: 1971 – Prima Specificare in detaliu a unui SGBD avand la baza
modelul de date RETEA
Modificari: 1973, 1976, 1977, 1978

Definitia Modelului de date RETEA:

Modelele de date de tip retea sunt modele bazate pe tabele si grafuri


corespunzatoare pentru cele doua forme de structurare a datelor, anume
tipul de inregistrare si legaturile explicite, avand urmatoarele caracteristici
specifice:
o nodurile grafului corespund tipurilor de entitati (reprezentate in format
extins prin tabele)
o arcele grafului corespund relatiilor dintre multimile de entitati, fiind
reprezentate sub forma de legaturi intre tabele (v. formatul extins)
o configuratia diagramei structurii de date este de graf oarecare (un
anumit tip de entitate poate fi legat la mai multe entitati de tip “parinte”,
sau chiar prin mai multe arce la aceeasi entitare de tip “parinte”)
o arcele sunt etichetate (in mod obligatoriu)

Elementele de definire model specifice DBTG:


- Intensiunea b.d. retea = modelul conceptual = reprezentare prin
intermediul unei diagrame a structurii de date care este un graf oarecare

- Arcele etichetate ale grafului poarta denumirea de Tip de Set; reprezinta


legaturi logice intre doua tipuri de inregistrari:
(a) tipul de inregistrare „proprietar”
(b) tipul de inregistrare „membru”

- Arcele sunt orientate dinspre tipul (a) spre tipul (b)

- Numele Tipului de Set este chiar eticheta arcului corespunzator


Curs_5&6&7&8_ModelulDeDate_Retea&Relational

OBS.1:
Tipul de Set reprezinta conceptul central al filozofiei bazelor de date de tip
retea, fiind o forma de reprezentare in cadrul b.d. de tip DBTG a unei legaturi functionale
intre doua tipuri de entitati: tipul „proprietar” si tipul „membru”. Sensul functionalitatii
(„subordonarii”) este: de la tipul membru la tipul proprietar.

OBS.2:
Un Tip de Set poate fi folosit pentru reprezentarea legaturilor de tip 1:1 sau 1:N,
dar nu poate fi folosit pentru reprezentarea directa a legaturilor de tip M:N

Denumiri echivalente pt. Tipul de Set: fan-set sau Set DBTG

EXEMPLU:

I. Modelul conceptual (Intensiunea) B. D. Facultate

FACULTATE

Angajati Cadre Sali

PERSONAL PROFESOR SALA

Note acordate

NOTE

Note primite

STUDENT

II. Extensiunea unei baze de date de tip retea consta din:


 instantieri ale tipurilor de inregistrari si
 instantieri ale tipurilor de set.
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

OBS.3: Extensiunea unui tip de set DBTG poate fi reprezentata ca o colectie de arce
intre tabele reprezentand tipul de inregistrare „proprietar” si tipul de inregistrare
„membru”
Instantierea unui Tip de Set DBTG este formata din colectia de arce care
leaga o inregistrare „proprietar” de zero sau mai multe inregistrari „membru”

 Un set DBTG este reprezentarea unei legaturi functionale (de tip 1:1 sau 1:N) intre o
inregistrare a unui tip proprietar si una sau mai multe inregistrari de tip membru.

Proprietatile Seturilor si ale Tipurilor de Set:


P1: Fiecare tip de set are un tip de inregistrare proprietar
P2: Fiecare instantiere a unui tip „proprietar” este proprietarul unui set (instantiere de tip
set); un set nu include in mod necesar si inregistrari membru
P3: Fiecare tip de set include cel putin un tip de inregistrare membru; unele tipuri de set
pot incluhe mai mult de un tip membru (cazul tipurilor de set multi-membru)
P4: Un tip de articol nu poate fi si proprietar si membru al aceluiasi tip de set.
P5: Nici o instantiere de inregistrare nu poate participa la mai mult de o instantiere a unui
tip de set.

Implementarea software a seturilor:


(a) lanturi de pointeri
(b) matrici de pointeri
Seturile implementate prin lanturi de pointeri (de tip (a)) = liste circulare avand cap de
lista o inregistrare a tipului
„proprietar”

Tipuri de pointeri utilizabili de catre DBADMIN


( pt. inlantuirea inregistrarilor dintr-un set ):

(1) Pointeri de tip NEXT

(2) Pointeri de tip PRIOR

(3) Pointeri de tip OWNER

DEFS:
(1) – utilizati pt. inlantuirea simpla inainte a inregistrarilor; prezenta pointerilor de tip
NEXT este obligatorie in orice set
(2) - utilizati pt. inlantuirea inapoi a inregistrarilor; acesti pointeri sunt optionali
(3) – leaga o inregistrare de tip „membru” cu „proprietarul” setului;
acesti pointeri sunt optionali
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

Combinatii de tipuri de pointeri:

(C1) Structura cu pointeri NEXT:


- structura cea mai simpla si mai economica
- permite accesul secvential unidirectional la membrii setului, pornind de la
inregistrarea proprietar
- Dezavantaje: pt. stergerea membrului Mi , actualizarea lantului de
legaturi necesita accesarea membrului Mi-1, ceea ce in absenta pointe-
rilor de tip PRIOR se poate realiza numai prin parcurgerea lantului cu
incepere de la pozitia curenta in lant sau de la inregistrarea proprietar,
pana la membrul Mi-1; in mod evident, aceasta operatie poate fi destul de
costisitoare, mai ales pt. valori mari ale indicelui i.
• P

M1 • M2 • Mn •

(C2) Structura cu pointeri NEXT si PRIOR:


- lista circulara dublu inlantuita
- permite accesul inainte si inapoi la membrii setului
- Dezavantaje: implica un consum mai mare de memorie si costuri
suplimentare pt. actualizarea pointerilor
- Avantaje: structura este utila in situatia in care sunt frecvente operatiile
de stergere (permite accesul mai direct la membrul Mi-1, de la orice pozitie
din lista)

• P •

• M1 • • M2 • • Mn •

(C3) Structura cu pointeri NEXT si OWNER


- utila in situatiile in care trebuie accesat in mod frecvent proprietarul,
pornind de la inregistrarile membru

• P

M1 • • M2 • • Mn • •
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

(C4) Structura cu pointeri NEXT, PRIOR si OWNER


- lista circulara triplu inlantuita  structura cea mai completa
- implica cele mai ridicate costuri, de aceea este necesar sa se analizeze
atent oportunitatea de a folosita numai in mod foarte bine justificat

• P •

• M1 •• • M2 •• • Mn • •

Descriere minimala a structurii unei b.d. de tip RETEA:

A. Descrierea Tipurilor de Inregistrari


(nume tip inregistrare, nume si dimensiuni ale campurilor)

B. Descrierea Tipurilor de Set


(nume tip set, precizare tip „proprietar” si a tipului „membru”)

Instrumentul pentru descrierea structurii unei b.d. retea:LDD


Curs_5&6&7&8_ModelulDeDate_Retea&Relational

Ex. de descrierea a structurii b.d. de tip retea a Facultatii, prin LDD :


RECORD NAME IS Facultate
CodF TYPE IS FIXED 2
Nume TYPE IS CHARACTER 15
Adresa TYPE IS CHARACTER 20 FACULTATE
RECORD NAME IS Personal
Nume TYPE IS CHARACTER 15
Functie TYPE IS CHARACTER 10 Angajati Cadr Sali
Salar TYPE IS FIXED 5 e
RECORD NAME IS Profesori
Nume TYPE IS CHARACTER 15 PERSONAL PROFESOR SALA
Functie TYPE IS CHARACTER 10
Disciplina TYPE IS CHARACTER 20
RECORD NAME IS Sala Note acordate
Numar TYPE IS FIXED 3
Adresa TYPE IS CHARACTER 20
Capacitate TYPE IS FIXED 3 NOTE
RECORD NAME IS Note
Nota TYPE IS FIXED 2 Note primite
RECORD NAME IS Student
Nume TYPE IS CHARACTER 15
STUDENT
Incadrare TYPE IS CHARACTER 5
Sit_scolara TYPE IS CHARACTER 1
An TYPE IS FIXED 1
Sex TYPE IS CHARACTER 1

SET NAME IS Angajati FACULTATE


OWNER IS Facultate
MEMBER IS Personal
Angajati Cadre Sali
SET NAME IS Cadre
OWNER IS Facultate
MEMBER IS Profesori
SET NAME IS Sali PERSONAL PROFESOR SALA
OWNER IS Facultate
MEMBER IS Sala
Note acordate
SET NAME IS Note_acordate
OWNER IS Profesori
MEMBER IS Note
NOTE
SET NAME IS Note_primite
OWNER IS Student Note primite
MEMBER IS Note

STUDENT
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

MODELUL DE DATE

RELATIONAL

- Aparut relativ tarziu in teoria si practica Bazelor de Date, ca rezultanta a


atingerii unui anumit nivel de performanta a echipamentelor de calcul

- Reprezinta:

(a) instrument de studiu valoros in teoria bazelor de date

(b) punct de pornire in realizarea de SGBD-uri competitive d.p.d.v. al


performantelor

Primul model de date bazat pe tabele si relatii: E.F. CODD (1970)

Principiile de baza : teoria matematica a relatiilor extinsa in mod logic pt. satisfacerea
cerintelor activitatii de gestionare a datelor

OBS: Modelul de date relational sta la baza majoritatii SGBD-urilor comerciale care
exista si care apar la ora actuala.

Atuuri ale modelului relational si ale b.d. relationale:


Dispun de limbaje pt. manipularea datelor (LMD) de nivel inalt,
simple dar f. puternice, numite Limbaje Relationale.

Carecteristici ale LR :

- capabilitatea de a permite definirea de relatii noi pe baza unor relatii


existente
- permit dezvoltarea, in cadrul SGBD-urilor relationale, a unor interfete
flexibile si prietenoase, cu posibilitate de exploatare directa a b.d. de catre
categorii mult mai largi de utilizatori decat cei ai b.d. retea si ierarhice.
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

Codd's Rules
Un SGBD Relational (RDBMS= Relational DataBase Management System)
trebuie sa-si gestioneze datele stocate in baza de date utilizand numai si
numai capabilitatile sale relationale

Regulile se adreseaza in primul rand producatorilor de RDBMS-uri, avand


valoarea de cerinte de implementare adresate acestora.

Unele dintre aceste reguli au impact si asupra proiectarii aplicatiilor


propriu-zise de Baze Date, menite a rula sub control RDBMS

1. Information Rule (Regula Informatiei)


 toate datele dintr-o baza de date relationala trebuie sa fie reprezentate intr-un
singur mod, anume ca valori in tabele.

2. Guaranteed Access Rule (Regula Accesului Garantat)


 toate valorile stocate intr-o baza de date relationala (inclusiv cele atomice)
sunt garantate a fi accesibile la nivel logic prin intermediul unei combinatii de
nume de tabela, nume de coloana si valoare de cheie primara

3. Systematic Treatment of Null Values (Tratamentul sistematic al


valorilor nule)
 valorile nule sunt suportate in RDBMS-urile total relationale pentru a
reprezenta valorile lipsa, indiferent de tipul acestora

4. Dynamic Online Catalog (Regula Catalogului Dinamic On-line)


 descrierea bazei de date este reprezentata la nivel logic in acelasi mod in care
sunt reprezentate datele obisnuite, adica in tabelele Catalogului Dinamic, care
este organizat ca o baza de date ce contine metadate (metadata = date despre
date)
5. Comprehensive Data Sublanguage Rule (Regula Sublimbajului
Comprehensiv de Date)
 sistemele relationale pot suporta anumite limbaje si sublimbaje dedicate
 trebuie sa existe macar un limbaj sau sublimbaj care sa suporte: definirea
datelor, definirea vederilor, manipularea datelor, constrangerile de integritate,
autorizarea accesului, delimitarea tranzactiilor

6. View Updating Rule (Regula Actualizarii Vederilor)


 toate vederile dintr-o BD relationala sunt, teoretic, actualizabile
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

7. High-Level Insert, Update, and Delete (Regula Inserarii, Actualiza-


rii si Stergerii la Nivel Inalt)
 capabilitatea de a manipula o relatie fundamentala sau derivata ca un singur
operand, este aplicata la regasirea datelor, inserarea, actualizarea si stergerea
acestora

8. Physical Data Independence (Regula Independentei Fizice a


Datelor)
 programele de aplicatie cat si activitatile la terminale (terminal activities),
raman neafectate, la nivel logic, indiferent de schimbarile efectuate la nivelul
reprezentarii structurilor fizice de stocare sau a metodelor fizice de acces la date

9. Logical Data Independence (Regula Independentei Logice a


Datelor)
 programele de aplicatie cat si activitatile la terminale (terminal activities),
raman neafectate, la nivel logic, indiferent de schimbarile efectuate la nivelul
reprezentarii structurilor logice de stocare sau a metodelor logice de acces la
date

10. Integrity Independence (Regula Independentei Integritatii)


 constrangerile de integritata trebuie sa poata fi definite in sublimbaje dedicate
structurilor de date relationale, trebuind sa fie stocabile in cataloage, nu la nivelul
aplicatiilor

11. Distribution Independence (Regula Independentei Distributiei)


 sublimbajele de manipulare date trebuie sa permita programelor de aplicatie
(aplicatiilor) cat si activitatilor de la terminale (terminal activities), sa ramana
neafectate din punct de vedere logic, indiferent daca datele din baza de date
sunt centralizate sau distribuite

12. Nonsubversion Rule (Regula Nonsubversiunii)


 daca sistemele relationale suporta limbaje low-level, aceste limbaje nu pot fi
utilizate in scop subversiv relativ la regulile sau constrangerile de integritate
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

RELATII

 Definitie generala:
Fiind data o colectie de multimi D1 , D2 ,… Dn (nu neaparat
distincte), spunem ca RR este o relatie pe aceste nn multimi, daca este o
multime de n-tuple ordonate de forma (d1 , d2 ,… dn) astfel incat:
d1 ∈ D1 , d2 ∈ D2 ,…, dn ∈ Dn .
Multimile D1 , D2 ,… Dn sunt domeniile relatiei R R..
Valoarea nn este gradul sau aritatea relatiei R R..
 Definitie matematica:
Definim produsul cartezian D1 x D2 x … x Dn al multimilor
D1 , D2 ,… Dn ca fiind multimea tuturor n-tuplelor ordonate de
forma (d1 , d2 ,… dn) astfel incat:
d1 ∈ D1 , d2 ∈ D2 ,…, dn ∈ Dn .
O relatie R R peste multimile D1 , D2 ,… Dn este o submultime a
produsului cartezian D1 x D2 x … x Dn .

Proprietati derivate din caracterul de multime:


 Nerepetabilitatea n-tuplelor

 Ordinea arbitrara de insiruire a n-tuplelor

DOMENII SI ATRIBUTE

Definitie:
Domeniu = Ansamblu de valori admisibile pentru o componenta a
unei relatii

OBS1: Domeniile sunt multimi de elemente mai mult sau mai putin
omogene, din care anumite obiecte semnificative si proprietatile lor
pot lua valori in timp.

Exemple de domenii:
1. Domeniul numelor de orase
2. Domeniul numelor de persoane
3. Domeniul notelor ce pot fi acordate (multimea {1,2,3,4,…,10})
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

Domenii compatibile (definitie)

OBS2: Doua domenii identice sau aflate in relatie de incluziune sunt


compatibile
OBS3: Orice operatie de cuplare a doua relatii sau de comparare a unor
valori din doua domenii are sens numai daca cele doua domenii sunt
compatibile

Definitie:
Atribut = Un domeniu cu nume sau o utilizare sub un nume oarecare
a unui domeniu.

OBS4: Din acelasi domeniu pot fi derivate mai multe atribute cu nume
diferite; intr-o relatie pot exista mai multe atribute derivate din
acelasi domeniu.

CHEI

 Definitie:
Numim cheie a unei relatii R R un subset K K al atributelor relatiei care
satisfac proprietatile:
1) Identificare unica – fiecare tupla a relatiei R
R este identificata in
mod unic de valorile atributelor care compun cheia K.
2) Neredondanta – subsetul K este minimal in sensul ca eliminarea
oricarui atribut din K duce la pierderea proprietatii 1).

Notiuni aferente notiunii de cheie a unei relatii:


 Atribut prim = orice atribut al unei relatii R, care face parte din cel
putin o cheie.
 Cheie primara = aceea dintre cheile unei relatii care este folosita de
SGBD in identificarea unica a tuplelor; statutul de cheie primara este
stabilit de utilizator si comunicat SGBD-ului prin intermediul LDD.
 Chei candidate = toate celelalte chei ale relatiei, care nu sunt cheia
primara.
Curs_5&6&7&8_ModelulDeDate_Retea&Relational

INTENSIUNEA SI EXTENSIUNEA UNEI B. D. RELATIONALE


(Definitii)
Intensiunea unei baze de date relationale = o schema relationala care consta
din una sau mai multe scheme de relatie  schema relationala este
modelul conceptual al bazei de date relationale.
- o schema de relatie cuprinde numele relatiei si atributele
acesteia.
- schemele de relatie sunt folosite atat pentru reprezentarea
tipurilor de entitati cat si a legaturilor dintre ele, in contextul
modelului relational.

Ex. de reprezentare a intensiunii b.d. Facultati, aferent modelului


relational al acesteia:
Schema relationala este urmatoarea:
Facultate (CodF, Nume, Adresa)
Personal (CodF, Nume, Functie, Salar) Scheme de relatie
Profesori (CodF, Nume, Functie, Disciplina)
Sala (CodF, Numar, Adresa, Capacitate)
Student (Nume, Incadrare, Sit_scolara, An, Sex)
Note (Nume_profesor, Nume_student, Nota)

Extensiunea unei baze de date relationale = totalitatea tabelelor bazei de


date relationale, umplute cu valorile concrete ale tuturor datelor care trebuie
sa fie cuprinse in aceste tabele.
CURS 9&10 BAZE DATE / AN II

TOPICI:
• Intensiunea si Extensiunea Bazei de Date Relationale
• Comparatie intre Modelele de Date
• Limbaje Relationale
• Operatorii Algebrei Relationale

INTENSIUNEA SI EXTENSIUNEA UNEI B. D. RELATIONALE


Definitii:
Intensiunea unei baze de date relationale = o schema relationala care consta din una sau mai multe scheme de
relatie  schema relationala este modelul conceptual al bazei de date relationale.
- o schema de relatie cuprinde numele relatiei si atributele acesteia.
- schemele de relatie sunt folosite atat pentru reprezentarea tipurilor de entitati cat si a legaturilor dintre
ele, in contextul modelului relational.
Ex. de reprezentare a intensiunii b.d. Facultati, aferent modelului relational al acesteia:
Schema relationala este urmatoarea:
Facultate (CodF, Nume, Adresa)
Personal (CodF, Nume, Functie, Salar) Scheme de relatie
Profesori (CodF, Nume, Functie, Disciplina)
Sala (CodF, Numar, Adresa, Capacitate)
Student (Nume, Incadrare, Sit_scolara, An, Sex)
Note (Nume_profesor, Nume_student, Nota)
Extensiunea unei baze de date relationale = totalitatea tabelelor bazei de date relationale, populate (incarcate) cu
valorile concrete ale tuturor datelor care trebuie sa fie cuprinse in aceste tabele.
CURS 9&10 BAZE DATE / AN II

ANALIZA COMPARATIVA A MODELELOR DE DATE

Modele Modelul de Date Modelul de Date RETEA Modelul de Date


IERARHIC RELATIONAL
Criterii

Forme de Tipuri de entitati (inregistrari) Tipuri de entitati (inregistrari) Relatii


Structurare a + +
Datelor Legaturi Explicite Legaturi Explicite

Modelul Arbore de definitie Ierarhic Graf oarecare Schema Relationala


Conceptual

Reprezentarea DA – prin conexiuni de tip DA – prin conexiuni de tip DA – prin mecanismul de


Legaturilor 1:N functional functional propagare a cheilor

Reprezentarea NU in mod direct, ci doar prin NU in mod direct, ci doar prin DA – prin scheme de relatie
Legaturilor N:M multiplicarea inregistrarilor tipuri de legatura dedicate separate (sau tabele de
legatura)

Limbajul Navigational Navigational Relational


de formulare a
interogarilor
CURS 9&10 BAZE DATE / AN II

Limbaje de Manipulare Date RELATIONALE (LMD Relationale)

LMD = limbaje pentru formularea interogarilor

Clasificare LMD: - navigationale (modelul ierarhic si modelul retea)


- relationale (modelul relational)

A. Caracteristici LMD navigational:


- se bazeaza pe utilizarea conceptului de „cursor” (indica pozitia curenta in baza de date).
- actiuni utilizator asupra cursorului:
a1)modificare pozitie cursor
a2)modificare date din pozitia curenta cursor
- LMD navigationale exploateaza direct legaturile explicite existente in baza de date  rezolvarea
interogarilor presupune in general navigatia „cursorului” pe lanturile de legaturi

B. Caracteristici LMD relational:


Ceea ce diferentiaza Modelul de Date Relational in raport cu celelalte modele, d.p.d.v. al posibilitatii
formularii interogarilor: LMD RELATIONAL
OBS: Celelalte modele permit doar LMD navigational)

Nota: In MR (Modelul Relational), intre relatii nu exista legaturi explicite  pt. realizarea conexiunii intre
diferite relatii in vederea tratarii interogarilor este necesara cuplarea dinamica a relatiilor (implementarea
operatiilor de cuplare – necesita echipamente de calcul evoluate, dispozitive de memorare de suficient de mare
capacitate, tehnici avansate de programare si structurare a datelor)
CURS 9&10 BAZE DATE / AN II

Limbaje de Interogare pt. Modelul Relational (grupe principale) :

A. Limbaje care au la origine Algebra Relationala (interogarile sunt exprimate prin aplicarea unor operatori
specializati asupra relatiilor)
Obs: Limbajele derivate se numesc Limbaje Algebrice.
B. Limbaje care au la origine Calculul Relational (interogarile descriu multimea tuplelor rezultat prin
specificarea unui predicat pe care aceste tuple trebuie sa-l satisfaca)
Obs1: predicat = conditie ( in acest context)
Obs2: Obiecte primitive cu care se opereaza in Calculul Relational:
(1) tuple ==> Calculul Relational al Tuplelor
(2) valori din domenii ==> Calculul Relational al Domeniilor
 B.1. Limbaje bazate pe Calculul Relational al Tuplelor
B.2. Limbaje bazate pe Calculul Relational al Domeniilor
Obs3: a. Algebra Relationala, Calculul Relational al Tuplelor si Calculul Relational al Domeniilor sunt
limbaje abstracte (nu sunt implementate ca atare in nici un SGBD existent).
b. Algebra Relationala, Calculul Relational al Tuplelor si Calculul Relational al Domeniilor servesc ca
referinta pt. evaluarea limbajelor reale existente in diferite SGBD-uri (care sunt derivate din aceste
formalisme abstracte); au fost propuse (definite) ca atare de catre CODD; reprezinta facilitatile
minime pe care trebuie sa le posede orice limbaj de interogare relational, pentru a putea fi
considerat limbaj relational complet.
c. Cele trei formalisme (AR, CRT si CRD) sunt echivalente ca putere de expresie ( pt. orice
interogare, exprimata in cadrul unuia din formalisme, exista interogari echivalente in fiecare din
celelalte doua).
CURS 9&10 BAZE DATE / AN II

Obs4: Facilitatile suplimentare, necuprinse in formalismele abstracte, de care dispun limbajele reale,
includ:
- comenzi de inserare
- comenzi de stergere
- comenzi de modificare
- posib. efect. de calcule aritm.
- fctii de tiparire a relatiilor de atribuire a acestora unor nume de variabile
- fctii de agregare care efectueaza diverse operatii: medie, suma, min, max (pe
valorile unei coloane dintr-o relatie)
CURS 9&10 BAZE DATE / AN II

Limbaje reale derivate din formalismele prezentate (exemple):

Ex1. ISBL ( Information System Base Language) –dezvoltat in cadrul IBM (centrul stiintific din
Peterlee) = limbaj de interogare bazat pe Algebra Relationala

Ex2. QUEL = limbaj de interogare al SGBD relational INGRES, dezvoltat la Univ. Berkley
(California) sub sistem UNIX; este bazat pe Calculul Relational al Tuplelor

Ex3. QBE ( Query By Example) –dezvoltat in cadrul IBM; are la baza Calculul Relational al
Domeniilor.

Ex4: SQUARE si SEQUEL (SQL) – limbaje intermediare intre Algebra Relationala si Calculul
Relational; dezvoltate in cadrul IBM (sectia din San Jose) ca limbaje de interogare
pentru SGBD-ul SystemR
CURS 9&10 BAZE DATE / AN II

ALGEBRA RELATIONALA
Def. Algebra Relationala =Formalism abstract propus de Codd pentru interogarea b.d. relationale
Bazat pe : set de operatori folositi ca primitive pt. construirea interogarilor.
Obs. AR = limbaj abstract de tip procedural (interogarile exprimate cu ajutorul ei sunt de fapt
secvente de operatori care specifica explicit modul de obtinere al relatiei rezultat)
Operatorii AR:
- operatori unari sau binari care actioneaza asupra relatiilor; rezultatul lor sunt tot
relatii  posibilitatea asocierii si imbricarii pt. a forma interogari complexe
Grupe de Operatori:
O1: Operatori pt. Multimi ; O2: Operatori Relationali Speciali
O1:
 Reuniune
 Intersectie
 Diferenta
 Produs Cartezian

OBS: Pt. Operatiile de Reuniune, Intersectie si Diferenta, cele doua relatii operand trebuie sa fie compatibile la
reuniune, ceea ce inseamna ca trebuie sa fie de acelasi grad, iar atributele corespondente trebuie sa fie
derivate din acelasi domeniu.
CURS 9&10 BAZE DATE / AN II

Definitiile Operatorilor pt. Relatii privite ca Multimi (operatorii din categoria O1):

Reuniunea a doua relatii A si B, notata A ∪ B, este o relatie R care contine toate tuplele care apartin relatiei A sau
relatiei B.

Intersectia a doua relatii A si B, notata A ∩ B, este o relatie R care contine toate tuplele care apartin atat relatiei A
cat si relatiei B.

Diferenta a doua relatii A si B, notata A - B, este o relatie R care contine toate tuplele care apartin relatiei A dar nu
apartin relatiei B.

Produsul Cartezian a doua relatii A si B, notat A x B, A fiind de gradul m iar B de gradul n, este o relatie R de
grad m+n, care contine toate tuplele obtinute prin concatenarea fiecarei tuple din relatia A cu fiecare
tupla din relatia B (exemplificare).
CURS 9&10 BAZE DATE / AN II

Prezentarea si Definitiile Operatorilor Relationali Speciali (operatorii din categoria O2):


O2.1 Operatori Relationali Speciali Unari:
- Proiectia
- Selectia
O2.2 Operatori Relationali Speciali Binari:
- Cuplarea (Join)
- Diviziunea
O2.1 :
Selectia printr-un predicat P a unei relatii A, notata σP(A), este o relatie R care contine toate tuplele din
relatia A care satisfac predicatul P. Predicatul P este o formula (conditie) care poate contine:
- operanzi ce sunt fie nume de atribute fie constante
- operatori de comparatie ( =, <, >, ≠, <=, >= )
- operatori logici ( &, | , ! )
Proiectia pe atributele A1, A2, A3,..., An a unei relatii B de grad m>n si care cuprinde atributele A1, A2, A3,...,
An , notata π A1, A2, A3,..., An(B), este o relatie R de grad n obtinuta din relatia B astfel:
Pasul 1: Se elimina din relatia B atributele care nu sunt specificate in lista de proiectie, a.i. raman doar
coloanele corespunzatoare atributelor A1, A2, A3,..., An
Pasul 2: Se reordoneaza atributele ramase in ordinea specificata in lista de proiectie A1, A2, A3,..., An
Pasul 3: Se elimina tuplele duplicat.
 Proiectia unei relatii = o selectie verticala a acesteia (se selecteaza coloanele coresp. atributelor din lista de
proiectie), urmata de eliminarea tuplelor duplicat si reordonarea atributelor ramase in ordinea
specificata prin lista de proiectie.
CURS 9&10 BAZE DATE / AN II

O2.2 :

Cuplarea (Join) :
Fie θ un operator aritmetic de comparatie ( =, <, >, ≠, <=, >= );
Fie X un atribut al relatiei A si Y un atribut al relatiei B, X si Y fiind definite pe domenii compatibile;
Numim θ - cuplare a relatiilor A si B dupa atributele X si Y , notata

A 43 B
XθY

o relatie R care contine acele tuple ale produsului cartezian AxB care au proprietatea ca valorile x si y
corespunzatoare atributelor X respectiv Y sunt in relatia x θ y.

OBS:
A 43 B = σ X θ Y (AxB)
XθY
CURS 9&10 BAZE DATE / AN II

Diviziunea relatiei A de grad m prin relatia B de grad n , notata A ÷ B, este o relatie R de grad m-n, formata
din multimea tuplelor r cu proprietatea ca pentru orice tupla b din B exista o tupla a in A egala cu
rezultatul concatenarii tuplelor r si b.

OBS:
a) Multimea atributelor relatiei B trebuie sa fie o submultime a multimii atributelor relatiei A. Relatia R
contine doar acele atribute din relatia A care nu apar in relatia B.
b) O tupla din relatia A este retinuta in urma operatiei de diviziune numai daca este legata de fiecare tupla
din relatia B printr-o conditie predefinita.
c) Relatia obtinuta prin produsul cartezian al relatiilor R si B este inclusa in relatia A (rezulta direct din
definitie); notand prin Rest multimea tuplelor din relatia A care nu apar in produsul cartezian al relatiilor
B si R obtinem urmatoarea relatie ( asemanatoare cu teorema impartirii cu rest din aritmetica):

A = B x R ∪ Rest
LMD RELATIONALE
LMD = limbaje pentru formularea interogarilor

Clasificare LMD: - navigationale (modelul ierarhic si modelul retea)


- relationale (modelul relational)

Caracteristici:
A. LMD navigational:
- se bazeaza pe utilizarea conceptului de „cursor” (indica
pozitia curenta in baza de date).
- actiuni utilizator asupra cursorului:
a1)modificare pozitie cursor
a2)modificare date din pozitia curenta cursor
- lmd navigationale exploateaza direct legaturile explicite
existente in baza de date ➔ rezolvarea interogarilor presupune
in general navigatia „cursorului” pe lanturile de legaturi

B. LMD relational:
Ceea ce diferentiaza Modelul de Date Relational in raport cu celelalte
modele, d.p.d.v. al posibilitatii formularii interogarilor:
LMD RELATIONAL
(celelalte modele permit doar LMD navigational)
In MR, intre relatii nu exista legaturi explicite ➔ pt. realizarea conexiunii
intre diferite relatii in vederea tratarii interogarilor este necesara cuplarea
dinamica a relatiilor (implementarea operatiilor de cuplare – necesita
echipamente de calcul evoluate, dispozitive de memorare de suficient de
mare capacitate, tehnici avansate de programare si structurare a datelor)

Limbaje de Interogare pt. Modelul Relational ( grupe principale ):

A. Limbaje care au la origine Algebra Relationala (interogarile sunt


exprimate prin aplicarea unor operatori specializati asupra relatiilor)
Obs: Limbajele derivate se numesc Limbaje Algebrice.

B. Limbaje care au la origine Calculul Relational (interogarile descriu


multimea tuplelor rezultat prin specificarea unui predicat pe care
aceste tuple trebuie sa-l satisfaca)
Obs1: predicat = conditie ( in acest context)
Obs2: Obiecte primitive cu care se opereaza in Calculul Relational:
(1) tuple ==> Calculul Relational al Tuplelor
(2) valori din domenii ==> Calculul Relational al Domeniilor

➔ B.1. Limbaje bazate pe Calculul Relational al Tuplelor


B.2. Limbaje bazate pe Calculul Relational al Domeniilor
Obs3: a. Algebra Relationala, Calculul Relational al Tuplelor si
Calculul Relational al Domeniilor sunt limbaje abstracte (nu
sunt implementate ca atare in nici un SGBD existent).
b. Algebra Relationala, Calculul Relational al Tuplelor si
Calculul Relational al Domeniilor servesc ca referinta pt.
evaluarea limbajelor reale existente in diferite SGBD-uri
(care sunt derivate din aceste formalisme abstracte); au fost
propuse (definite) ca atare de catre CODD; reprezinta
facilitatile minime pe care trebuie sa le posede orice limbaj de
interogare relational, pentru a putea fi considerat limbaj
relational complet.
c. Cele trei formalisme (AR, CRT si CRD) sunt echivalente ca
putere de expresie ( pt. orice interogare, exprimata in cadrul
unuia din formalisme, exista interogari echivalente in fiecare
din celelalte doua).

Obs4: Facilitatile suplimentare, necuprinse in formalismele


abstracte, de care dispun limbajele reale, includ:
- comenzi de inserare
- comenzi de stergere
- comenzi de modificare
- posib. efect. de calcule aritm.
- fctii de tiparire a relatiilor de atribuire a
acestora unor nume de variabile
- fctii de agregare care efectueaza diverse
operatii: medie, suma, min, max (pe valorile
unei coloane dintr-o relatie)
Limbaje reale derivate din formalismele prezentate (exemple):

Ex1. ISBL ( Information System Base Language) –dezvoltat in


cadrul IBM (centrul stiintific din Peterlee) = limbaj de
interogare bazat pe Algebra Relationala

Ex2. QUEL = limbaj de interogare al SGBD relational INGRES,


dezvoltat la Univ. Berkley (California) sub sistem
UNIX; este bazat pe Calculul Relational al Tuplelor

Ex3. QBE ( Query By Example) –dezvoltat in cadrul IBM; are la


baza Calculul Relational al Domeniilor.

Ex4: SQUARE si SEQUEL (SQL) – limbaje intermediare intre


Algebra Relationala si Calculul Relational;
dezvoltate in cadrul IBM (sectia din San Jose) ca
limbaje de interogare pentru SGBD-ul SystemR
ALGEBRA RELATIONALA

Def. Formalism abstract propus de Codd pentru interogarea b.d.


relationale

Bazat pe : set de operatori folositi ca primitive pt. construirea


interogarilor.

Obs. AR = limbaj abstract de tip procedural (interogarile


exprimate cu ajutorul ei sunt de fapt secvente de
operatori care specifica explicit modul de obtinere al
relatiei rezultat)

Operatorii AR:
- operatori unari sau binari care actioneaza
asupra relatiilor; rezultatul lor sunt tot relatii ➔
posibilitatea asocierii si imbricarii pt. a forma
interogari complexe

Grupe de Operatori:

O1: Operatori pt. Multimi

❑ Reuniune
❑ Intersectie
❑ Diferenta
❑ Produs Cartezian

OBS: Pt. Operatiile de Reuniune, Intersectie si Diferenta, cele doua


relatii operand trebuie sa fie compatibile la reuniune, ceea ce
inseamna ca trebuie sa fie de acelasi grad, iar atributele
corespondente trebuie sa fie derivate din acelasi domeniu.
Definitii:

Reuniunea a doua relatii A si B, notata A  B, este o relatie R care contine


toate tuplele care apartin relatiei A sau relatiei B.

Intersectia a doua relatii A si B, notata A  B, este o relatie R care contine


toate tuplele care apartin atat relatiei A cat si relatiei B.

Diferenta a doua relatii A si B, notata A - B, este o relatie R care contine


toate tuplele care apartin relatiei A dar nu apartin relatiei B.

Produsul Cartezian a doua relatii A si B, notat A x B, A fiind de gradul m


iar B de gradul n, este o relatie R de grad m+n, care contine toate
tuplele obtinute prin concatenarea fiecarei tuple din relatia A cu
fiecare tupla din relatia B (exemplificare).

O2: Operatori Relationali Speciali

O2.1 Operatori Relationali Speciali Unari:


- Proiectia
- Selectia

O2.2 Operatori Relationali Speciali Binari:


- Cuplarea (Join)
- Diviziunea

Definitii:
O2.1 :
Selectia printr-un predicat P a unei relatii A, notata P(A), este o relatie
R care contine toate tuplele din relatia A care satisfac
predicatul P. Predicatul P este o formula (conditie) care
poate contine:
- operanzi ce sunt fie nume de atribute fie
constante
- operatori de comparatie ( =, <, >, , <=, >= )
- operatori logici ( &, | , ! )
Proiectia pe atributele A1, A2, A3,..., An a unei relatii B de grad m>n si
care cuprinde atributele A1, A2, A3,..., An , notata  A1, A2, A3,..., An(B),
este o relatie R de grad n obtinuta din relatia B astfel:
Pasul 1: Se elimina din relatia B atributele care nu sunt specificate in
lista de proiectie, a.i. raman doar coloanele corespunzatoare
atributelor A1, A2, A3,..., An
Pasul 2: Se reordoneaza atributele ramase in ordinea specificata in
lista de proiectie A1, A2, A3,..., An
Pasul 3: Se elimina tuplele duplicat.

➔ Proiectia unei relatii = o selectie verticala a acesteia (se selecteaza


coloanele coresp. atributelor din lista de proiectie), urmata
de eliminarea tuplelor duplicat si reordonarea atributelor
ramase in ordinea specificata prin lista de proiectie.

O2.2 :
Cuplarea (Join) :
Fie  un operator aritmetic de comparatie ( =, <, >, , <=, >= );
Fie X un atribut al relatiei A si Y un atribut al relatiei B, X si Y
fiind definite pe domenii compatibile;
Numim  - cuplare a relatiilor A si B dupa atributele X si Y , notata

A  B
XY

o relatie R care contine acele tuple ale produsului cartezian AxB


care au proprietatea ca valorile x si y corespunzatoare atributelor X
respectiv Y sunt in relatia x  y.

OBS:
A  B =  X  Y (AxB)
XY
Diviziunea relatiei A de grad m prin relatia B de grad n , notata A  B,
este o relatie R de grad m-n, formata din multimea tuplelor r
cu proprietatea ca pentru orice tupla b din B exista o tupla a
in A egala cu rezultatul concatenarii tuplelor r si b.

OBS:
a) Multimea atributelor relatiei B trebuie sa fie o submultime a
multimii atributelor relatiei A. Relatia R contine doar acele
atribute din relatia A care nu apar in relatia B.
b) O tupla din relatia A este retinuta in urma operatiei de diviziune
numai daca este legata de fiecare tupla din relatia B printr-o
conditie predefinita.
c) Relatia obtinuta prin produsul cartezian al relatiilor R si B este
inclusa in relatia A (rezulta direct din definitie); notand prin Rest
multimea tuplelor din relatia A care nu apar in produsul cartezian
al relatiilor B si R obtinem urmatoarea relatie ( asemanatoare cu
teorema impartirii cu rest din aritmetica):

A = B x R  Rest
NORMALIZAREA RELATIILOR. FORME NORMALE

Normalizarea – tehnica obligatorie in proiectarea conceptuala a oricarei


b.d., dar in mod special in b.d. relationale

Concepte fundamentale:
(1) Dependenta functionala (FN1, FN2, FN3, FNBC/F.N. Boyce-Codd)
(2) Dependenta multivalorica (FN4)
(3) Dependenta de cuplare (FN5)

Schema de relatie = tupla care cuprinde: (a) numele relatiei si


(b) atributele asociate

Problema proiectarii robuste a unei b.d. relationale:


(a) alegerea schemelor de relatie si
(b) modul de grupare a atributelor in relatii pt. a reprezenta
tipuri de entitati sau legaturi intre tipurile de entitati

Criteriul central de proiectare: Dependenta Datelor

Dependenta Functionala (Def.):


Fie: - schema de relatie R(A1, A2,..., An)
- X si Y – atribute simple sau compuse, submultimi ale
multimii de atribute {A1, A2,..., An}
Spunem ca atributul X determina functional atributul Y (sau Y
depinde functional de X) ddca oricarei valori a atributului X ii
corespunde o singura valoare a atributului Y.

Notatie: X → Y.

Dependenta Functionala Totala & D. F. Partiala (Defs.):


Dependenta functionala X → Y este totala daca nu exista nici
un subset Z al atributului X ( Z X) a. i. Z→ Y.
In caz contrar dependenta se numeste partiala.

OBS1: Daca X → Y, atunci pt. orice subset Z al lui Y avem X→Z.


OBS2: Daca X → Y si X este un atribut simplu, atunci Y este dependent
functional total fata de X.
OBS3: Daca Y este dependent functional total fata de Z, atunci X →Y pt.
orice atribut compus X care contine pe Z.
Axiomele lui ARMSTRONG: (set de reguli pt. deducerea dependentelor
functionale care sunt consecinte ale unui set de dependente
functionale date initial)

Ipoteza: Fie X, Y si Z submultimi ale multimii de atribute { A1, A2,..., An }


(A1) – reflexivitate: Daca Y  X atunci X → Y.

(A2) - augmentare: Daca X→ Y, atunci X  Z → Y  Z.

(A3) - tranzitivitate: Daca X→ Y si Y → Z, atunci si X → Z.

OBS. A3 este singura axioma care conduce la dependente noi si netriviale.


Celelalte doua axiome sunt utile in combinatie cu A3.

Inchidere Tranzitiva a setului de dependente functionale F (notata F*) =


=multimea dependentelor functionale care se pot obtine prin
aplicarea repetata, in toate modurile posibile, a regulilor A1-A3
asupra unui set initial de dependente functionale F .

Dependente Multivalorice :
- mai putin restrictive decat dep. Functionala
- au implicatii in normalizarea relatiilor
Def.:
Fie schema de relatie R(X,Y,Z),
unde X,Y si Z sunt atribute simple sau compuse.
Notam cu x, y si z valori ale atributelor X, Y si Z.

Spunem ca exista o Dependenta Multivalorica a atributului Z fata de Y


(sau Y multidetermina pe Z) si notam Y →→Z daca pt. orice valori x1, x2,y,
z1 si z2, cu x1x2 si z1z2 , astfel incat tuplele (x1,y, z1) si (x2,y, z2) fac parte
din relatia R, atunci si tuplele (x1,y, z2) si (x2,y, z1) fac parte din relatia R.

OBS1: Dependenta multivalorica Y→→Z implica si dependenta


multivalorica complementara Y→→X (acest lucru rezulta direct din simetria
definitiei dependentei multivalorice).
OBS2: In particular, unele dependente multivalorice pot fi de fapt
dependente functionale.

Axiomele lui Armstrong pentru dependentele functionale si


multivalorice, precum si pt. legatura dintre acestea: (set de reguli
pt. determinarea sistematica a tuturor dependentelor multivalorice care
sunt o consecinta logica a unui set initial)

Ipoteza: Fie X, Y si Z submultimi ale multimii de atribute U={ A1, A2,..., An }


(A1) – reflexivitate pt. dep. functionale:
Daca Y  X atunci X → Y.

(A2) - augmentare pt. dep. functionale:


Daca X→ Y, atunci X  Z → Y  Z.

(A3) - tranzitivitate pt. dep. functionale:


Daca X→ Y si Y → Z, atunci si X → Z.

(A4) – complementare pentru dep. multivalorice:


Daca X→→Y, atunci X →→U-(X  Y) ,
unde U-(X  Y) este atributul complementar lui Y in raport cu atributul X
(aceasta regula deriva din caracterul simetric al dependentelor multivalorice)

(A5) – augmentare pentru dep. multivalorice:


Daca X→→Y, si V W, atunci WX →→ V  Y.

(A6) - tranzitivitate pt. dep. multivalorice:


Daca X→→Y si Y →→ Z, atunci X →→ Z-Y.

(A7) – Daca X→Y atunci X→→Y (orice dependenta functionala este in


acelasi timp si o dependenta multivalorica)

(A8) – Daca X→→Y, Z  Y si pt. W disjunct fata de Y avem: W → Z,


atunci X → Z.

OBS1: Aceste axiome extind setul de axiome date pentru dependenta


functionala, constituind un set complet si sigur de reguli de inferenta,
adica permit deducerea tuturor dependentelor functionale si
multivalorice care sunt logic deductibile din setul initial de
dependente <==> orice relatie care satisface setul initial de
dependente va satisface de asemenea orice dependenta din inchiderea
tranzitiva a acestui set.
OBS2: Axiomele (A5) si (A6) pun in legatura dependentele functionale cu
cele multivalorice.
Descompunerea Schemelor de Relatie

Calea principala de eliminare a Dependentelor Functionale din schemele


de relatie (pt. evitarea redondantei datelor):

Descompunerea schemei de date intr-o colectie de scheme mai simple care


trebuie sa evite aceste probleme

Conventie:
Schema de Relatie == Multimea atributelor relatiei
R(A1, A2,..., An) echivalent cu R = { A1, A2,..., An }

Def. 1: Descompunerea unei Scheme de Relatie R = { A1, A2,..., An }


inseamna inlocuirea acesteia printr-o colectie  = { R1, R2,..., Rk }
de submultimi ale lui R , a.i.
R = R1 R2 ... Rk
unde R1, R2,..., Rk nu sunt neaparat disjuncte.

OBS.1: Printr-o astfel de descompunere se realizeaza o separare a


continutului de informatie din relatia initiala a.i. fiecare din
schemele de relatie rezultate sa reprezinte un singur tip de entitate
sau o legatura intre doua tipuri de entitati.

OBS.2: Numai o parte dintre descompunerile de acest tip au proprietatea ca


din relatiile corespunzatoare schemelor descompunerii se poate
reconstitui relatia initiala; pt. o astfel de reconstituire se foloseste
operatorul de cuplare.
Def. 2: Descompunere echivalenta a relatiei R, notata cu  :
Descompunerea  a relatiei R este echivalenta cu relatia R daca
satisface urmatoarele doua proprietati:
(1) cuplare fara pierdere de informatie ( lossless join property )
(2) conservarea dependentelor ( dependency preservation )

(1) Cuplarea fara pierdere de informatie (LJP) = proprietatea unei


descompuneri de a conserva continutul de informatie al oricarei relatii
asupra careia se aplica aceasta descompunere.
Formalizarea matematica:
Fie R o schema de relatie descompusa in schemele R1, R2, ..., Rk.
Aceasta descompunere are proprietatea LJP daca pt. orice relatie r
reprezentand valoarea actuala a relatiei R, avem:
r = R1(r) R2(r)...  Rk(r)
( deci r este rezultatul cuplarii proiectiilor sale dupa schemele de relatie
R1, R2, ..., Rk ) .
Caz particular: Teorema lui ULLMAN
Fie  = { R1, R2 } o descompunere a schemei de relatie R. In acest caz
particular,  conctituie o descompunere fara pierdere de informatie in
raport cu un set dat de dependente functionale initiale, daca in urma
descompunerii obtinem una din urmatoarele dependente functionale:
(R1  R2 ) → (R1- R2 ),
(R1  R2 ) → (R2 – R1) .

COROLAR:
Daca intersectia celor doua proiectii ale unei descompuneri, R1  R2
este sau contine o cheie a uneia dintre componentele R1 sau R2 , atunci
descompunerea este fara pierdere de informatie. Acest lucru se verifica
prin existenta cel putin uneia din dependentele:
(R1  R2 ) → R1→ (R1 - R2 ),
(R1  R2 ) → R2→ (R2 – R1 ).
OBS:
Proprietatea de conservare a informatiei depinde nu numai de
descompunerea  , ci si de setul initial de dependente functionale existente
in schema de relatie R.
(2) Conservarea dependentelor (DP) = proprietatea unei descompuneri de
a permite deducerea tuturor dependentelor din relatia initiala pe baza
dependentelor existente in descompunere.
Formalizarea matematica:
Fie R o schema de relatie si  = { R1, R2 ,..., Rk } o descompunere a sa:
- o parte dintre dependentele functionale existente in R se vor regasi
in cadrul schemelor de relatie Ri din descompunerea sa
- dependentele care implica atribute din componente diferite Ri si Rj
ale descompunerii nu vor fi regasite in cadrul schemelor
individuale Ri, ca atare se pierd.
Obs: Proprietatea (DP) este importanta d.p.d.v. al integritatii bazei de date,
deoarece dependentele din cadrul unei scheme de relatie R pot fi privite ca si
constrangeri de integritate a datelor din cadrul schemei.
FN1: Forma Normala 1.
Def: O relatie R este in forma normala FN1 ddaca toate atributele sale
iau numai valori atomice. (valori atomice = valori care nu pot fi
descompuse in elemente constitutive mai fine; ex: atributul Adresa nu are
valoare atomica).

Obs: Conditia ca o relatie sa se afle in FN1 impune ca domeniile pe care se


definesc atributele relatiei R sa contina doar elemente atomice <== >
toate tuplele unei relatii au acelasi numar de campuri, cu aceeasi
dimensiune.

FN2: Forma Normala 2.


Def: O relatie R este in forma normala FN2 daca este in FN1 si orice
atribut neprim este total dependent fata de orice cheie a relatiei.

FN3: Forma Normala 3.


Def: O relatie R este in forma normala FN3 daca este in FN2 si nici un
atribut neprim nu este functional dependent fata de un alt atribut neprim al
relatiei.

Forma Normala BOYCE – CODD (FNBC)


Def: O relatie R este in forma normala FNBC daca pentru orice
dependenta functionala X → A din cadrul relatiei R, unde A este un atribut
care nu face parte din X, atributul X (care poate fi si un atribut compus) este
o cheie in R sau include o cheie din R.

OBS: O relatie care este in FNBC, se afla si in FN3, FN2 si FN1.

FN4: Forma Normala 4.


Def: O relatie R este in forma normala FN4 daca oricare ar fi dependenta
multivalorica X →→ Y, unde Y nu este un subset al lui X si X  Y nu
contine toate atributele lui R, atunci atributul simplu sau compus X este o
cheie sau contine o cheie a lui R.

DEPENDENTA DE CUPLARE. FORMA NORMALA FN5:

OBS1: Rezolvarea neredondantei datelor in contextul bazei de date necesita


analiza atat a dependentelor functionale si multivalorice, cat si a asa-numitor
dependente de cuplare.
Def:
Fie R(A1, A2, ... , An) o schema de relatie si R1, R2, ... , Rk submultimi
ale multimii { A1, A2, ... , An } . Spunem ca exista o dependenta de cuplare ,
notata cu *( R1, R2, ... , Rk), ddaca orice instantiere r a lui R este rezultatul
cuplarii proiectiilor sale pe R1, R2, ... , Rk

<==> r = R1(r) R2(r)...  Rk(r)

Def. echivalenta:
*( R1, R2, ... , Rk) este o dependenta de cuplare pe R ddaca
descompunerea lui R dupa componentele R1, R2, ... , Rk este fara pierdere
de informatie.

OBS2: Dependentele multivalorice sunt cazuri particulare de dependente de


cuplare.
Transcriere matematica: Orice relatie R(X,Y,Z) care satisface dependentele
multivalorice X→→Y si X→→Z satisface si dependenta de cuplare
*(XY,XZ).

FORMA NORMALA FN5:


Def: O relatie R este in forma normala FN5 ddaca toate dependentele de
cuplare existente in relatie sunt implicate de o cheie a acesteia.

OBS3:
Forma normala FN5 este o generalizare a formei normale FN4, avand ca
punct de pornire conceptul de dependenta de cuplare.

Procesul de trecere a unei relatii in forma normala FN5 :


- eliminarea dependentelor de cuplare din cadrul
relatiei, impreuna cu anomaliile pe care le cauzeaza
- selectarea in acest scop a dependentelor de cuplare
care prezinta interes d.p. de vedere al generarii de
redondante

Ex. de dependente de cuplare care nu conduc la redondanta in memorarea


datelor si, ca atare nu cauzeaza anomalii: dependentele de cuplare cauzate de
o cheie a relatiei.
CONCLUZII privind NORMALIZAREA RELATIILOR:

FN1 - se obtine prin atomizarea tuturor atributelor relatiei

FN2 = FN1 + eliminarea tuturor dependentelor functionale partiale


ale atributelor neprime in raport cu orice cheie a relatiei

FN3 = FN2 + eliminarea tuturor dependentelor functionale dintre


toate atributele neprime ale relatiei

FNBC = eliminarea tuturor dependentelor functionale fata de atribute


care nu sunt chei sau nu contin o cheie.

DEFINITIE GLOBALA PT. FNBC, FN4 si FN5:


O relatie este in FNBC (respectiv FN4 sau FN5) ddaca
singurele dependente functionale (respectiv multivalorice
sau de cuplare) existente sunt cele implicate de o cheie a
relatiei R.
OBS: Orice dependenta intre atributele unei relatii, indiferent de tipul
acesteia (functionala, multivalorica sau de cuplare), este
producatoare de redondante si anomalii, doar atunci
cand nu este implicata de o cheie a relatiei.
Scopul normalizarii relatiilor este:
Eliminarea din schemele de relatie a dependentelor functionale,
multivalorice si de cuplare nocive, cu scopul de a produce o schema
relationala cu proprietati mai bune d.p.d.v. al neredondantei
datelor, precum si al posibilelor anomalii ce pot sa apara in cazul
operatiilor de adaugare, stergere si actualizare.

Locul normalizarii in contextul activitatii de proiectare a B.D.

Teoria Normalizarii = cadru de ghidare a proiectantului b.d. in vederea


realizarii de scheme relationale mai bune.

OBS1: Prin procesul normalizarii, sunt inglobate in modelul relational


aspectele semantice aferente dependentelor care apar in contextul general
al datelor modelate, decurgand din semnificatia pe care insusi proiectantul
o atribuie diferitelor categorii de date.

OBS2: Dependentele sunt formulate sub forma unor constrangeri, care


reflecta caracteristici sau aspecte suplimentare ale partii din lumea reala ce
se modeleaza prin schema relationala.

OBS3: Decizia de a aplica sau nu o anumita etapa de normalizare este la


latitudinea proiectantului b.d. , aceasta decizie depinzand de contextul
existent. Normalizarea este avantajoasa in principiu , dar in unele cazuri
normalizarea completa (adica pana la obtinerea FN5) poate fi
dezavantajoasa.
Complemente Curs Baze Date/ An II Automatica

Exemplu concret de identificare a Dependentelor Functionale dintr-o relatie si


de obtinere a Formelor Normale FN2 si FN3.
Ipoteza:
Fie Schema de Relatie numita Profesori_Note, reprezentata in modul urmator:

Profesori_Note(NumeProf, GradDidacticP, SalarP, NumeStud, Nota)


Se cere:
(A)Sa se identifice toate dependentele functionale din aceasta schema de relatie,
apoi
(B)sa se obtina Forma Normala FN2 aferenta; (C) se obtina Forma Normala FN3.

Rezolvare:
(A) Identificarea dependentelor functionale:
In schema de relatie Profesori_Note data in ipoteza, se pot identifica urmatoarele
dependente functionale:

1) NumProf → GradDidacticP (deci, atributul NumeProf determina functional atributul


GradDidacticP deoarece fiecare cadru didactic are
un anumit grad didactic: Prep., Asistent, Sef Lucrari,
Conf. sau Prof.)

2) GradDidacticP → SalarP ( deoarece salarizarea fiecarui cadru didactic depinde in mod


direct de gradul didactic pe care-l are cadrul didactic
respectiv)

3) NumProf → SalarP ( deoarece fiecarui cadru didactic in parte i se calculeaza


salariul si in functie de caracteristicile profesionale
proprii: spor de vechime, spor de doctorat etc)

4) NumeProf NumeStud → Nota (atributul compus NumeProf NumeStud determina


functional atributul Nota, deoarece un anumit
Profesor acorda unui anumit Student o anumita
Nota)

Obs.: Relatia Profesori_Note are o singura cheie compusa, formata din atributele
NumeProf si NumeStud.

➔ Diagrama Dependentelor Functionale pentru Schema de Relatie Profesori_Note


este urmatoarea:

GradDidacticP

NumeProf
Nota SalarP
NumeStud
(B) Obtinerea Formei Normale FN2:
In diagrama de mai sus se poate observa dependenta functionala a atributelor GradDidacticP
si SalarP fata de atributul NumeProf, ceea ce implica dependenta partiala a acestor atribute
fata de cheia relatiei (formata din atributele NumeProf si NumeStud). Aceasta dependenta
functionala partiala fata de o cheie a relatiei, genereaza un set de anomalii, cum ar fi anomalii
de adaugare date si de actualizare date.
➔ necesitatea eliminarii acestor dependente functionale partiale fata de cheia relatiei, lucru
care se face prin descompunerea Schemei de Relatie Profesori_Note in doua subscheme,
anume schema de relatie Profesori si schema de relatie Note, definite in modul urmator:

(a) Profesori (NumeProf, GradDidacticP, SalarP)


(b) Nota (NumeProf, NumeStud, Nota)

Diagrama descompunerii este urmatoarea:


GradDidacticP

(a) NumeProf
SalarP

NumeProf
(b) Nota
NumeStud

Se observa ca nu mai avem dependente functionale partiale fata de cheia relatiei, ca atare ne
aflam in Forma normala FN2, ceea ce a constituit obiectivul exercitiului.

(C) Obtinerea Formei Normale FN3:


Pentru a se obtine in continuare forma normala FN3, va trebui sa descompunem in continuare
schema de relatie notata cu (a) de mai sus (deci diagrama schemei de relatie Profesori), in
alte doua subscheme, anume Profesor_GradDidacticP si GradDidacticP_SalarP, pentru a
elimina dependenta functionala existenta in diagrama (a) intre cele doua atribute neprime
Grad_DidacticP si SalarP.

Deci, schema de relatie notata mai sus cu (a), anume:


Profesori (NumeProf, GradDidacticP, SalarP)
se descompune in urmatoarele doua scheme:
(a1) Profesor_GradDidacticP(NumeProf, GradDidacticP)
si
(a2) GradDidacticP_SalarP(GradDidacticP, SalarP)

Diagrama acestei noi descompuneri este urmatoarea:


(a1) NumeProf GradDidacticP

(a2) GradDidacticP SalarP

Observam ca, parcurgandu-se pasii (A), (B) si (C), s-a ajuns la situatia in care nici un atribut
neprim nu mai este functional dependent de un alt atribut neprim al relatiei care s-a obtinut
din relatia initiala Profesori_Note, deci s-a obtinut Forma Normala FN3 pt. relatia data.
T
Teem
maattiiccaa E
Exxaam
meenn B
BDD –– A
Ann IIII A
Auuttoom
maattiiccaa
T
Tiittuullaarr C
Cuurrss: C
Coonnff.. D
Drr.. PPaauulliinnaa M
MIIT
TRRE
EAA
1. Introducere - notiuni generale *

2. Arhitectura unei baze de date (nivel intern, nivel mediu si nivel extern)

3. Sistemul de Gestiune al bazei de date. SGBD-uri uzuale; SGBD-uri de mare


performanta

4. Administrarea bazei de date – notiuni generale

5. Modele de date – generalitati

6. Modelul de date Ierarhic

7. Modelul de date Retea

8. Modelul de date Relational

9. Analiza comparativa a modelelor de date

10. Algebra relationala; LMD Relationale

11. Descompunerea schemelor de relatie

12. Normalizarea relatiilor- notiuni generale

13. Tipurile de dependente si formele normale associate acestora

14. Forma Normala FN1 si Forma Normala FN2

15. Dependenta Functionala si Forma Normala FN3

16. Generarea iterativa a formelor normale si Locul normalizarii in proiectarea


bazelor de date
* Nota

D
Deettaalliieerree T
Teem
maattiiccaa11:: IInnttrroodduucceerree -- N
Noottiiuunnii ggeenneerraallee

 Notiunea de data si informatie


 Notiunea de baza de date.
 Evolutie si caracteristici
 Utilitate si avantaje
 Independenta datelor
 Independenta fizica
 Independenta logica
Complemente Curs Baze Date/ An II Automatica

Exemplu concret de identificare a Dependentelor Functionale dintr-o relatie si


de obtinere a Formelor Normale FN2 si FN3.

Ipoteza:
Fie Schema de Relatie numita Profesori_Note, reprezentata in modul urmator:

Profesori_Note(NumeProf, GradDidacticP, SalarP, NumeStud, Nota)

Se cere:
(A)Sa se identifice toate dependentele functionale din aceasta schema de relatie,
apoi
(B)sa se obtina Forma Normala FN2 aferenta; (C) se obtina Forma Normala FN3.

Rezolvare:
(A) Identificarea dependentelor functionale:
In schema de relatie Profesori_Note data in ipoteza, se pot identifica urmatoarele
dependente functionale:

1) NumProf  GradDidacticP (deci, atributul NumeProf determina functional atributul


GradDidacticP deoarece fiecare cadru didactic are
un anumit grad didactic: Prep., Asistent, Sef Lucrari,
Conf. sau Prof.)

2) GradDidacticP  SalarP ( deoarece salarizarea fiecarui cadru didactic depinde in mod


direct de gradul didactic pe care-l are cadrul didactic
respectiv)

3) NumProf  SalarP ( deoarece fiecarui cadru didactic in parte i se calculeaza


salariul si in functie de caracteristicile profesionale
proprii: spor de vechime, spor de doctorat etc)

4) NumeProf NumeStud  Nota (atributul compus NumeProf NumeStud determina


functional atributul Nota, deoarece un anumit
Profesor acorda unui anumit Student o anumita
Nota)

Obs.: Relatia Profesori_Note are o singura cheie compusa, formata din atributele
NumeProf si NumeStud.

 Diagrama Dependentelor Functionale pentru Schema de Relatie Profesori_Note


este urmatoarea:

GradDidacticP

NumeProf
Nota SalarP
NumeStud
(B) Obtinerea Formei Normale FN2:
In diagrama de mai sus se poate observa dependenta functionala a atributelor GradDidacticP
si SalarP fata de atributul NumeProf, ceea ce implica dependenta partiala a acestor atribute
fata de cheia relatiei (formata din atributele NumeProf si NumeStud). Aceasta dependenta
functionala partiala fata de o cheie a relatiei, genereaza un set de anomalii, cum ar fi anomalii
de adaugare date si de actualizare date.
 necesitatea eliminarii acestor dependente functionale partiale fata de cheia relatiei, lucru
care se face prin descompunerea Schemei de Relatie Profesori_Note in doua subscheme,
anume schema de relatie Profesori si schema de relatie Note, definite in modul urmator:

(a) Profesori (NumeProf, GradDidacticP, SalarP)


(b) Nota (NumeProf, NumeStud, Nota)

Diagrama descompunerii este urmatoarea:


GradDidacticP

(a) NumeProf
SalarP

NumeProf
(b) Nota
NumeStud

Se observa ca nu mai avem dependente functionale partiale fata de cheia relatiei, ca atare ne
aflam in Forma normala FN2, ceea ce a constituit obiectivul exercitiului.

(C) Obtinerea Formei Normale FN3:


Pentru a se obtine in continuare forma normala FN3, va trebui sa descompunem in continuare
schema de relatie notata cu (a) de mai sus (deci diagrama schemei de relatie Profesori), in
alte doua subscheme, anume Profesor_GradDidacticP si GradDidacticP_SalarP, pentru a
elimina dependenta functionala existenta in diagrama (a) intre cele doua atribute neprime
Grad_DidacticP si SalarP.

Deci, schema de relatie notata mai sus cu (a), anume:


Profesori (NumeProf, GradDidacticP, SalarP)
se descompune in urmatoarele doua scheme:
(a1) Profesor_GradDidacticP(NumeProf, GradDidacticP)
si
(a2) GradDidacticP_SalarP(GradDidacticP, SalarP)

Diagrama acestei noi descompuneri este urmatoarea:


(a1) NumeProf GradDidacticP

(a2) GradDidacticP SalarP

Observam ca, parcurgandu-se pasii (A), (B) si (C), s-a ajuns la situatia in care nici un atribut
neprim nu mai este functional dependent de un alt atribut neprim al relatiei care s-a obtinut
din relatia initiala Profesori_Note, deci s-a obtinut Forma Normala FN3 pt. relatia data.

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