Documente Academic
Documente Profesional
Documente Cultură
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
5
Descompunerea relațiilor
Se examinăm un exemplu de pierdere de informaţie.
r = {A,B}
R1 = {A} R2 = {B}
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.
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ță.
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
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.
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.
16
Dependențe funcționale. Forma canonică.
Exemplul 2: Pentru relația
18
Graful dependențelor funcționale
19
DEPENDENȚE MULTIVALORICE
ȘI DE JONCȚIUNE
20
Dependențe multivalorice
21
Dependențe multivalorice
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:
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