Sunteți pe pagina 1din 51

Baze de date relationale

Dependente functionale
Dependente multivaluate

Baze de date relationale


Dependente functionale
Dependente multivaluate
Nicolae-Cosmin Varlan

November 2, 2014

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Elemente ale modelului relational


I

U multime de atribute: U = {A1 , A2 , . . . , An };

dom(Ai ) - domeniul valorilor atributului Ai ;

Definim uplu peste U ca fiind functia:


[
:U
dom(Ai ) a.i. (Ai ) dom(Ai ), 1 i n
1in

Fie valorile vi astfel ncat vi = (Ai ).


Notam cu {A1 : v1 , A2 : v2 , . . . , An : vn } asocierea dintre
atributele existente n U si valorile acestora. In cazul n care sunt
considerate multimi ordonate (de forma (A1 , A2 , . . . , An )), notatia
va fi de forma: (v1 , v2 , . . . , vn ).
Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Elemente ale modelului relational


Consideram multimea ordonata (A1 , A2 , . . . An ). Pentru orice uplu
, exista vectorul (v1 , v2 , . . . vn ) a.i. (Ai ) = vi , 1 i n.
Pentru un vector (v1 , v2 , . . . vn ) cu vi dom(Ai ), 1 i n exista
un uplu a.i. (Ai ) = vi .
In practica este considerata o anumita ordonare a atributelor.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Elemente ale modelului relational


O multime de uple peste U se numeste relatie si se noteaza cu r.
r poate varia n timp dar nu si n structura.
Exemplu:
r = {(v11 , v12 , . . . v1n ), (v21 , v22 , . . . v2n ), . . . , (vm1 , vm2 , . . . vmn )}.
Structura relatiei se va nota cu R[U ] unde R se numeste numele
relatiei iar U este multimea de atribute corespunzatoare.
Notatii echivalente R(U ), R(A1 , A2 , . . . , An ), R[A1 , A2 , . . . , An ].

R[U ] se mai numeste si schema de relatie.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Elemente ale modelului relational


In practica, o relatie r poate fi reprezentata printr-o matrice:

r:

A1
v11
...
vm1

A2
v12
...
vm2

...
...
...
...

An
v1n
...
vmn

unde (vi1 , vi2 , . . . , vin ) este un uplu din r, 1 i m si


vij dom(Aj ), 1 j n, 1 i m
Vom nota cu ti linia cu numarul i din matrice:
ti = (vi1 , vi2 , . . . , vin )

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Elemente ale modelului relational


O multime finita D de scheme de relatie se numeste schema de
baze de date. Formal, D = {R1 [U1 ], . . . , Rh [Uh ]} unde Ri [Ui ] este
o schema de relatie, 1 i h.
O baza de date peste D este o corespondenta ce asociaza fiecarei
scheme de relatie din D o relatie.
Exemplu:
r1 , r2 , . . . rh este o baza de date peste D = {R1 [U1 ], . . . , Rh [Uh ]}.
Considerand D ca fiind ordonata D = (R1 [U1 ], . . . , Rh [Uh ]),
putem nota baza de date sub forma (r1 , r2 , . . . rh )

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - proiectia


Consideram:
I

R[U ] = schema de relatie;

X U;

t = uplu peste R[U ] (t r).

Se numeste proiectia lui t relativa la X si notata cu t[X], restrictia


lui t la multimea de atribute X.
Exemplu:
Daca U = (A1 , A2 , . . . , An ) atunci t = (v1 , v2 , . . . , vn ).
Consideram X = (Ai1 , Ai2 , . . . , Aik ), 1 i1 < i2 < . . . < ik n.
atunci t[X] = (vi1 , vi2 , . . . , vik );

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - proiectia


Daca r este o relatie peste R[U ] si X U , atunci proiectia lui r
relativa la X este r[X] = {t[X] | t r}
Exemplu:
Daca U = (A1 , A2 , . . . , An ) atunci
r = {(v11 , v12 , . . . v1n ), (v21 , v22 , . . . v2n ), . . . , (vm1 , vm2 , . . . vmn )}.
Consideram X = (Ai1 , Ai2 , . . . , Aik ), 1 i1 < i2 < . . . < ik n.
atunci
r[X] = {(v1i1 , v1i2 , . . . v1ik ), (v2i1 , . . . v2ik ), . . . , (vmi1 , . . . vmik )}

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - reuniunea


Reuniunea a doua relatii r1 si r2 peste R[U ] este o relatie notata
cu r1 r2 definita astfel:
r1 r2 = {t | t = uplu, t r1 sau t r2 }

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - intersectia


Intersectia a doua relatii r1 si r2 peste R[U ] este o relatie notata
cu r1 r2 definita astfel:
r1 r2 = {t | t = uplu, t r1 si t r2 }

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - diferenta


Diferenta a doua relatii r1 si r2 peste R[U ] este o relatie notata cu
r1 r2 definita astfel:
r1 r2 = {t | t = uplu, t r1 si t 6 r2 }

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - produs cartezian


Produsul cartezian a doua relatii r1 definita peste R1 [U1 ] si r2
definita peste R2 [U2 ] cu U1 U2 = este o relatie notata cu
r1 r2 definita astfel:
r1 r2 = {t | t = uplu peste U1 U2 , t[U1 ] r1 si t[U2 ] r2 }

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - join (natural)


Consideram:
I

r1 relatie peste R1 [U1 ];

r2 relatie peste R2 [U2 ];

Se numeste join (sau unire) a relatiilor r1 si r2 , relatia r1 r2 peste


U1 U2 definita prin:
r1 r2 = {t | t uplu peste U1 U2 , t[Ui ] ri , i = 1, 2}

Daca R este un nume pentru relatia peste U1 U2 atunci r1 r2


este definita peste R[U1 U2 ]
Pentru simplitate vom nota U1 U2 cu U1 U2 .

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - join (natural)


Exemplu:
Fie R1 [A, B, C, D], si R2 [C, D, E] si r1 , r2 a.i.:
C D E
A B C D
0 1 0 0
1 1 0
1 1 0 0
1 1 1
r2 :
r1 :
0 0 1 0
0 0 0
1 1 0 1
1 0 0
0 1 0 1
1 0 1

Atunci: r1 r2 :

A
0
1
0
0

B
1
1
0
0

C
0
0
1
1

Nicolae-Cosmin V
arlan

D
0
0
0
0

E
0
0
0
1

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Proprietati join (natural)


I

r1 r2 [U1 ] r1

r1 r2 [U2 ] r2

Daca X = U1 U2 si:
r10 = {t1 |t1 r1 , t2 r2 a.i. t1 [X] = t2 [X]} si r1 = r1 r10 ,
r20 = {t2 |t2 r2 , t1 r1 a.i. t1 [X] = t2 [X]} si r2 = r2 r20 ,
atunci: r1 r2 = r10 r20 , r1 r2 [U1 ] = r10 , r1 r2 [U2 ] = r20 .
Daca r1 r1 , r2 r2 si r1 r2 = r1 r2 atunci r10 r1 si r20 r2
Daca U1 U2 = atunci r1 r2 = r1 r2 .

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Extindere join (natural)


Fie ri relatie peste Ri [Ui ], i = 1, h atunci:
r1 r2 . . .rh = {t|t uplu peste U1 , . . . Uh , a.i. t[Ui ] ri , i = 1, h}
Notatii echivalente:
I

r1 r2 . . . rh

./ hri , i = 1, hi

hri , i = 1, hi

Operatia join este asociativa.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - join (oarecare)


Fie ri peste Ri [Ui ], i = 1, 2 cu A1 , A2 , . . . Ak U1 si
B1 , B2 , . . . Bk U2 si i operator de comparatie ntre
elementele lui dom(Ai ) si cele ale lui dom(Bi )
i este relatie binara peste dom(Ai ) dom(Bi ), 1 i k.
Join-ul oarecare a doua relatii r1 si r2 , notat cu r1 ./
r2 , este
definit prin:
r1

./

r2 = {(t1 , t2 )|t1 r1 , t2 r2 , t1 [Ai ]i t2 [Bi ], i = 1, k}

unde = (A1 1 B1 ) (A2 2 B2 ) . . . (Ak k Bk )


Observatie: un join oarecare cu conditia TRUE este un produs
cartezian.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - selectia


Fie r o relatie peste R[U ].
Consideram pentru nceput expresiile elementare de selectie:
AB, Ac, cB, unde A, B U si c este o constanta.
Daca e1 si e2 sunt expresii de selectie (elementare sau nu), atunci
urmatoarele sunt expresii de selectie: (e1 ), e1 e2 , e1 e2 ,
(e1 e2 ), (e1 e2 ).

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational - selectia


Fie E o expresie de selectie. Atunci:
I

cand E = AB, t satisface E daca t[A] t[B],

cand E = Ac, t satisface E daca t[A] c,

cand E = cB, t satisface E daca c t[B],

cand E = e1 e2 , t satisface E daca t satisface atat pe e1 cat


si pe e2 ,

cand E = e1 e2 , t satisface E daca t satisface macar pe


unul dintre e1 si e2 .

Daca F este o expresie de selectie atunci selectia se noteaza cu


F (r) si este definita ca:
F (r) = {t|t = tuplupesteR[U ], tsatisf aceF }

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Operatii n cadrul modelului relational


Multimea de operatii: reuniune, diferenta, produs cartezian,
proiectie si selectie formeaza o baza (adica celelalte operatii pot fi
exprimate prin intermediul lor).

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Modelul Relational

Exemple (pe tabela emp / dept)


vezi fisier txt.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Dependente functionale

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Dependente functionale
Fie X, Y U . Vom nota o dependenta functionala cu X Y .
O relatie r peste U satisface dependenta functionala X Y daca:
(t1 , t2 )(t1 , t2 r)[t1 [X] = t2 [X] t1 [Y ] = t2 [Y ]]
X = avem Y daca (t1 , t2 )(t1 , t2 r)[t1 [Y ] = t2 [Y ]]
Y = atunci orice r peste U avem ca X
Daca r satisface X Y , atunci exista o functie : r[X] r[Y ]
definita prin (t) = t0 [Y ], unde t0 r si t0 [X] = t r[X].
Daca r satisface X Y spunem ca X determina functional pe Y
n r.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Exemplu
Fie X = {A, B}, Y = {D, E}. Se observa ca X Y .

r:

A
0
1
0
0

B
1
1
0
0

C
0
0
0
1

D
0
0
0
0

E
0
0
1
1

t1 [X] 6= t2 [x], t1 [X] 6= t3 [x], t1 [X] 6= t4 [x] - ok pentru t1 ;


t2 [X] 6= t3 [x], t2 [X] 6= t4 [x] - ok pentru t2 ;
t3 [X] = t4 [X] t3 [Y ] = t4 [Y ] - relatie verificata cand doua linii
sunt egale - ok.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Fie X = {A, B}, Y = {D, E}. Se observa ca X Y .

r:

A
0
1
0
0

B
1
1
0
0

C
0
0
0
1

D
0
0
0
0

E
0
0
1
1

Daca r satisface X Y , atunci exista o functie : r[X] r[Y ]


definita prin (t) = t0 [Y ], unde t0 r si t0 [X] = t r[X].
Pe exemplu:
t0 din observatie este format din coloanele A, B, C, D si E.
t din observatie este format doar din coloanele A si B.
(t) asociaza tuplului t0 [A, B] valorile t0 [D, E]:
((0, 0)) = (0, 1), ((0, 1)) = (0, 0), ((1, 1)) = (0, 0),

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Proprietati ale dependentelor functionale


FD1. (Reflexivitate) Daca Y X, atunci r satisface X Y ,
r U .
FD2. (Extensie) Daca r satisface X Y si Z W , atunci r
satisface XW Y Z.
FD3. (Tranzitivitate) Daca r satisface X Y si Y Z, atunci r
satisface X Z.
FD4. (Pseudotranzitivitate) Daca r satisface X Y si Y W Z,
atunci r satisface XW Z.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Proprietati ale dependentelor functionale


FD5. (Uniune) Daca r satisface X Y si X Z, atunci r
satisface X Y Z.
FD6. (Descompunere) Daca r satisface X Y Z, atunci r
satisface X Y si X Z.
FD7. (Proiectabilitate) Daca r peste U satisface X Y si
X Z U , atunci r[Z] satisface X Y Z
FD8. (Proiectabilitate inversa) Daca X Y este satisfacuta de o
proiectie a lui r, atunci X Y este satisfacuta de r.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Dependente functionale - consecinta si acoperire


Daca este o multime de dependente functionale peste U atunci
spunem ca X Y este consecinta din daca orice relatie ce
satisface toate consecintele din satisface si X Y .
Notatie: |= X Y
Fie = {X Y | |= X Y }. Fie 1 = multime de
dependente functionale. 1 constituie o acoperire pentru daca
1 = .

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Proprietati ale dependentelor functionale


Propozitie
Pentru orice multime de dependente functionale exista o
acoperire 1 pentru , astfel ncat toate dependentele din 1
sunt de forma X A, A fiind un atribut din U .

Propozitie
|= X Y daca si numai daca |= X Bj pentru j = 1, h,
unde Y = B1 . . . Bh .

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Reguli de deducere
Fie R o multime de formule de deducere pentru dependente
functionale si o multime de dependente functionale. Spunem ca
X Y este o demonstratie n utilizand regulile R si vom nota
`R X Y , daca exista sirul 1 , 2 , . . . , n , astfel ncat:
I

n = X Y si

pentru i = 1, n, i sau exista n R o regula de forma


j1 ,j2 ,...jk
,
i

unde j1 , j2 , . . . , jk < i.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Reguli de deducere
Conform proprietatilor FD1-FD5 putem defini regulile:
FD1f:

Y X
XY

FD4f:

XY, Y W Z
XW Z

FD2f:

XY, ZW
XW Y Z

FD5f:

XY, XZ
XY Z

FD3f:

XY, Y Z
XZ

FD6f:

XY Z XY Z
XY , XZ

Propozitie
Regulile FD4f, FD5f, FD6f se exprima cu ajutorul regulilor FD1f,
FD2f, FD3f.
Notam cu R1 = {FD1f, FD2f, FD3f},
si cu R2 = R1 {FD4f, FD5f, FD6f}
Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Axiomele lui Armstrong


Armstrong a definit (n Dependency structures of database
relationships Proc. IFIP 74, Amsterdam, 580-583) urmatoarele
reguli de inferenta (numite Axiomele lui Armstrong):
A1:

A1 ...Am Ai , i

A2:

A1 ,...Am B1 ,...Br
,j
A1 ...Am Bj

= 1, m
= 1, r

A1 ,...Am Bj , j=1,r
A1 ...Am B1 ,...Br

A3:

A1 ,...Am B1 ,...Br , B1 ,...Br C1 ,...Cp


A1 ...Am C1 ,...Cp

unde Ai , Bj , Ck sunt atribute. Notam RA = {A1, A2, A3}.


Obs: regula A3 este de fapt FD3f (tranzitivitatea).
Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Propozitie
Regulile din R1 se exprima prin cele din RA si invers.
Notatie:
+
R = {X Y | `R X Y }

Propozitie
Fie R01 si R02 doua multimi de reguli astfel incat R01 se exprima
prin R02 si invers. Atunci +
= +
pentru orice multime de
R01
R02
dependente functionale.
+
Consecinta: +
R1 = RA

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Fie X U si R o multime de reguli de inferenta. Notam cu


+
XR
= {A| `R X A}

Lema
+
`R X Y daca si numai daca Y XR
.
1

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Dependente functionale
Propriet
ati ale dependentelor functionale

Lema
Fie o multime de dependente functionale si : X Y o
dependenta functionala astfel ncat 0R1 X Y . Atunci exista
o relatie r ce satisface toate dependentele functionale din si r
nu satisface X Y .

Theorem
Fie o multime de dependente functionale. Atunci exista o relatie
r0 ce satisface exact elementele lui +
a:
R1 , adic
I

r0 satisface , +
R1 si

r0 nu satisface , 6 +
R1

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Dependente multivaluate

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Exemplu
Presupunem ca persoana cu CNP = 1 a fost admisa la doua
facultati si are permis de conducere pentru categoriile A si B:
r:

CNP
1
1

Admis la facult.
Informatica
Matematica

Are permis categ.


A
B

Desi anumite randuri nu sunt scrise n tabela, putem sa intuim ca


persoana cu CNP = 1 a dat la facultatea de Informatica si are
permis de conducerea categoria B. Deci, desi n r nu exista t-uplul
h 1,Informatica,B i, ar trebui sa existe si el (pentru ca poate fi
dedus din cele existente).
Care alt t-uplu mai poate fi dedus ?

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Exemplu
r:

CNP
1
1
1
1

Admis la facult.
Informatica
Matematica
Informatica
Matematica

Are permis categ.


A
B
B
A

t-uplele marcate cu rosu ar putea lipsi, ele fiind redundante


deoarece pot fi obtinute din primele doua t-uple.

Prin intermediul dependentelor functionale pot afla la care coloane


pot renunta astfel ncat sa le pot reface ulterior.
Prin intermediul dependentelor multivaluate pot afla la care linii
pot renunta astfel ncat sa le pot reface ulterior.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Dependente multivaluate - definitie


Fie X, Y U . O dependenta multivaluata este notata cu X  Y .

Definition
Relatia r peste U satisface dependenta multivaluata X  Y daca
pentru oricare doua tuple t1 , t2 r si t1 [x] = t2 [x], exista relatiile
t3 si t4 din r, astfel ncat:
I

t3 [X] = t1 [X], t3 [Y ] = t1 [Y ], t3 [Z] = t2 [Z];

t4 [X] = t2 [X], t4 [Y ] = t2 [Y ], t4 [Z] = t1 [Z]

unde Z = U XY (Z mai este denumita si rest).

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Exemplul 2 (mai formal)

r:

A
a1
a1
a1
a1
a2
a2

B
b1
b2
b1
b2
b3
b3

C
c1
c2
c1
c2
c1
c1

D
d1
d2
d2
d1
d1
d2

t1
t2
t3
t4

t1
t2

r satisface A  BC

t01 , t04
t02 , t03

Intrebare: cum alegem t3 , t4 ?


Deoarece atunci cand t1 [A] = t2 [A] avem ca:
t3 [A] = t1 [A], t3 [BC] = t1 [BC], t3 [D] = t2 [D] si
t4 [A] = t2 [A], t4 [BC] = t2 [BC], t4 [D] = t1 [D]

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Definitie echivalenta
Definition
Relatia r peste U satisface dependenta multivaluata X  Y , daca
pentru orice t1 , t2 r cu t1 [X] = t2 [X] avem ca
MY (t1 [XZ]) = MY (t2 [XZ])
unde MY (t[XZ]) = {t0 [Y ]|t0 r, t0 [XZ] = t[XZ]}
A B C D
a1 b1 c1 d1
= t1
a1 b2 c2 d2
= t2
a1 b1 c1 d2
r:
a1 b2 c2 d1
a2 b3 c1 d1
a2 b3 c1 d2
MY (t1[AD]) = MY (t2[AD]) = {(b1 , c1 ), (b2 , c2 )}
Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Observatii
I

Daca r satisface dependenta functionala X Y , atunci


pentru orice t r, avem MY (t[XZ]) = {t[Y ]}.

Daca r satisface dependenta functionala X Y , atunci r


satisface si dependenta multivaluata X  Y .

Daca r satisface dependenta multivaluata X  Y , atunci


putem defini o functie : r[X] P(r[Y ]), prin
(t[X]) = MY (t[XZ]), t r. Cand r satisface X Y ,
atunci : r[X] r[Y ].

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Proprietati ale dependentelor multivaluate


MVD0 (Complementariere) Fie X, Y, Z U , asfel ncat
XY Z = U si Y Z X. Daca r satisface X  Y , atunci r
satisface X  Z.
MVD1 (Reflexivitate) Daca Y X, atunci orice relatie r satisface
X Y.
MVD2 (Extensie) Fie Z W si r satisface X  Y . Atunci r
satisface XW  Y Z
MVD3 (Tranzitivitate) Daca r satisface X  Y si Y  Z, atunci
r satisface X  Z Y

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Proprietati ale dependentelor multivaluate


MVD4 (Pseudotranzitivitate) Daca r satisface X  Y si
Y W  Z, atunci r satisface si XW  Z Y W .
MVD5 (Uniune) Daca r satisface X  Y si X  Z atunci r
satisface X  Y Z.
MVD6 (Descompunere) Daca r satisface X  Y si X  Z,
atunci r satisface X  Y Z, X  Y Z, X  Z Y

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Proprietati mixte ale dependentelor multivaluate


FD-MVD1. Daca r satisface X Y , atunci r satisface si X  Y .
FD-MVD2. Daca r satisface X  Z si Y Z 0 , cu Z 0 Z si
Y Z = , atunci r satisface X Z 0 .
FD-MVD3. Daca r satisface X  Y si XY  Z, atunci r
satisface X Z Y .

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Reguli de inferenta
MVD0f:

XY Z=U, Y ZX, XY


XZ

MVD1f:

Y X
XY

MVD2f:

ZW, XY
XW Y Z

MVD3f:

XY, Y Z
XZY

MVD4f:

XY,Y W Z
XW ZY W

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Reguli de inferenta
MVD5f:

XY, XZ
XY Z

MVD6f:

XY, XZ
XY Z, XY Z, XZY

FD-MVD1f:

XY
XY

FD-MVD2f:

XZ, Y Z 0 , Z 0 Z, Y Z=
XZ 0

FD-MVD3f:

XY, XY Z
XZY

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Propozitie
Fie R o multime de reguli valide si o regula 1 ,2,...k , astfel
incat {1 , . . . k } `R , atunci si regula este valida.

Propozitie
Fie RF M = {FD1f FD3f 1 , MVD0f MVD3f ,
FD MVD1f FD MVD3f }. Avem:
I

FD MVD3f se exprima cu celelalte regulid din RF M si F D

MVD2f se exprima prin celelalte reguli din RF M .

Propozitie
Regulile MVD4f MVD6f se exprima cu ajutorul regulilor
MVD0f MVD3f
1

cele de la dependente functionale


Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Theorem
Fie o multime de dependente functionale sau multivaluate si X
o submultime de atribute. Atunci exista o partitie a lui U X
notata prin Y1 . . . Yk , astfel incat pentru Z U X avem
`RF M X  Z daca si numai daca Z este reuniunea unui numar
de multimi din partitia {Y1 , . . . Yk }

Definition
Pentru o multime de dependente functionale sau multivaluate si
X o submultime de atribute, numim baza de dependenta pentru X
cu privire la partitia B(, X) = {{A1 } . . . {Ah }, Y1 . . . Yk }, unde
X = A1 , . . . Ah , iar Y1 , . . . Yk este partitia construita in teorema
precedenta.

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

Baze de date relationale


Dependente functionale
Dependente multivaluate

Definitii si observatii
Propriet
ati si reguli de inferent
a

Observatii

Avem `RF M X  Z daca si numai daca Z este o reuniune


de elemente din partitia B(, X).

Fie X = {A| `RF M X A}. Atunci pentru orice A X


avem {A} B(, X).

Nicolae-Cosmin V
arlan

Baze de date relationale Dependente functionale Dependente

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