Sunteți pe pagina 1din 26

DEPENDENȚE FUNCȚIONALE

1
Întrebări:

1. Descompunerea relațiilor
2. Dependențe funcționale
3. Forma canonică a dependențelor funcționale
4. Dependențe multivalorice și de joncțiune

2
DESCOMPUNEREA RELAȚIILOR

3
Descompunerea relațiilor

Fie U este o schemă de relaţie. Un set de scheme


de relaţii {R1 , R2 , ..., Rn} reprezintă o descompunere a
lui U dacă şi numai dacă se respectă:
U = R1 R2  … Rn
şi dacă la reunire nu se pierde informaţie.

O descompunere {R, T} a lui U se face fără


pierdere de informaţie (referitor la setul de
constrângeri) dacă:
U = R|x|T (joncțiunea R cu T)
în cazul oricărei instanţe a R, T, şi U.
4
Descompunerea relațiilor
În caz contrar, descompunerea se realizează cu
pierdere de informaţii. Un caz mai general este însă:
U  R|x|T
Descompunerea unui tabel în tabele mai mici se
realizează în scopul reducerii redundanţelor şi evitării
anomaliilor, totuşi o astfel de descompunere implică
anumite riscuri care, în principal, se manifestă sub două
aspecte:
• posibila pierdere de informaţie;
• posibila pierdere a dependenţelor.

5
Descompunerea relațiilor
Se examinăm un exemplu de pierdere de informaţie.

r = {A,B}

R1 = {A} R2 = {B}

Notă: Dacă schemele de relații R1 şi R2 sunt


r1|x|r2
disjuncte, R1∩ R2=∅, atunci joncţiunea
relaţiilor r1 şi r2 este identică cu produsul
cartezian al lor, adică r1 |x| r2 = r1 × r2.
6
DEPENDENȚE FUNCȚIONALE

7
Dependențe funcționale
• Fie R(A1, A2, ...An) este o schemă relațională și fie X, Y niște
submulțimi de atribute ale lui R.
• X determină funcțional Y (sau Y depinde funcțional (DF) de X),
dacă pentru orice relație r (instanță a lui R) nu există două
tupluri, care să aibă aceleași valori pentru atributele lui X și să
aibă valori diferite pentru cel puțin un atribut din Y.
• Cu alte cuvinte, fiecare apariţie (valoare) a lui X poate fi asociată
unei singure apariţii a lui Y, două apariţii identice ale lui X nu
pot fi asociate decât aceleiaşi apariţii a lui Y.
• O valoare a lui X determină unic o valoare a lui Y.
• Notația utilizată este X → Y.
• X este numit determinant, iar Y este numit determinat (dependent).
• Dependența funcțională X → Y este trivială, dacă Y  X
• Implicit, în orice relaţie R există dependenţele funcţionale: cheia
lui R → celelalte atribute ale lui R.

8
Dependențe funcționale
O relație universala este o relație ce grupează toate atributele, care
modelează sistemul real cercetat.
Fie F, mulțimea dependențelor considerate de proiectantul bazei pentru o
schemă relațională sau pentru o relație universală.
Exemplu: Fie avem o relație universală Produse(IdF, NumeF, AdresaF,
IdP, NumeP, Qty).
Atunci putem scrie următoarele dependențe funcționale aplicând anumite
constrângeri din viața reală (produsul e livrat de un singur furnizor):
IdP → NumeP, Qty, IdF, NumeF, AdresaF
IdF → NumeF, AdresaF
Aceste dependențe arată că:
❖ daca doua produse au același IdP, este vorba de fapt de același produs;
❖ daca două produse au același IdF (Id furnizor), atunci și valorile pentru
numele si adresa acestuia trebuie sa fie aceleași.

9
Dependențe funcționale
Dependențele funcţionale permit exprimarea constrângerilor ce nu pot
fi exprimate prin intermediul supercheilor (cheia primară, cheia candidat).
Dependenţele funcţionale sunt constrângeri aplicate mulțimii de relații
din baza de date și exprimă faptele din lumea reală.
O mulţime F de dependenţe funcţionale poate fi folosită în două moduri:
• pentru a specifica constrângerile aplicate relaţiilor;
• pentru a verifica dacă relaţiile mai sunt valabile în cazul aplicării
mulţimii de dependențe funcționale.
Plecând de la o mulțime de proprietăți formale ale dependențelor,
numite reguli de deducție, poate fi obținută mulțimea maximală de
dependențe asociate lui F.
Aceasta mulțime definește închiderea lui F.
Exista o multitudine de reguli de deducție. Pentru a se putea face o
prezentare formala a acestora, trei dintre ele au fost alese ca axiome, iar restul
se pot deduce pornind de la ele.
Cele trei axiome se mai numesc și Axiomele lui Armstrong.

10
Dependențe funcționale. Axiomele lui Armstrong.

Fie X, Y, Z, W sunt mulțimi de atribute ale unei scheme relaționale R.

Axiomele lui Armstrong sunt următoarele:

A1. Reflexivitate:
X → X. Daca Y ⊆ X, atunci X → Y .

Toate dependentele funcționale care rezultă din această axioma sunt numite și
dependențe triviale.
A2. Creșterea determinantului:
1. Dacă X → Y și X ⊆ Z, atunci Z → Y
2. Dacă X → Y și W ⊆ Z, atunci X ∪ Z → Y ∪ W
3. Dacă X → Y, atunci X ∪ Z → Y ∪ Z
4. Dacă X → Y, atunci X ∪ Z → Y

A3. Tranzitivitate:
Dacă X → Y și Y → Z, atunci X → Z
11
Dependențe funcționale. Reguli de inferență.

Pe baza axiomelor lui Armstrong se pot demonstra o serie de reguli de


inferență pentru dependente funcționale:

R1. Descompunere:
Dacă X → Y și Z ⊆ Y atunci X → Z
Regula descompunerii ne permite sa rescriem un set de dependente
funcționale astfel, încât sa obținem doar dependențe care au în partea dreapta
doar un singur atribut.
R2. Reuniune:
Dacă X → Y și X → Z atunci X → Y ∪ Z

Regula reuniunii stabilește că din N reguli obținute prin descompunere se


poate obține dependenta inițiala, deci înlocuirea acesteia nu duce la
pierderea vreunei corelații existente.

R3. Pseudotranzitivitate:
Dacă X → Y și Y ∪ Z → W atunci X ∪ Z → W
12
Dependențe funcționale totale și parțiale
Nu toate dependentele funcționale sunt folositoare pentru modelarea
relațională.
O dependenta funcțională X→Y se numește dependență
funcțională totală (FT), dacă și numai dacă nu există nici o submulțime
proprie X′ ⊂ X, astfel încât X′ → Y.
Daca există o submulțime proprie X′ ⊂ X, astfel încât X ′ → Y,
atunci dependența funcțională X → Y este parțială.
In axioma Ax2, dependența Z → Y este o dependenta funcțională
parțială.
In cazul dependenței funcționale totale, axiomele lui Amstrong se
reduc la o axiomă unica si anume pseudo-tranzitivitatea:
dacă X → Y și W ∪ Y → Z, atunci W ∪ X → Z.

Această axioma este o regulă de deducție completă pentru total dependențe:


❖ pseudo-tranzitivitatea implica tranzitivitatea (W = ∅);
❖ reflexivitatea nu poate fi utilizată pentru a obține dependente totale;
❖ reflexivitatea și pseudo-tranzitivitatea implica cresterea determinantului.
13
Dependențe funcționale. Acoperi minimale.
• Mulțimea de dependențe funcționale totale din F formează închiderea
pseudo-tranzitiva F+ a acestei mulțimi și este formată din reuniunea
mulțimilor dependentelor funcționale totale care pot fi obținute din F,
folosind axioma de pseudo-tranzitivitate.
• Doua mulțimi de dependențe funcționale totale sunt echivalente, dacă
au închideri pseudo-tranzitive identice.
• Pentru a modela scheme relaționale se consideră mulțimi minimale de
dependențe funcționale totale, capabile să genereze toate închiderile
pseudo-tranzitive. Aceste multimi definesc acoperiri minimale.
• O mulțime de dependente funcționale totale F*, asociată unei mulțimi
de atribute A, definește o acoperire minimală, dacă satisface următoarele
proprietăți:
• nici o dependență funcțională din F* nu este redundantă;
• toate dependențele funcționale totale între submulțimi ale lui A sunt
in inchiderea pseudo-tranzitiva a lui F*.
• Orice mulțime de dependențe totale are cel puțin o acoperire
minimală. Alegerea acoperirii minimale este punctul de start in
modelarea schemelor relaționale.
14
FORMA CANONICĂ A
DEPENDENȚELOR FUNCȚIONALE

15
Dependențe funcționale. Forma canonică.
• Se spune că o mulțime de dependențe funcționale este în formă
canonica dacă:
❖ Orice dependență are în partea dreapta un singur atribut.
❖ Mulțimea de dependente este minimală, nici una dintre dependențe
neputând sa fie dedusa din celelalte.

Exemplul 1: Fie R = ABCDE o schema de relație și F mulțimea de


dependente funcționale asociata, cu
F = { AB → CDE, C → DE }.

Aplicam regula de descompunere. Obținem:


F = { AB → C, AB → D, AB → E, C → D, C → E }

Mulțimea nu este minimala deoarece AB → D și AB → E se pot


deduce prin tranzitivitate din AB → C împreună cu C → D, C → E.
Rezulta ca forma canonica a lui F este:
F = { AB → C, C → D, C → E }

16
Dependențe funcționale. Forma canonică.
Exemplul 2: Pentru relația

Produse(IdP, NumeP, Qty, IdF, NumeF, AdresaF, IdF)

avem mulțimea de dependențe funcționale:

F = { IdP → NumeP, Qty, IdF, NumeF, AdresaF, IdF → NumeF, AdresaF}

Forma canonica a lui F este:


F= { IdP → NumeP,
IdP → Qty,
IdP → IdF,
IdF → NumeF,
IdF → AdresaF }

Au fost eliminate două dependențe redundante:


IdP → NumeF
IdP → AdresaF
17
Graful dependențelor funcționale
Dependențele funcționale între atributele unei mulțimi universale pot fi
reprezentate grafic.
Fie avem o mulțime universală de atribute A={A1, A2,…An} pentru care
există o mulțime de dependențe funcționale canonice {Xi →Aj}, unde Xi
este o submulțime a lui A.

Graful dependenților funcționale este un graf direcționat astfel:


1) Fiecare atribut Aj se reprezintă printr-un singur nod cu eticheta Aj ;
2) Dependența funcțională de forma Ai → Aj se reprezintă printr-o
săgeată, care leagă nodul Ai cu nodul Aj ;
3) Dependența funcțională de formă Xi →Aj , unde Xi={Ai1, Ai2,…Aip} cu
p>1 , se reprezintă print-un nod auxiliar dreptunghiular cu eticheta Xi,
în care intră o mulțime de săgeți de la nodurile Ai1, Ai2,…Aip și pleacă
o singură săgeată spre nodul Aj .

18
Graful dependențelor funcționale

Graful dependentelor funcționale pentru schema


relațională OBIECTIV_INVESTIȚIE.

19
DEPENDENȚE MULTIVALORICE
ȘI DE JONCȚIUNE

20
Dependențe multivalorice

21
Dependențe multivalorice

O altă definiție: Fie o relație R și două mulțimi de atribute X și Y incluse in R.


Se spune că X multidetermină Y sau că exista dependență multivalorică X →→
Y dacă si numai dacă ori de cate ori avem două tupluri ale relației t1 și t2 cu
t1[X] = t2[X], atunci există în relație un tuplu t3 pentru care:
❖ t3[X] = t1[X] = t2[X]
❖ t3[Y] = t1[Y] și t3[R-X-Y] = t2[R-X-Y]

22
Dependențe multivalorice

Avem următoarele dependentele mult valorice (a doua fiind obținuta din prima
prin complementare):
Nume →→ Strada, Localitate
Nume →→ Facultate, AnAbsolvire

23
Dependențe multivalorice

24
Reguli pentru dependențe multivalorice

Există o serie de reguli care se pot deduce din axiome. Toate consideră existenta unei
scheme de relație R, iar X, Y, Z, W sunt submulțimi ale lui R:

• R1. Reuniune: Daca X →→ Y și X →→ Z atunci X →→ Y ∪ Z


• R2. Pseudotranzitivitate: Daca X →→ Y și W∪Y →→ Z atunci W∪X →→ Z – W∪Y
• R3. Pseudotranzitivitate mixtă: Dacă X →→ Y și X∪Y →→ Z atunci X →→ Z – Y
• R4. Diferența: Daca X →→ Y și X →→ Z atunci: X →→ Y – Z∪X →→ Z – Y
• R5. Intersecție: Daca X →→ Y și X →→ Z atunci: X →→ Y ∩ Z
• R6. Eliminare atribute comune: Dacă X →→ Y atunci: X →→ Y – X
• R7. Toate atributele: Daca X ∪ Y = R atunci X →→ Y și Y →→ X
• R8. Reflexivitate: Daca Y ⊆ X atunci X →→ Y

Aceste axiome și reguli se pot folosi pentru calculul închiderii unei mulțimi de dependente
funcționale și multivalorice.

25
Dependențe de joncțiune

26

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