Documente Academic
Documente Profesional
Documente Cultură
INTRODUCERE
-Notiuni Fundamentale-
Bibliografie de baza pentru disciplina
Baze de Date – anul II
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
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
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
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
Nivelul mediu
MODELUL CONCEPTUAL
( Descrierea Bazei de Date = descrierea
structurilor logice ale b. d. prin intermediul
LDD )
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.
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 /
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.)
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.
I. Atributiile de proiectare :
• 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
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!)
Interceptarea Cererii de
control SGBD
Interpretarea Cererii/Interogarii
de catre interpretorul LMD
(componenta a SGBD)
STUDENT
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
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
EXEMPLU:
FACULTATE
Note acordate
NOTE
Note primite
STUDENT
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.
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
M1 • M2 • Mn •
• P •
• M1 • • M2 • • Mn •
• P
M1 • • M2 • • Mn • •
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
• P •
• M1 •• • M2 •• • Mn • •
STUDENT
Curs_5&6&7&8_ModelulDeDate_Retea&Relational
MODELUL DE DATE
RELATIONAL
- Reprezinta:
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.
Carecteristici ale LR :
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
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 .
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
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).
TOPICI:
• Intensiunea si Extensiunea Bazei de Date Relationale
• Comparatie intre Modelele de Date
• Limbaje Relationale
• Operatorii Algebrei Relationale
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)
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
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
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
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
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)
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:
❑ Reuniune
❑ Intersectie
❑ Diferenta
❑ Produs Cartezian
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.
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
XY
OBS:
A B = X Y (AxB)
XY
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
Concepte fundamentale:
(1) Dependenta functionala (FN1, FN2, FN3, FNBC/F.N. Boyce-Codd)
(2) Dependenta multivalorica (FN4)
(3) Dependenta de cuplare (FN5)
Notatie: X → Y.
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.
Conventie:
Schema de Relatie == Multimea atributelor relatiei
R(A1, A2,..., An) echivalent cu R = { A1, A2,..., An }
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).
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.
OBS3:
Forma normala FN5 este o generalizare a formei normale FN4, avand ca
punct de pornire conceptul de dependenta de cuplare.
Rezolvare:
(A) Identificarea dependentelor functionale:
In schema de relatie Profesori_Note data in ipoteza, se pot identifica urmatoarele
dependente functionale:
Obs.: Relatia Profesori_Note are o singura cheie compusa, formata din atributele
NumeProf si NumeStud.
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) 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.
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)
D
Deettaalliieerree T
Teem
maattiiccaa11:: IInnttrroodduucceerree -- N
Noottiiuunnii ggeenneerraallee
Ipoteza:
Fie Schema de Relatie numita Profesori_Note, reprezentata in modul urmator:
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:
Obs.: Relatia Profesori_Note are o singura cheie compusa, formata din atributele
NumeProf si NumeStud.
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) 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.
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.