TRANSFORM RI CONSERVATIVE
Transformarea de proiectie-unire ( pe scurt PJ-transformare ) a unei relatii r(R) determinata de schema bazei de date R este utilizata pentru caracterizarea descompunerilor conservative ( fara pierderi de informatii ).
Descompuneri fara pierderi de informatii
Fie o schema R si o descompunere a lui R în
schemele R1,R2,...,Rp astfel ca R=R1 R2 Rp si F
o multime de F-dependente pe R. Descompunerea este fara
pierderi (loss join descompozition) în raport cu F daca orice relatie r de schema R care satisface F atunci pR1(r)pR2(r)
.
pRp(r) r.
Teorema 8.1. (Criteriul de descompunere fara pierderi) Fie schema de relatie R, descompunerea [R1,R2] si F o multime de F-dependente. Daca F implica una din urmatoarele F-dependente:
i) R1 R2 R1tR2
ii) R1 R2 R2tR1
iii) R1 R2 R1
iv) R1 R2 R2
atunci orice relatie r(R) care
satisface F se descompune fara pierderi de informatie, adica
r=pR1(r)pR2(r).
Demonstratie. i) Fie relatia r care satisface F suficient sa aratam ca r include pR1(r)pR2(r). Fie
tuplul t pR1(r)
pR2(r) atunci
exista tuplurile t1, t2 r astfel încât t1(R1)=t(R1)
si t2(R2)=t(R2) din care rezulta ca
t1(R1 R2)=t2(R1 R2). Deoarece r satisface F rezulta t2(R2)=t(R2),
t2(R1tR2)=t1(R1tR2)=t(R1tR2),
din care rezulta t(R1 R2)=t2(R1 R2) adica t=t2 deci t r.
Relatiile ii), iii) si iv) se demonstreaza analog.
Transformari conservative
Criteriul de conservare a relatiei prin descompunere este dat de relatia :
pR1(r)pR2(r)
pRp(r) r.
În continuare se prezinta o metoda pe baza careia se decide daca o dependenta ( F sau J ) este implicata de o multime de dependente ( F- si / sau J-dependente ).
Definitia
8.1. Fie R o multime de scheme de relatii si
R R1R2.Rp. Se numeste transformare de proiectie-unire
definita de R, functia de relatie
de schema R notata mR
data de relatia : mR(r) pR1(r)pR2(r)
pRp(r).
Exemplul 8.1 Fie R si R ABCDE. Se considera relatia
r(R) din figura 1. Rezultatul aplicarii transformarii mR lui r este relatia s(R).
r ( A B C D E ) s ( A B C D E )
1 5 7 8 3 1 5 7 8
3 4 5 2 8 3 4 5 2 8
3 4 5 2 9 3 4 5 2 9
3 1 5 2 9 3 1 5 2 9
3 1 5 2 9
Figura 1 Figura 2
Definitia 8.2. Fie R o multime de scheme de relatii si R R1R2.Rp. Relatia r(R) se numeste punct fix al transformarii de proiectie_unire mR daca mR(r) r. Multimea tuturor punctelor fixe ale transformarii mR (.) se noteaza cu FIX(R).
Relatia s(R) din figura 2 este un exemplu de punct fix dat de schema : R . A spune ca r satisface J-dependenta *[R] este acelasi lucru cu
mR (r) r. În continuare se prezinta câteva proprietati ale PJ-transformarii mR (.).
Propozitia 8.1. Fie o multime de scheme de relatii R , R R1R2.Rp si r si s de schema R. PJ-transformarea are urmatoarele proprietati:
i) r mR (
r ),
ii) daca r s atunci mR( r )
mR( s ) ( monotonie ),
iii) mR( r ) mR (mR( r ) ) ( idempotenta ).
Demonstratie.
Punctul i) rezulta din
definitia PJ-transformarii. Punctul ii) rezulta din
proprietatea de monotonie a proiectiei, adica daca rs atunci pRi(r)
pRi(s) 1
i
p. Fie r'= mR(r) atunci iii) rezulta din proprietatea de completitudine a unirii lui pR1(r)
pR2(r)
pRp(r)
Trebuie studiat cazul în care o relatie de schema R poate fi reprezentata printr-o baza de date de schema R care sa satisfaca urmatoarele conditii :
C1) sa nu existe pierderi de informatii ;
C2) sa fie eliminata redundanta.
În practica
nu este interesanta multimea tuturor relatiilor posibile de
schema R ci numai câteva submultimi, notam una din ele cu P. Multimea P satisface conditia (C1) daca mR(r) r pentru orice relatie rP, adica P
FIX(R).
A doua conditie (C2) poate fi exprimata astfel:
proiectiile oricarei relatii r din P în raport cu schemele din R
sa aiba cel putin atâtea
tupluri cât r. Deoarece P este infinta ea nu poate fi descrisa prin enumerare ci
numai prin specificarea multimii de restrictii de tip F- sau J- pe care relatiile
componente le satisfac. În continuare
notam cu C o multime data de restrictii ( conditii )
pentru schema de relatie R.
Definitia 8.3. Multimea tuturor relatiilor r(R) care satisfac toate restrictiile din C se noteaza cu SATR(C). Daca schema R se subântelege atunci acesta se noteaza SAT(C), iar cea pentru o singura conditie se noteaza cu SAT(c).
Definitia
8.4. Fie C o multime de restrictii pentru o
schema de relatie R. Spunem ca C implica c si notam
Cc daca
SATR(C)
SATR
(c).
Daca P SATR(C) pentru o multime de restrictii C, atunci conditia (C1) de eliminare a pierderilor de
informatii pentru baza de date de schema R poate fi formulata
prin una din urmatoarele conditii : SAT(C)FIX(R) sau C
*aRs.
În paragraful urmator se da o metoda de verificare a acestor
conditii când C este formata
dintr-o multime de F- si
J-dependente.
8.3. Tablouri
În acest paragraf se prezinta o metoda de
reprezentare a unei PJ-transformari printr-un tablou. Tabloul este similar
unei relatii cu deosebirea ca, în locul valorilor tabloul contine variabile dintr-o multime
oarecare V, care este reuniunea a doua multimi Vd si
Vn, unde Vd este o
multime de variabile principale ( distinguished ) notate cu litera a cu
indice si Vn este o multime de variabile secundare notate
cu litera b cu indice. Multimea atributelor este data de numele coloanelor tabloului care formeaza
schema tabloului. Fiecare variabila principala apartine numai unei coloane. Tuplului
dintr-o relatie îi corespunde o linie dintr-un tablou. Pentru un tablou de
schema A1A2.An variabile principale din
coloana Ai 1i
n sunt ai. Un tablou T de schema R poate fi privit
ca paternul (sau sablonul ) unei
relatii de schema R. Dam relatia ce se obtine dintr-un
tablou înlocuind variabilele cu valori
din domeniile respective. Presupunem ca R R1R2.Rn
si D= Di cu Di dom (Ai) unde 1
i
n. Se
numeste evaluare ( estimare ) a
tabloului T, o functie r : V
D, astfel ca r(v)
dom (Ai),
daca v este o variabila care
apartine coloanei Ai. Se
extinde evaluarea de la variabilele la linii si apoi la întreg tabloul.
Daca w <w1,w2,.,wn> este o linie a tabloului atunci r(w) < r w1), r w2),., r wn )> este o evaluare a liniei w. Notam
cu r r( t )
Exemplul 8.2 Fie tablou T din figura 1, valoarea din figura 2 si r (T) în figura 3.
T ( A1 A2 A3 A4 ) r(a1) 2 r(b1) 5 r (A1 A2 A3 A4)
a1 b1 a3 b2 r(a2) r (b2) 2 5 6 9
b3 a2 a3 b4 r(a3) r(b3) 3 4 6 8
a1 b5 a3 a4 r(a4) r(b4) 2 5 6 8
r(b5) 5
Figura 1 Figura 2 Figura 3
Vom interpreta un tablou T de schema R ca o functie de relatie de schema R. Fie wd linia formata numai din variabile principale wd < a1,a2,.,an > care nu este în mod necesar în T. Daca r este o relatie de schema R, punem
T (r)
Aceasta definitie arata ca, daca avem o evaluare r care face sa corespunda oricarei linii din T un tuplu din r atunci r (wd) este în T ( r ).
Exemplul 8.3. Fie relatia din figura 4 si tabloul T din figura 1 si evaluarea din figura 2 arata ca tuplul <2, 4, 6, 8> trebuie sa fie în T(r). Evaluarea r' din figura 5 pune <3, 5, 6, 8> în T(r). T(r) este relatia s din figura 6.
R(A1 A2 A3 A4) T( r ) s (A1 A2 A3 A4)
2 5 6 9 2 5 6 9
3 4 6 8 3 5 6 8
2 5 6 8 2 5 6 8
3 4 7 8 3 4 6 8
3 4 7 8
3 4 6 8
Când se evalueaza T(r), daca coloana Ai din T nu contine variabile principale atunci în ea nu exista nici o restrictie asupra valorilor lui r (ai).
Daca r(T)r atunci r'(T)
r pentru orice r' care coincide cu r pe V exceptând ai. Prin urmare daca dom(Ai)
este infinit, atunci T(r) poate avea o multime infinita de tupluri si nu este o relatie. De aceea când se considera un tablou ca o functie
trebuie ca în T sa aiba un simbol principal în fiecare coloana.
8.4. Tabloul ca reprezentare a unei PJ-transformari
Pentru orice PJ-transformare mR exista un tablou T care, ca functie coincide cu mR. Fie R o multime de scheme de relatie unde R R1R2.Rp A1A2.An. Tabloul determinat de schema bazei de date R notat TR are p linii si este definit în urmatorul mod :
- schema lui TR este R ;
TR are p linii w1,w2,.,wp ;
- linia wi
are în coloana Aj o
variabila principala aj daca
- Restul coloanelor din linia wi 1i
p sunt
simboluri secundare unice
( adica nu apar în alte linii ale TR ) ;
Aceasta transformare poate fi pusa sub forma urmatorului algoritmul TR.
Exemplul 8.4. Fie R
Tabloul TR este dat în figura 1 :
TR A1 A2 A3 A4
a1 a2 b1 b2
b3 a2 a3 b4
b5 b6 a3 a4
Figura 1
Exemplul 8.5 Fie R si relatia r din figura 2 atunci
mR(r) TR (r) s unde s este data în figura 3.
r A1 A2 A3 A4) s (A1 A2 A3 A4)
2 4 6 8 2 4 6 7
2 5 6 8 2 4 7 9
3 4 7 9 2 5 6 8
2 5 6 8
3 4 6 8
3 4 6 9
Figura 2 Figura 3
0. START [ TR-generarea tabloului TR
1. INPUT
2. k 0
3. FOR i 1, 2,..., p
3.1 FOR j 1, 2,..., n
3.1.1 IF
THEN
. 1 wi
j ' a j '
ELSE
. 2 k k + 1
. 3 wi
j ' bk '
3.1.2 CONTINUE
3.2 CONTINUE
4. OUPUT
STOP
Propozitia 8.2. Fie R o multime de scheme de relatie si R R1R2,.,Rp. Tabloul TR si transformarea mR definesc aceeasi functie de relatie de schema R.
Demonstratia rezulta din definitia transformari conservative.
8.5. Echivalenta schemelor si a tablourilor
Definitia
8.5. Fie
T1 si T2 tablouri de schema R. Spunem ca T1 T2 daca T1(r) T2(r)
pentru orice relatie r(R). Tablourile T1 si T2
sunt echivalente daca T1 T2
si T2 T1 si se noteaza cu T2
T1.
Definitia 8.6. Fie R si S doua multimi de scheme de relatie unde R R1R2,.,Rp S1S2,.,Sq. Se spune ca R acopera pe S notata R S, daca pentru orice schema Sj din S, exista Ri în R astfel ca Ri Sj. Se spune ca R si S sunt echivalente daca R S si S R si se noteaza R~S.
Exemplul 8.6. Daca R si S atunci S R
Teorema 8.2. Fie multimile de scheme de relatie R si S unde R R1R2,.,Rp S1S2,.,Sq. Urmatoarele afirmatii sunt echivalente :
1.
mR(r)mS(r) oricare ar fi r(R),
2. TR TS,
3. FIX(R)FIX(S),
4. R S.
Demonstratie. Din propozitia 1 rezulta ca
(1) este echivalenta cu (2). Vom arata ca (1) si (3) sunt
echivalente. Din urmatoarea secventa rezulta ca (1)
d1) sFIX( R)
d2) s mR (s) ( din d1 ),
d3)
mR(s)mS(s) ( din ipoteza ),
d4) smS(s) ( din
d2 si d3 ),
d5) smS(s ( din lema 1 ),
d6) s mS(s) ( din d4 si d5 ),
d7) sFIX( S)
Aratam
ca (3)(1). Adica
din FIX( R)
FIX( S)
mR(r)
mS (r).
Fie r(R), r' mR(r), din idempotenta rezulta mR(r') r', deci r'FIX( R)
din ipoteza rezulta ca r'
FIX( S)
adica (a) mS(mR(r)) mR(r).
Dar mR(r)
r, din
monotonia lui mS rezulta
(b) mS(mR(r))
mS(r) ; din (a) si
(b) rezulta ca mS(r)
mR(r).
Vom arata ca conditiile (1) si (4) sunt echivalente. Presupunem ca, dom(A) contine cel putin doua valori pentru orice atribut A din R. Notam aceste valori cu 0 si 1. Construim relatia s(R) cu q tupluri t1,t2,.,tq definite în urmatorul mod :
Notam
cu t0 tuplul format numai din valori nule. Nu
este greu de verificat ca t0 apartine lui mS(s). Prin urmare t0mR(s).
Conform definitiei lui mR,
pentru fiecare schema Ri din R exista un
tuplu tj
s astfel ca tj(Ri ) t0(Ri). Astfel Ri
Sj deci S R.
Presupunem ca R S. Fie
r(R) o relatie arbitrara si t un tuplu arbitrar din mS(r). În r exista tuplurile
t1,t2,.,tq astfel ca ti(Si) t(Si), 1i
q. Deoarece R S atunci pentru orice Rj din R exista Si, Si
Rj, prin urmare ti(Rj) t(Rj). Fie
tuplurile tj'
r, tj'(Rj) t(Rj ) din care rezulta ca t este
din mR(r) si prin
urmare mR(r)
mS(r).
Exercitiu. Fie R
si S . Daca R S se observa ca TR(r) TS(r). Fie
relatia r(R) din figura 1 si tablourile TR(r) si
TS(r).
r(A1 A2 A3 A4 ) TR(A1 A2 A3 A4 ) TS (A1 A2 A3 A4 )
2 5 7 9 2 5 7 9 2 5 7 9
3 4 8 10 2 5 8 10 3 5 8 10
4 6 8 11 2 5 8 11 3 5 8 11
3 5 7 9 4 6 8 10
3 5 8 10 4 7 8 11
3 5 8 11
4 6 8 10
4 6 8 11
Figura 1 Figura 2 Figura 3
Corolar 8.1. Fie multimile de scheme de relatie R si S unde R R1,R2,.,Rp S1,S2,.,Sq. Urmatoarele afirmatii sunt echivalente :
1. mR mS
2. TRTS,
3. FIX(R)=FIX(S),
4. R~ S.
Prin conditia (1) întelegem mR(r) mS(r) pentru orice r(R).
Fie R
si S Multimile de scheme de relatie R si S sunt echivalente. Din corolarul 1 rezulta ca
TRTS, dar evident ca TR
TS.
Cum se observa din exemplul urmator chiar daca se vor
redefini variabilele secundare.
TR(A1 A2 A3 A4 ) TS (A1 A2 A3 A4 )
a1 a2 a3 b1 a1 a2 a3 b1
a1 b2 b3 a4 b2 b3 a3 a4
a1 b4 a3 a4 a1 b4 a3 a4
Figura 1 Figura 2
Definitia 8.7. Fie w1 si w doua linii ale tabloului T de schema R. Daca pentru orice atribut A din R cu w2(A) principala rezulta ca w1(A) este variabila principala si se spune ca w1 absoarbe ( subsume ) w2.
Definitia 8.8. Fie T un tablou. în care liniile nu mai pot fi ( reduse ) absorbite de nici o alta linie se numeste redus prin absortie si se noteaza cu SUB(T).
Exemplul 8.6. În tabloul
TR w1 absoarbe w2
deoarece w1(A1) a1
w2(A1) a1 w1(A4) a4
w2(A4) a4 atunci :
SUB(TR)(A1 A2 A3 A4) SUB(TS)( A1 A2 A3 A4)
a1 a2 a3 b1 a1 a2 a3 b1
a1 b4 a3 a4 a1 b4 a3 a4
Teorema 8.3. Fie multimile de scheme de relatie R si S unde R R1,R2,.,Rp S1,S2,.,Sq. Atunci:
1) TRTS
SUB(TR) SUB(TS)
exceptând variabilele secundare.
2) SUB(TR)TR.
Pentru demonstratie vezi Maier/ /.
8.5. C-Transformari
Teorema 8.3 arata ca exista un procedeu simplu pentru verificarea echivalentei a doua tablouri obtinute din multimi de scheme si anume verificarea identitatii reduse prin absortie. Orice tablou în care nici o variabila secundara nu se întâlneste mai mult decât o data se obtine dintr-o multime oarecare de scheme. Teorema 8.3 nu este adevarata pentru tablourile unde variabilele secundare sunt duplicate.
Dorim sa formulam conditii de echivalenta pentru tablouri arbitrare introducând c-transformarea pentru tablouri. C-transformarea este asemanatoare evaluarii (estimarii), care în locul transformarii variabilelor tabloului în elemente ale domeniului ele se transforma în variabile ale altui tablou. Prin urmare liniile se transforma în linii.
Definitia 8.9. Fie T si T' doua tablouri de schema R si multimile de variabile V si V'. Transformarea y :V→V' se numeste c-transformare din T în T' daca ea satisface urmatoarele conditii :
1) daca variabila v se afla în linia A a tabloului T atunci y(v) se afla în linia A a tabloului T' ;
2) daca v este o variabila principala atunci y(v) este variabila principala ;
y(v) T'. Adica, daca
y este extinsa la liniile lui T si deci la
întregul tablou T atunci prin aceasta transformare o linie din T se
transforma într-o linie din T'.
Exemplul 8.7 Fie tablourile T si T' din figura 1 si 2 si c-transformarea din figura 3
T(A1 A2 A3 A4) T'(A1 A2 A3 A4)
y
1
i
y
y
y
y
y
Figura 1 Figura 2 Figura 3
Primele doua linii din T sunt aplicate în primele doua linii din T' de y, c-transformarea y aplica a treia linie dinT în a doua linie din T'.
Teorema 8.4. Fie tablourile T si T' de schema R. T T' daca si numai daca exista o c-aplicatie de la T la T'.
Demonstratie. Suficienta. Fie y o aplicatie de la T la T'. Fie r(R) o relatie
oarecare, T(r) si T'(r). Daca
r este o evaluare a lui T' astfel ca r (T') r, atunci r
y este o evaluare pentru T, r
y(T)
r. Incluziunea rezulta din y(T)
T' prin aplicarea lui r. Daca wd este o linie formata din
variabile principale si y( wd) wd r y(wd)) r (wd) deci T'(r)
T(r).
Necesitatea. Presupunem ca T T'. Considerând tabloul T' ca relatie obtinem T(T')T'(T') Luând evaluarea
r' care este transformarea identica a variabilelor V' din
T'. Evident r'(T') T'
T' si r'(wd) wd
T'(T'). Exista o
evaluare r pentru T astfel ca r (T)
T', r (wd) wd. Atunci
definim c-aplicatia din T la T' prin r
Corolar 8.2.
Fie T si T' doua tablouri de schema R. T T'
exista o c-transformare de la T la T' si o
c-transformare de la T' la T.
Exemplul 8.8 Fie T tabloul care este compus numai dintr-o linie formata
numai din variabile principale wd si T' un tablou care contine
wd, atunci T T'. C-transformarea din T la T' aplica wd
în wd. C-transformarea din T' în T aplica toate
liniile în wd.
8.6. Echivalenta schemelor determinata de restrictii
În acest paragraf se determina care sunt proprietatile unei relatii care sa fie corect reprezentata prin proiectiile sale. Din corolarul 8.1 rezulta ca, daca R este o schema a bazei de date atunci FIX(R) este multimea tuturor relatiilor pe R R1,R2,.Rp numai daca Ri R pentru un i anumit. În multe cazuri dorim sa reprezentam o multime de relatii pentru schema R asupra careia se aplica o multime impusa de restrictii. Vom utiliza restrictiile ca sa reprezentam relatiile.
Definitia 8.10. Fie P o multime de relatii de schema R. Daca T1 si T2 sunt tablouri de schema R atunci T1 cuprinde peT2 în raport cu P ( notat T1⊒P T2 ) daca
T1(r) T2 (r), r
P.
T1 PT2 ( sunt echivalente pe P ) daca T1 PT2 si T2 PT1.
În majoritatea cazurilor se considera P SAT(C) pentru o multime de restrictii C data. Notam pe scurt pe prin
. Ne intereseaza când SAT(C)
FIX(R) pentru o schema a bazei de date R. Adica pentru o schema a bazei de
date R putem sa descompunem fara
pierdere pe R orice relatie din
SAT (C). În
termenii restrictiilor aceasta se poate reduce la verificarea
corectitudinii relatiei C
*[R]. Daca TI este un tablou pentru transformarea
identica (TI contine linia formata din variabile
principale), atunci dorim sa stim daca TR se comporta
ca TI pe SAT(C) adica
TR
TI ? Teorema 8.3 da un test pentru dar ne trebuie un test pentru
. Pentru lema urmatoare va
trebui sa privim un tablou ca o relatie care este din multimea
P. Prin aceasta se întelege ca
pentru orice evaluare r, r(T)
P Pentru o multime arbitrara de relatii aceste conditii
sunt mai greu de verificat. Totusi câând P=SAT(C) unde C consta
într-o multime de F- sau J-dependente
daca pentru o evaluare bijectiva r r (T)
P, atunci pentru orice alta evaluare r r'(T)
P.
Lema 8.1. Fie T1 si T2 doua tablouri de schema R si P o multime de relatii pe R. Fie T1' si T2' astfel ca :
1) T1 P T1' si T2 P T2' si
2) T1' si T2' considerate ca relatii sunt ambele din P.
Atunci T1 T2 daca si numai daca T1' T2'.
Demonstratie Suficienta este directa. Daca T1' T2'
atunci rezulta ca T1'⊑P T2', dar T1 PT1'si T2 P T2' deci
T1⊑PT2. Vom arata ca, daca T1⊑P T2 atunci T1' T2'.
Considerând T1' simultan ca relatie si tablou atunci T1'(T1')
este din P si T1'(T1') T2'(T2').
Fie wd o linie a tuturor variabilelor principale si r o evaluare identica a lui T1'. Evident r (T1')
T1' astfel r (wd) wd este în T1'(T1')
prin urmare si în T2(T1'). Exista
o evaluare h pentru T2' astfel ca h( T2')
T2' si h(wd) wd. Evaluarea h poate fi considerata ca o
c-transformare din T2' în T1' si prin urmare rezulta
T1
* T2'.
Corolar 8.3. În ipotezele lemei 8.1. rezulta ca T1 P T2 daca si numai daca
T1' T2'.
Acest corolar poate fi interpretat ca un test de verificare a
relatiei T1 T2, daca printr-un procedeu am afla tabloul
T', astfel ca T' CT si T'
ca relatie este în SAT(C). Vom
introduce reguli de transformare pentru tablouri. O regula de transformare
determinata de o multime de restrictii C este un procedeu de modificare a tabloului T în tabloul T' astfel
ca T CT'. Prima
transformare particulara a fost c-transformarea prin absortie. Pentru
un tablou T cu variabile secundare ne duplicate eliminarea liniilor absorbite
conserva echivalenta. Va trebui sa gasim multimea
regulilor de transformare ( F-reguli si J-reguli) pentru o multime
data C de F-dependente si
J-dependente. Aplicarea repetata a acestor reguli de transformare are
ca rezultat obtinerea unui tablou care satisface toate dependentele
din C. În continuare vom considera
o multime C de F- si
J-dependente pentru o multime U de atribute care constituie schema
pentru toate restrictiile si tablourile considerate. Oricarei
F-dependente X
A din C îi este
asociata o F-regula. F-regula
determinata de X
A reprezinta o clasa de
transformari care poate fi aplicata unui tablou care nu depinde de
liniile alese.
F-regula
Fie un tablou
T care contine liniile w1 si w2 unde w1(X) w2(X) si v1 w1(A) si v2 w2 (A), v1 v2. A aplica o F-regula determinata
de F-dependenta X
A la tabloul
T, înseamna a identifica variabilele v1 si v2 si
a înlocui una din ele prin alta în urmatorul mod :
- daca una din v1 si v2 este principala, sa zicem v1 instanta lui v2 este înlocuita cu v1.
- daca v1 si v2 nu sunt principale atunci orice instanta cu indice mai mare este înlocuita cu instanta variabilei cu indice mai mic.
Deoarece tabloul este o multime de linii, câteva din ele prin redefinire vor fi identice si vor fi eliminate.
Exemplul 8.9 Fie tabloul T din figura 1 si C . Aplicând F-regula determinata de A2A4 A3 la liniile 1 si 2 permitem înlocuirea variabilei b3 cu a3 deoarece a3 este principala si obtinem tabloul T'.
T(A1 A2 A3 A4 T'(A1 A2 A3 A4) T"( A1 A2 A3 A4
Figura 1 Figura 2 Figura 3
Aplicând F-regula determinata de A1A2 A4 se obtine tabloul T" deoarece variabile b1 si b4 trebuie identificate prin cea cu indice mai mic. Astfel prima si ultima linie sunt identice deci se elimina una din ele.
Teorema F. Fie T' tabloul rezultat prin aplicarea unei F-reguli date de X A din tabloul T. Atunci T si T' sunt echivalente pe SAT(X A).
J-regula
Fie S o multime
de scheme de relatii si *[S] o J-dependenta pe U. Fie T un
tablou si w1,w2,.,wq liniile lui T care
sunt unibile pe S cu rezultatul w. Aplicarea J-regulii *[S] la T înseamna
formarea tabloului T' T
Exemplul 8.10. Fie T tabloul reprezentat în figura 4 si C . Aplicând J-regula determinata de *[ A1A2, A2A3, A3A4] la a doua si a treia linie din T genereaza linia <a1 b1 b3 a4>. Rezultatul este tabloul T' dat în figura 5.
T(A1 A2 A3 A4 T'(A1 A2 A3 A4 ) T"( A1 A2 A3 A4
Figura 4 Figura 5 Figura 6
J-regula data de *[A1A2A4, A1A3A4] poate fi aplicata la prima si a patra linie a lui T'; se genereaza linia <a1 b1 b3 a4> iar tabloul T" este rezultatul acestei aplicatii.
Teorema J. Fie S Fie T' tabloul rezultat prin aplicarea J-regulii determinata de *[S] din tabloul T. Atunci tablourile T si T' sunt echivalente pe SAT(*[S]).
Demonstratie. Va trebui sa aratam ca T(r) T'(r) pentru orice r SAT(*[S]). Fie t'
T'(r) si r o evaluare cu r (wd) t' si r(T')
r. Deoarece T T' avem r(T)
r(T') de asemenea r(T')
r si r(wd) t'
T(r). Prin urmare T'(r)
T(r). Acum fie t un tuplu
oarecare din T(r) si r o evaluare cu r(wd) t si r(T)
r. Tuplul unic care ar putea apartine
lui r(T') dar nu lui r(T) este r(w) unde w este generata de
J-regula determinata de *[S] din liniile w1,w2,.,wq
care apartin lui T. Daca w1,w2, .,wq
sunt unibile pe S atunci r(w1), r(w2),.,r(wq) unite pe *[S] dau rezultatul w. Întrucât r intra în
SAT(*[S]) si r(w1), r(w2),., r(wq)
r(T)
r atunci r(w)
r. Prin urmare r(T')
r si r(wd) t
T(r), deci T(r)
T'(r) si deci T(r) T'(r).
8.7. Algoritmul chase
În acest paragraf se da un algoritm de calcul care se
bazeaza pe metoda chase, cu ajutorul careia pentru un tablou dat si
o multime de dependente C se
construieste un nou tablou T* astfel ca T T* si T* ca relatie sa
apartina lui SAT(C). Pentru
un tablou T si o multime de dependente C se aplica regulile determinate de F- si J-dependentele
din C atâta timp cât se realizeaza
schimbari. Ordinea de aplicare este neesentiala. Conform teoremelor F si J la terminarea algoritmului se genereaza
un tablou T*
T si T*
SAT(C).
Fie tabloul T din figura 1 si C . Aplicând F-regula determinata de B C se obtine T1 din figura 2. Aplicând J-regula *[ABC, BCD] se obtine T2 din figura 3. Aplicând F-regula determinata de AD C se obtine T3 din figura 4.
T ( A B C D) ( A B C D
)
( A B C D )
(A B C D ) T*( A B C D )
b4
Figura 1 Figura 2 Figura 3 Figura 4 Figura 5
Aplicarea J-regulii determinatâ de *[ABC, BCD] lui T3 permite obtinerea lui T* si orice alta regula îl lasa invariant. Astfel T* este ca relatie în SAT(C).
Definitia
8.11. Se numeste secventa
generata din T prin aplicarea regulilor ( F- sau J) determinate de
dependentele din C, secventa T0 T,T1,. .Ti. unde Ti se obtine din Ti-1 prin
aplicarea unei F- sau J-reguli determinata de o dependenta din
C, se presupune Ti-1 Ti. Ultimul element Tn din secventa
generata, care prin aplicarea oricarei
F- sau J- reguli determinata de C nu-l mai schimba se numeste chase-ul lui T în raport cu C. Operatorul
corespunzator îl notam cu
(T).
Algoritmul realizat mai jos doua proceduri TR si DIF. Procedura TR transforma tabloul Tj+i în Tj+i+1 pe baza regulei determinata de dependenta Ci. Functia DIF determina daca exista o diferenta între doua transformari succesive.
0 START [Chase ]
1 INPUT [ T, k, C1,C2,.,Ck]
2 n
3 Tn T
4 d
5 WHILE d
5.1 d
5.2 FOR i 1, 2. .., k
5.1.1 CALL TR(Tn,Ci;T*)
5.1.2 IF DIF(Tn,T')
THEN
.1 nn+1
.2 TnT*
.3 d =0
5.1.3 CONTINUE
5.3 CONTINUE
6 OUPUT
7 STOP
Exemplul 8.11. Fie T si C din exemplul 1. T, T1, T2, T3 si T* este o secventa generata din T de C si T* ChaseC(T). Va trebui sa observam cum se transforma liniile pe parcursul aplicarii algoritmului Chase. Fie T' obtinut din T prin aplicarea unei J-reguli. Atunci daca w este o linie a lui T ei îi corespunde în T' aceeasi linie sau are în plus o linie obtinuta prin unirea unui numar de linii. Fie T' derivat din T prin aplicarea unei F-reguli care schimba variabila v cu variabila v'. Daca w este o linie în T îi corespunde în T' o linie w' care este de fapt w în care s-a înlocuit v cu v'. ( Daca w nu contine v atunci w w' ).
Daca T0,T1,.,Ti,.,Tj
este o secventa generata din T determinata de C si este o linie din
relatia " corespunde " poate fi prelungita
tranzitiv.
Spunem ca
linia din
corespunde liniei
daca exista
unde
si
corespunde lui
,
corespunde
, si
corespunde lui
. Pentru
orice linie w dintr-un tablou al secventei generate din T în orice tablou
care îi urmeaza exista o linie care îi corespunde.
Teorema 8.5. Fie tabloul T si retrictiile
C. Orice secventa generata din T determinata de C este
finita, adica (T)
Demonstratie. Deoarece tablourile sunt multimi
finite de linii si orice regula nu introduce noi variabile, exista
numai un numar finit de tablouri care pot sa apara în secventa
generata din T determinata de C. Este suficient sa aratam
ca nici un tablou nu apare de doua ori. Fie si
doua tablouri dintr-o secventa
generata de din T deterninata de C, i<j. Daca la fiecare pas
o F-regula a fost utilizata atunci
contine câteva variabile care în
lipsesc, deci
. Daca
în secventa se aplica numai J-reguli atunci
contine cel putin o linie în plus fata
de
, deci
Teorema
8.6. Orice tablou T* din (T),
considerat ca relatie este în SAT(C).
Demonstratie.
Daca T* nu ar satisface F-dependenta XA din C
atunci ar exista doua linii
si
în T* astfel ca
(X)
(X) si
(A)
(A).
Atunci putem aplica F-regula determinata de X
A
liniilor
si
care se schimba în T* ceea ce arata ca T* nu este ultimul
tablou în secventa generata din T determinata de C.
Similar daca T' violeaza o J-dependenta din C atunci
aplicând J-regula determinata de F-dependenta respectiva se obtine
un nou tablou cu o linie în plus.
Corolar
8.4. (T)
T
considerat ca relatie apartine lui SAT(C).
8. 8. Proprietatea Church-Rosser
Calculul
chase-ului este un exemplu de sistem de implicatii. Un sistem de implicatii
este o pereche ( Q,), unde
Q este o multime de obiecte si
este o relatie binara antireflexiva
pe Q, numita relatie de
transformare. În cazul nostru calculul chase-ului este un nou sistem de
implicatii n raport cu orice multime de restrictii. Multimea
Q este formata din tablouri pe U si T
T' daca
T' se obtine din T prin aplicarea unei F- sau J-reguli determinata de
o dependenta din C.
Definitia
8.12. Închiderea tranzitiva si reflexiva a relatiei se noteaza
. Vom
citi T
T' prin
" T trece în T' " sau " T' este obtinut din T ".
Definitia
8.13. Fie sistemul de implicatii ( Q,), obiectul p
Q se
numeste ireductibil ( terminal ) daca p
q implica
p q, adica nu exista p
q pentru
ca sa avem p
q.
Definitia
8.14. Sistemul de implicatii ( Q,) este finit
daca pentru orice p
Q exista o constanta c, care depinde de p astfel daca p
q în i
pasi atunci i
c. Adica
pentru orice obiect p
Q exista
numai un numar finit de transformari ale lui într-un obiect
ireductibil (terminal ).
Utilizând
teorema 8.5 din paragraful precedent rezulta ca sistemul de implicatii
pentru calculul chase-ului este finit. Prin (T) am
notat toate tablourile terminale obtinute din T prin utilizarea F- sau
J-regulilor determinate de dependentele din C.
Definitia 8.15. Un sistem de
implicatii ( Q, ) este FCR ( Finit Church-Rosser )
daca pentru orice p
Q si daca p
si p
si
si
sunt ireductibile atunci
Adica
începând cu orice p ajung la unul si acelasi obiect ireductibil
independent de procedeul de aplicare a transformarii.
Teorema 8.7. ( Sethi ) : Sistemul de
implicatii ( Q,) este FCR daca si numai
daca pentru orice p
Q, p
si p
exista q
Q astfel ca
q si q2
q.
Pentru demonstratie vezi Sethy / /.
Daca T0,T1,.,Ti,.,Tj
este o secventa generata din T determinata de C si este o linie din
, relatia " corespunde " poate
fi prelungita tranzitiv.
Spunem ca linia din
corespunde liniei
daca exista
unde
si
corespunde lui
corespunde
, si
corespunde lui
. Pentru orice linie w dintr-un
tablou al secventei generate din T în orice tablou care îi urmeaza
exista o linie care îi corespunde.
Teorema 8.8. Calculul chase-ului
determinat de o multime de restrictii C este un sistem de implicatii
FCR. Prin urmare este un singleton.
Demonstratie. Trebuie sa aratam ca
calculul chase-ului este un sistem de implicatii finit. Adica va
trebui sa aratam ca, daca din tabloul T se obtin
tablourile si
prin aplicarea unor reguli de transformare
determinate de dependentele din C atunci exista un tablou T*
care poate fi obtinut din T1 sau T2 prin aplicarea a
uneia sau mai multor reguli de transformare determinate de C.
Pentru aceasta vom examina trei cazuri.
T T T
F-regula F-regula F-regula J-regula J-regula J-regula
T1 T2 T1 T2 T1 T2
Cazul 1 Cazul 2 Cazul 3
Se observa ca J-regulile lasa neschimbate liniile si ca o F-regula nu poate schimba ocurenta unei unei variabile fara a o schimba pe cealalta. Fie w1 si w2 doua linii în T si u1 si u2 linii în T' corespunzatoare lui w1 si w2 unde T' este obtinut din T prin aplicarea unei F- sau J-reguli. Deoarece daca w1(X) w2(X) atunci u1(X) u2(X) rezulta ca daca o F- sau J-regula este aplicata la o multime de linii în T atunci aceeasi regula este aplicabila la multimea de linii corespunzatoare lui T'.
Cazul 1: Fie T1 dedus din
T prin aplicarea regulii XA cu variabilele v1 si
v2, si T2 dedus din T prin aplicarea regulii Y
B cu variabilele v3 si
v4. Daca A
B se utilizeaza regula dedusa
din X
A pentru a identifica variabilele v1
si v2. Rezultatul este T*. Analog plecând
de la T1 prin aplicarea lui YB se identifica v3 si
v4. Daca A B se aplica succesiv regulile X
A si Y
B cel mult de doua ori si
se obtine T*.
Celelalte cazuri sunt simple exercitii.
Corolar 8.5. Daca SAT(C) SAT(C')
atunci (T)
(T) pentru orice tablou T.
Demonstratie: Vom da demonstratia în cazul când
C' C pentru orice c cu proprietatea C
c. Fie T*
(T). Aplicarea acelorasi reguli
determinate de C la tabloul T conduce la obtinerea lui T*, deoarece
C'
C. Din teorema 8.6 rezulta ca nu putem aplica
o regula din C' la T*, deoarece T* ca relatie este în SAT(C)
si prin urmare în SAT(C'). Deci
(T) T*.
8.9. Echivalenta tablourilor determinata de restrictii
Vom testa echivalenta
tablourilor determinata de o multime de restrictii, care
constituie un test pentru cazul când transformarea mR este fara
pierderi de informatii pe SAT(C). Din observatiile de la începutul
acestui paragraf se stie ca T(T). Din lema 1 rezulta urmatoarea
teorema :
Teorema 8.9. Fie tablourile T1 si T2 si C o multime de restrictii.
T2⊑CT1 daca si numai daca ChaseC(T2) ChaseC(T1).
Corolar 8.6. T1T2
ChaseC(T1)
ChaseC(T2)
Vom da un procedeu de a verifica când
toate relatiile din SAT(C) pot fi corect reprezentate prin proiectiile
lor dupa schemele de relatie ale unei baze de date de schema R.
Aceasta conditie este echivalenta cu C*[R] sau ca
este aplicatia identica pe SAT(*[C]).
În termenii echivalentei tablourilor TR CTI unde TI este
tabloul compus din wd linia variabilelor principale. TI
este aplicatia identica a tuturor relatiilor.
Dintr-o teorema 8.8 rezulta ca pentru a testa echivalenta este suficient ChaseC(TI) TI. Verificarea conditiei ChaseC(TR) TI se reduce la a verifica ca ChaseC(TR) contine wd.
8.10. Verificarea implicatiei dependentelor functionale
Fie C o multime de dependente functionale. Vom introduce un test pentru verificarea unei F-dependente din multimea C. Prezentam lema pe baza careia se demonstreaza teorema de caracterizare a implicatiei.
Lema 8.2. Fie T un tablou si C o multime de restrictii.
Fie ρ o evaluare a tabloului T astfel ca ρ(T) r unde r SAT(C).
Daca
este o secventa generata pentru
(T), atunci pentru 0
i
n :
ρ
(wi) si wi
absoarbe
unde w0 este o linie oarecare în
si wi este
linia care-i corespunde în ;
r;
, i
n.
Demonstratie. Pentru a demonstra (1) si (2 )
este suficient sa aratam ca, daca este o linie din
si
este linia care-i corespunde în
atunci ρ (
) si
absoarbe
. Daca w este o linie în
care nu corespunde la nici o linie în
, atunci ρ(w)
r. Daca
este obtinut prin aplicarea unei F-reguli
care nu schimba variabilele în
, atunci
, si deci ρ(
absoarbe
. În caz contrar, deoarece
trece în
, pentru un atribut A
(A) se schimba din
în
. Schimbarea se face prin aplicarea
F-regulii determinata de F-dependenta X
A atunci pentru liniile
si
în
în care
(X)
(X) si
(A)
si
(A)
si ρ(
unde
si
sunt tupluri din r. Va trebui sa avem
(X)
(X) deoarece r este în SAT(C) si
(A)
(A). Deci ρ(
(A))
(A)
(A)
(A))
). Prin urmare ρ(
). Daca w este o linie în
care nu corespunde nici unei linii din
atunci w este rezultatul unei uniri si
deci apartine lui SAT(C).
Fie dependenta netriviala XA si dorim sa testam când
C
X
A. Construim tabloul
care este format din doua linii
si
. Linia
este formata numai din variabile
principale si
are variabile principale numai în coloanele
care apartin lui X. Adica
, R
Teorema 8.10. C X
A daca si numai daca
(TX) contine în
coloana lui A numai variabile principale.
Demonstratie. Fie T
). Presupunem ca T* are
variabile secundare în coloana A. T* este considerat ca relatie este
contraexemplu pentru C
X
A. Din teorema 8.6 rezulta ca
T* satisface C. Prin urmare orice linie a lui T* are toate simbolurile
principale în coloanele lui X, deoarece
calculul chase-ului nu creaza noi simboluri. Din lema 8.2 rezulta ca
linia
ramâne neschimbata. Prin urmare T* are
doua linii compatibile pe X si necompatibile pe A, deci T* contrazice
X
A. Presupunem ca T* are numai
variabile principale în coloana X si r o relatie arbitrara din
SAT(C). Fie
si
cu
(X)
(X),
r. Consideram ρ o
evaluare a lui
astfel ca ρ(
si ρ(
. O astfel de evaluare exista
deoarece
(X)
(X). Iar
este linia din T* este linia care corespunde lui
din
. Fie
* linia din
* care corespunde lui
din
. Din lema 8.2 ρ(
) si T* are aceleasi variabile în coloana
A,
(A)
*(A).
(A)
(A))
(A))
(X))
(A)
Astfel doua tupluri din r compatibile pe X sunt
comparibile pe A. Prin urmare deoarece r a fost arbitrar aleasa rezulta SAT(C)SAT(X
A) sau C
X
A.
Pe aceasta teorema se bazeaza urmatorul algoritm :
0
PROCEDURE TID ( X, A, C, n ;w) /*-Testarea implicatiei CX
A */
1 Call generare(X,n;TX)
2 CALL Chase( C, ; T, p) /p-reprezinta nr de linii ale chase-ului/
3 d 0
4 i
5 WHILE d
5.1 IF T( i, A ) aA
THEN
.1 d
ELSE
.2 IF ip
THEN
.2.1 i i + 1
ELSE
.2.2 d
6 IF d
THEN
6.1 w TRUE
ELSE
6.2 w FALSE
7 RETURN(w)
0 Procedure generare(X,n;TX)
1 k
2 FOR i 1, 2,..., n
2.1 ( 1, i )
2.2 IF
X
THEN
.1 ( 2, i )
ELSE
.2 k k + 1
. ( 2, i )
2 Return
Exemplul 8.12. Fie C si dorim sa aratam
ca D. În acest caz
. Exista
în coloana D astfel ca BC
D nu este implicata de C.
Daca C' atunci
) este T*.
T* ( A B C D )
T* are numai în coloana D, deci
D.
Pâna acum am definit închiderea lui X numai în raport cu o multime de F-dependente. Vom extinde definitia pentru a cuprinde si J-dependente.
Definitia 8.16. Fie C o multime
de F-dependente si J-dependente si X o multime de
atribute. Se numeste închidere a lui X determinata de C, notata , cea mai mare multime Y cu
proprietatea C
X
Y.
Observatie. Daca C este formata numai din F-dependente, aceasta definitie se reduce la vechea definitie.
Corolarul 8.7. Pentru o multime
data C, este formata din toate
atributele A pentru care
) are numai variabile principale.
Corolarul 8.8. Daca J este o multime
de J-dependente, atunci JX
Y
implica X
Y. Adica o multime de J-dependente implica numai
F-dependente triviale.
Demonstratie. Deoarece
) are
o variabila secundara în orice coloana corespunzatoare lui U, X ,
deoarece J regula nu identifica simboluri. Deoarece dependentele
multivoce sunt cazuri speciale de J-dependente vom putea testa C
X Y prin testarea lui C*
[
XY, XZ], unde Z U-XY.
Teorema urmatoare arata o
cale alternativa care utilizeaza Chase pentru a gasi întreaga
multime Y astfel ca CX --»Y, pentru un X dat.
Teorema 8.11. Fie C o multime de
restrictii si fie Y o multime disjunctiva de multimea determinata de C. C
X Y daca si
numai daca
contine o linie
cu variabile principale numai în
coloana Y
Demonstratie. Necesitatea. Fie
). Fie
si
liniile corespunzatoare lui
si
din
. Fie
schema bazei de date R unde Z U-Y
. Vom
arata ca
)
trebuie sa contina
. Prin
urmare C
[XY,XZ].
Fie
si
liniile în
pentru
schemele XY si XZ si fie
si
liniile în
. Se considera aplicatia δ
de la variabile din
la variabile din
data de δ(
. Daca
este considerat ca relatie atunci δ poate
fi privita ca o evaluare si deoarece
(X)
(X) rezulta
(X)
(X). Prin urmare T* considerat ca
relatie este în SAT(C), din lema 8.1 δ(
(X), δ(
) si δ(
). Deoarece
). Se vede ca
aplica variabilele principale din
coloanele lui
în ale lui
* si variabilele principale din
coloanele lui
în ale lui
*. Vom arata ca linia
a lui
are variabile principale în coloanele Y
) este linia
din
*. Deoarece
contine variabile
principale în coloanele
) contine variabile principale
în coloanele lui
. Deoarece
absoarbe
contine p-variabile în coloanele din Y.
Se stie ca δ(
, δ aplica p-variabilele
din Y în coloanele Y ale lui
*. Linia
contine variabile principale în coloanele
Y, astfel δ(
) este variabila principala
în toate coloanele Y. Deoarece
absoarbe
este formata din variabile principale în
toate coloanele lui Z. Este cunoscut ca δ(
, de aceea δ trebuie sa
aplice variabile principale din coloana Z a lui
în variabile principale ale coloanelor lui Z
ale lui
*. Linia
este neprincipala în coloanele Z. U=Y
Z, astfel δ (
) este d-principala în coloanele
Z. Prin urmare
contine
, astfel C
X Y.
Implicatia inversa. Presupunem CX Y. Fie C'= C
*[ XY, XZ], unde Z=U-
Y. Din corolarul 8.6 rezulta ca
) deoarece SAT(C) =SAT(C').
0 PROCEDURE ÎNCHIDERE ( X, C,n ; , k )
1 CALL generare(X,n;TX )
2 CALL
; T*, m )
3 k 0
4
5 FOR j = 1, 2,..., n
5.1 d
5.2 i
5.3 WHILE d=1 & i m
5.3.1 IF
THEN
5.3.1.1 d 2
ELSE
5.3.1.2 i i + 1
5.3.2 CONTINUE
5.4 IF d = 1
THEN
5.4.1 k k + 1
5.4.2
5.5 CONTINUE
6 RETURN
Teorema 8.11 sta la baza urmatorului
algoritm de verificare a implicatiei CX--»Y.
0 START [ TIDM - Testerea Implicatiei MV-dependentei ]
1 INPUT
2 CALL generare ( X,n ; ) //genereaza
3 CALL Chase(C, ; T*, m )
4 CALL INCHIDERE ( X, C ; , k )
5 i
6 d
7 WHILE in & d=2
7.1 j 1 w
7.2 WHILE w=0 & jn
7.2.1 IF Y
THEN
.1 IF
THEN
.1.1 w
ELSE
.1.2 j j+1
.2 CONTINUE
7.2.2 CONTINUE
7.3 IF w = 0
THEN
7.3.1 d
ELSE
7.3.2 i i 1
7.4 CONTINUE
8 CASE d OF
8.1 OUTPUT
8.2 OUTPUT
9 STOP
8.11. Tabloul ca patern al unei relatii
În acest paragraf se formalizeaza ideea tabloului ca patern (sablon) al unor relatii.
Definitia 8.17. Fie P o multime de relatii si
r o relatie oarecare. Relatia s din P se numeste completare a lui r în P daca rs si nu exista nici o relatie
s' P astfel ca r
s'
s. Multimea tuturor completarilor
se noteaza cu
(r). Scrierea prescurtata a
lui
(r) este COMP(r). Completarea nu
exista întotdeauna.
Exemplul 8.13 Fie relatia r din figura 1). Daca C = atunci (r)=
. Daca C = [ AB, BCD ]
atunci
(r)= s din figura 2.
r ( A B C D ) s ( A B C D ) Q ( A B C D )
4 5 7 2 4 5 7 2 4 5 7
4 5 7 3 4 5 7 3 4 5 7
2 4 6 8 2 4 6 8 2 4 6 8
3 4 6 8 3 4 6 8
Figura 1 Figura 2 Figura 3
Daca o completare exista ea nu este unica.
Exemplu 8.14 Fie relatia din figura 1 si P = SAT([AB, BC]).
Completarea (r) contine relatia s din figura 2 si
relatia q din figura 3.
O multime P de relatii se
numeste închisa în raport cu intersectia daca pentru orice pereche de relatii r si
s din P r s este în P.
Lema 8.3. P este închisa în raport cu intersectia daca si numai daca completarea în raport cu P este unica.
Demonstratie. Presupunem ca P este închisa
fata de intersectie. Fie s si s' completari ale lui r în
raport cu P. Din închidere rezulta s' s
P si s'
s
r, astfel ca s= s'
s = s'. Fie r si s din P si q= r
s. Exista o submultime r' a lui r (
care poate fi r însasi) astfel ca r' este o completare a lui q în
raport cu P. Analog exista s' în P care este o completare a lui q. Din
ipoteza de unicitate rezulta s'= r', de unde s'= q'= r', deci q apartine
lui P.
Corolar 8.9. Daca C este o multime de F- si J-
dependente atunci (r) este unica.
Vom defini multimea relatiilor care reprezinta un tablou.
Definitia 8.18. Fie T un tablou si P o multime de relatii. Multimea care reprezinta T în raport cu P este notata REPC (T) este :
.
Notam cu REPC (T)= REP SAT( C ) (T).
Lema 8.4. Fie P o multime de
relatii închisa în raport cu intersectia si T1 si T2 doua tablouri.
Daca T2 ⊒T1 atunci orice r REPP (T1) exista s
REPP(T2)
astfel ca s
r.
Demonstratie:Vezi Maier pagina 189.
Teorema 8.12. Fie C o multime de
restrictii si T un tablou. Daca T*=(T) atunci REPP (T)= REPP (T*).
Demonstratie. Presupunem r REP(T). Fie ρ o evaluare astfel ca r = COMPC(ρ(T)). Evident ca ρ(T) r. Deoarece r SAT(C) din lema 8.4 rezulta ρ(T) (T*) si ρ(T*) r de unde rezulta COMP(T*))=r deci REP(T) REP(T*). Acum presupunem ca r REP(T*). Fie evaluarea ρ astfe ca COMP(ρ(T*))=r. Deoarece T* ca relatie apartine lui SAT(C) ρ(T*) SAT(C), avem r=ρ(T*). Tabloul T poate avea mai multe variabile decât tabloul T dar ρ(T) (T*). Fie w o linie arbitrara din T si w* linia corespunzatoare din T*, punem ρ( w)= ρ(w*).
Fie T=T0,T1,...,Tn=T* secventa generata pentru T*. Din lema 8.4 rezulta
(T ) (T2) (T n).
COMPC(ρ(Ti)) COMPC (ρ (Ti+1))
In ρ(Ti+1) trebuie sa existe ρ(w) care nu intra în COMPP(ρ(Ti)) în caz contrar ρ(Ti+1) COMPC(ρ(T)) si ambele incluziuni sunt adevarate. Prin urmare w Ti+1 si w Ti.
Corolar 8.8. Pentru o multime data de restrictii C si pentru un tablou T
REPC(T)=.
Exercitii.
1. Fie relatiile r si s figurile 1 si 2 si R=
R(A B C D E ) s(A B C D E)
1 2 3 5 2 1 2 3 5 2
1 4 3 7 2 1 4 3 7 2
1 4 3 7 6 1 4 3 7 6
1 2 3 7 6 1 2 3 5 6
1 2 3 7 2
Sa se calculeze m(r) si m(s).
2. Fie schema bazei de date R= . Aratati ca pentru orice r( R ).
mR(r) FIX( R).
3. Fie R= si S= . Aratati ca:
R S
FIX(S) FIX (R)
4. Calculati Chase (T ) unde
T. = (A1 A2 A3 A4 )
a1 b1 a3 b2
b3 a2 a3 a4
a1 b4 b5 a4
Pentru multimile C=
.
|