In acest capitol sunt tratate criteriile care arata când o descompunere a unei relatii determinata de o schema a unei baze de date este o reprezentare adecvata. Se introduce echivalenta prin date a schemelor bazelor de date. Aceste criterii sunt date la început pentru o multime arbitrara de relatii P, apoi se formuleaza rezultate suplimentare pentru cazul P=SAT(C).
9.1 Reprezentare adecvata
Vom introduce câteva notatii care vor fi folosite sistematic pe parcursul acestui capitol. Scopul este de a construi o reprezentare adecvata a elementelor multimii de relatii P. relatiile din P vor fi relatii de schema U.
Relatiile din Q le vom numi stari posibile (instantieri) pentru a le deosebi de relatiile care compun baza de date. Schema bazei de date va fi notata cu, R= unde U=R1R2.Rp. Multimea bazelor de date de schema R va fi notata cu D. Se pune problema reprezentarii instantelor din P prin baze de date din D si examinarea restrictiilor impuse schemei bazei de date pentru ca aceste reprezentari sa fie adecvate.
Definitia 9.1. Se numeste proiectie (transformare de proiectie) definita de schema R, notata pR transformarea care face sa corespunda unei instante r Q o baza de date d D, adica pR=d, unde d= si pRi ri 1≤i≤p.
Definitia 9.2. Transformarea care face sa corespunda unei baze de date d D o instanta din Q si este notata cu se numeste transformare de unire definita de R. Pentru baza de date d= D d=r1 r2 rp.
Descrierea schemei este implicita în structura bazei de date d.
Exemplul 9.1. Fie si Daca r este instanta din figura 1, baza de date este , unde si sunt în figura 2 ; iar instanta s=d este data în figura 3.
r(A B C) =(A B ) (B C) s(A B C) '(B C)
3 5 1 3 3 5 1 3 5 9 8
1 4 6 1 4 4 6 1 4 5 3 9
2 4 5 2 4 4 5 1 4 6
2 4 6 2 4 5
2 4 6
Figura 1 Figura 2 Figura 3 Figura 4
Daca se considera în locul relatiei relatia ' atunci d= , adica instanta vida pe U.
Definitia9.3. Fie P Q. Se numeste imagine directa a lui P determinata de R, notata cu multimea: pR(P)=.
Pentru usurinta scrierii vom renunta la p. Din definitia transformarii de proiectie rezulta ca pP pQ D. Ultima incluziune este stricta deoarece nu orice baza de date este proiectia unei stari admisibile oarecare din Q. Baza de date unde este dat în figura 1 iar este dat in figura 4, nu este proiectia nici unei instante cu schema ABC. Vom considera ca numai bazele de date din pQ pot candida pentru a reprezenta cu ele instante din P. Multimea pQ se compune din acele baze de date de schema R care se pot uni complet. In legatura cu aceasta, se pun urmatoarele întrebari:
sa se decida daca o multime de relatii se pot uni complet ?
bazele de date care nu se pot uni complet pot fi semnificative ?
sa se verifice daca o baza de date din pQ trebuie considerata în întregime ? Nu este
suficient sa consideram perechi de relatii în baze de date sau relatii individuale ?
Exemplu 9.2. Fie relatiile r1, r2 si r3 din figura 5.
r1 (A B) r2 (B C) r3 (A C)
2 3 3 6 2 8
4 5 5 8 4 6
Acestea se pot uni complet daca le luam ca perechi, însa toate trei împreuna nu pot fi unite. In continuare sunt prezentate restrictiile impuse relatiilor care compun baza de date derivata din Q de înlaturare a acestor contradictii.
CWR(P)=, ri pRi(P)}
se numeste imagine pe componente a lui P determinata de R
Adica CWR(P) consta din baze de date de schema R ale caror relatii sunt proiectii de instante din P dar nu în mod necesar ale aceleiasi instante. E clar ca pP CWR(P) care în cele mai multe cazuri este stricta. Pentru reprezentarea lui P trebuie utilizate numai acele baze de date care sunt proiectii de instante pentru care imaginile pe componente sunt proiectii de instante din Q. Multimea acestor baze de date o vom nota cu L. Ea este data de: L= CWR(P)∩pQ. Este clar ca pP L si pP pQ
Relatiile de incluziune între multimile introduse la momentul actual sunt aratate in figura 6.
pQ
P D
Q
pP
P
Figura 6 L
Definitia 9.5. Daca N D atunci N= .
Notiunea de reprezentare adecvata a fost introdusa de Rissanen / /.
Definitia 9.6. Schema bazei de date R descompune relatiile din P în componente independente daca au loc urmatoarele doua proprietati:
IC1: Daca d L atunci exista cel mult o instanta r P cu pr=d.
IC2: Daca d L atunci exista cel putin o instanta r P cu pr=d.
Proprietatea IC1 se numeste proprietate de reprezentare unica. Proprietatile IC1 si IC2 împreuna constituie conditia de componente independente. Conditia de componente independente impune ca transformarea p : P L sa fie bijectiva.
Se poate transcrie IC1 si IC2 ca o singura conditie, dar cum în continuare IC1 se va folosi în alte determinari ale adecvarii, le-am formulat separat. Observam ca IC2 este adevarata daca si numai daca pP=L. Conditia de componente independente provoaca greutati când vrem sa revenim de la baza de date la instanta caci transformarea inversa a lui p e greu de calculat. Conditiile IC1 si IC2 nu cer ca sa fie inversa lui p. Este foarte posibila situatia reprezentata în figura 7.
Q pQ
P p L pP
p
Figura 7
Exemplul 9.3. Fie: U=ABC, R=.
P se compune din asemenea stari admisibile ce satisfac urmatoarea conditie: pentru orice pereche de tupluri si din r determina
Unirea unei baze de date din pQ poate sa nu fie o instanta din P.
Urmatoarea notiune de adecvare a fost introdusa de Arora si Carlson / /.
Definitia 9.7. Schema bazei de date R descrie o descompunere care conserva informatiile din P daca ea are urmatoarele proprietati:
AC1. Pentru d L exista cel mult o instanta r P astfel ca p(r)=d;
AC2. Daca instanta r Q este proiectata în L, adica p(r) L rezulta atunci ca r P.
Proprietatea AC2 se numeste restrictie de conservare. AC1 si AC2 constituie o conditie de conservare a informatiei.
Definitia 9.8. Pentru orice submultime N pQ se numeste preimagine a lui N, notata N , multimea : N
Multimea care ne intereseaza este. Relatia dintre si alte multimi este aratata în figura urmatoare
D pQ
Q
L
P
pP
Figura 8
Lema 9.1. AC2 este echivalenta cu proprietatea
Demostratie Presupunem ca are loc AC2. Pentru orice , p(r) L, atunci din AC2 rezulta ca r P deci . Deoarece , rezulta ca .
Presupunem ca . Pentru orice instanta , unde p(r) L rezuLta ca r P. Deci AC2 este satisfacuta.
Observatie. determina L=pP. Din aceasta rezulta consecinta care leaga conditia de componente independente de conditia de conservare a informatiei.
Corolar 9.1. AC2 implica IC2, prin urmare AC1 si AC2 implica IC1 si IC2.
Observatie. In sens invers implicatia nu este adevarata.
Din proprietatile AC1 si AC2 rezulta ca, putem reprezenta orice instanta r P printr-o baza de date d L si de asemenea rezulta ca d nu este posibil sa reprezinte o alta instanta din Q-P. Conditia de conservare a informatiei specifica faptul ca exista inversa transformarii p
Observatie. Intotdeauna
Lema 9.2. Proprietatea LJ implica proprietatea IC1.
Demonstratie. Presupunem ca LJ are loc. Fie instantele . Daca . Din proprietatea LJ rezulta r= p(r)). Prin urmare IC1 este corecta.
Corolar9.2. LJ si AC2 implica AC1 si AC2.
Lema 9.3. Proprietatile AC1 si AC2 implica LJ.
Demonstratie. Presupunem ca sunt îndeplinite conditiile de conservare a informatiei. Fie si d=p(r). Aratam ca(d) este de asemenea o instanta astfel ca Deoarece d L din AC2 rezulta ca(d) P. AC1 implica(d) =r deoarece p(r)= =p (d) Prin urmare r=(d) care este proprietatea LJ.
Teorema 9.1. Daca AC2 este adevarata atunci proprietatile AC1 si LJ sunt echivalente.
Adica în conditiile de conservare a informatiei este inversa lui p pe P.
Exemplul 9.4. Fie F-dependenta asigura ca proprietatea LJ are loc. Daca instanta r satisface atunci satisface . Invers, satisface , atunci r va satisface . De aceea daca pentru instanta r, atunci . Multimea P satisface proprietatea AC2, deci este indeplinita conditia de consevare a informatiei.
Dupa cum am observat chiar în conditiile îndeplinirii proprietatilor IC1 sI IC2 transformarea inversa de la baza de date la instante poate sa nu fie usor de calculat. Am vazut ca din proprietatile AC1 sI AC2 rezulta ca aplicatia de unire este inversabila dar pentru aceasta trebuie sa verificam ca p(r) nu apartine lui L pentru r Q-P. Vom prezenta o conditie intermediara între conditia de componente independente si conditia de conservare.
Definitia 9.10. Vom spune ca schema bazei de date R satisface conditia de unire (join) pe P daca au loc urmatoarele proprietati :
J1) Aceeasi ca IC1;
J2) Pentru orice baza de date d L, d P.
Observatie : J1 si J2 cer ca sa fie transformare inversa a lui p pe P.
Daca r P atunci p(r) L. Din J2 rezulta mR(r) P dar p(mR(r))=p(r), iar din J1 mR(r)=r. Vom arata ca proprietatea LJ are loc pe multimea P. Conditia de unire atrage dupa sine ca, orice baza de date d L poate fi reprezentata printr-o instanta maximala r P astfel ca d=r
Lema 9.4. Proprietatea J2 are loc daca si numai daca FIX(R) L P.
Demonstratie Necesitatea. J2 poate fi scrisa ca L P.
Fie r FIX(R) L . Deoarece r L rezulta ca p(r) L si r FIX(R), r=p(r) astfel ca r L. Prin urmare r P, deci FIX(R) L P.
Suficienta. Presupunem ca FIX(R) L P si ca r este o instanta r L, atunci exista o baza de date d L asfel încât r=d. Deoarece FIX(R) L P atunci d=p(r), mR(r)= p(r)= d FIX(R). Prin urmare r FIX(R), deoarece d L atunci r L Din ipoteza ca r P rezulta ca L P.
Comparam conditiile de componente independente cu conditiile de conservare a informatiei.
Lema 9.5. Din proprietatea J2 rezulta IC2
Demonstratie Presupunem J2 adevarata, adicaL P atunci pentru orice d L exista r P astfel încât d=r.
s p
s'
r' p
Figura 9
P
r
Teorema 9.2. Din proprietatile AC1 si AC2 rezulta J1 si J2, din care la rândul lor
rezulta IC1 si IC2.
Demonstratie. Presupunem ca AC1 si AC2 sunt îndeplinite. Atunci J1 este adevarata. Pentru a dovedi ca J2 este adevarata vom lua o instanta arbitrara r L. Fie atunci din AC2 rezulta ca r P prin urmare L P deci J2 este îndeplinita. Restul implicatiilor rezulta din lema 5. Atunci când se compara AC1 si AC2 cu J1 si J2 se observa ca toate cer realizarea conditiei LJ , iar AC2 impune în timp ce din J1 si J2 rezulta ca P este o submultime proprie a lui L
}i în ambele conditii nu pot sa existe r si r' aratata în figura 9 dar pot sa existe s si s' dar nu pot satisface conditiile AC1 si AC2.
Exemplul 9.5. Fie . Atunci L se compune din doua perechi de relatii care se unesc complet pe AB si BC si este reformularea lui astfel ca R satisface LJ si deci J1. Reuniunea a doua relatii cu schema AB si BC satisface rezulta ca J2 e adevarat. AC2 nu se satisface deoarece orice instanta r satisface p(r) L rezulta P Q. Este posibil ca r P astfel încât
Definitia 9.11. Schema bazei de date R conserva (pastreaza) P daca are loc proprietatea :
PR. Pentru orice instanta r P atunci mR(r) P adica mR(P) P unde mR(P) = p(P).
Lema 9.6. Proprietatea J2 implica proprietatea PR. Invers nu e adevarat.
Demonstratie. Din L=P rezulta ca pentru orice r P avem mR(r) P.
Exemplul 9.6. Fie U=ABC, R= P=SAT(A »B,B »A)
Fie P SAT(B »A) , atunci , adica PR e adevarata. Sa examinam baza de date unde relatiile si sunt prezentate în fig. 10. Baza de date d este în L deoarece date în fig. 11. E usor de vazut ca starea admisibila (d) data în fig. 12 nu este în P astfel J2 nu e adevarat.
(A B) (B C) S (A B C) S (A B C) (d) (A B C)
3 5 1 3 5 1 3 5 1 3 5
1 4 3 6 1 4 5 1 3 6 1 3 6
2 4 4 5 2 4 5 2 4 5 1 4 5
4 6 2 4 6 1 4 6
4 7 2 4 7 1 4 7
2 4 5
2 4 6
2 4 7
Figura 10 Figura 11 Figura 12
Lema 9.7. Proprietatile PR si IC2 implica proprietatea J2.
Demonstratie. Fie r L si d o baza de date din L, astfel ca r=d, din IC2 avem pP=L astfel ca d pP. Fie r' o instanta din P astfel ca p(r')=d. Atunci din PR rezulta . Prin urmare L P si J2 este adevarata.
Corolar 9.3. Proprietatile IC1, IC2 si PR sunt îndeplinite daca si numai daca J1 si J2 sunt îndeplinite.
Observatie. Putem înlocui IC1 si PR cu LJ.
Lema 9.8. Proprietatea LJ implica proprietatea PR.
Demonstratie. Din
Teorema 9.3. Conditiile LJ si IC2 sunt adevarate daca si numai daca J1 si J2 sunt adevarate.
Demonstratie. Din lema 9.2 rezulta ca LJ implica IC1. Din lema 9.8 rezulta ca LJ implica PR. Prin urmare din corolarul teoremei 9.2 si lema 9.7 LJ si IC2 implica conditiile de unire. Din teorema 9.2 rezulta ca J1 si J2 implica IC2. Din J1 si J2 rezulta de asemenea LJ prin urmare din J1 si J2 rezulta LJ si IC2.
Vom studia acum ce fel de proprietati trebuie adaugate la conditiile de unire ca sa obtinem un sistem de conservare a informatiei.
Definitia 9.12. Schema bazei de date R satisface proprietatea S daca
Teorema 9. 4. Proprietatile J1, J2 si S au loc daca si numai daca AC1, AC2 au loc.
Demonstratie "< ". Din teorema 9.2 rezulta ca AC1 si AC2 implica J1 si J2. Din lema 9.1 proprietatea AC2 cere ca . Din lema 9.3 AC1 si AC2 implica proprietatea LJ astfel ca P FIX(R). Prin urmare L =P FIX(R) care implica proprietatea S.
" >'. Se arata ca J2 si S implica AC2. Fie r o instanta din L unde p(r)=d, pentru d L. Din J2 rezulta cad P. Din AC2 este adevarat.
Diferenta între conditiile de unire si conditiile de conservare necesita sau mai strict . In multe cazuri ne intereseaza situatiile când P este descrisa de o multime de restrictii C. In acest caz este echivalenta cu . Se cunoaste un astfel de procedeu de verificare a conditiilor C daca acestea sunt formate din dependente functionale si dependente multivoce. Conditia este aceeasi cu . Unde am utilizat pC pentru proiectia restrictiilor C pe R.
9.2 D-echivalenta schemelor bazelor de date
Se spune despre schemele R si S ca sunt echivalente daca TR(r)=TS(r) pentru orice instanta r din P. Schemele R si S sunt echivalente pe P în cazul când transformarile TR(r) si TS(r) restrictionate la P coincid (adica când descompunerea determinata de R a starii admisibile r P are aceleasi pierderi de informatii ca si descompunerea determinata de S). Ne intereseaza doar acele instante care prin descompunere nu pierd informatii.
Definitia 9.13. Fie R o schema a unei baze de date si P o multime de instante posibile de schema R. Se numeste multime de puncte fixe determinata de R în P multimea :
Definitia 9.14. Schemele bazelor de date R si S sunt d-echivalente pe P (se noteaza ) daca
Pentru verificarea d-echivalentei (echivalenta determinata de datele din P) trebuie demonstrate doua incluziuni. Mentionam ca incluziunea se realizeaza atunci când
Lema 9.9. Echivalenta determina
Demonstratia este lasata cititorului.
Observatie: Reciproca lemei 9.8 nu este adevarata.
Exemplul 9.7 Fie U ABCD, iar R= si S= scheme de baze de date. Daca P este compusa din doua relatii r si s date în figura 1, atunci R si S sunt d-echivalente (echivalenta determinata de datele din P). Instanta r se descompune fara pierderi fata de R si fata de S, în timp ce s se altereaza la descompunere. Dar TR si TS nu sunt echivalente pe P, deoarece s'=TR(s) nu coincide cu s"=TR(s) (figura 2).
r (A B C D) s(A B C D) s'(A B C D) s''(A B C D)
1 3 5 7 1 3 5 7 1 3 5 7 1 3 5 7
1 3 6 8 2 3 6 7 2 3 6 7 1 3 6 7
2 4 6 8 2 4 6 8 2 4 6 7 2 3 5 7
2 3 6 8 2 3 6 7 2 4 6 8 2 4 6 8
Figura 1 Figura 2
Definitia 9.15. Fie R o schema de baza de date. Submultimea a lui P determinata de R, se conserva (prezerva) în P
Conditia de conservare a lui P, este
Observatie :
Teorema 9.5. Fie R si S doua scheme de baze de date si P o multime de instante. Presupunem ca exista o multime de instante P' care satisface conditia:
atunci are loc pentru orice .
Demonstratie. Necesitatea. Fie r instanta arbitrara din P'. Deoarece rezulta ca s=mR(r) este în P. Dar PJ-tranformarea este idempotenta, deci s este în si, în consecinta s . Din ipoteza s . Dar , asa ca . Deoarece atunci mS(s)=s. Combinând ambele inegalitati rezulta .
Suficienta. Fie r o relatie din ; atunci '. Din ipoteza , dar mR(r)=r deci mS(r) r, dar si mS(r) r deci r FIX(S) Astfel,
Corolar 9.4. Urmatoarele trei afirmatii sunt echivalente:
1)
2) pentru K=FIXP(R);
3) pentru K=PRESP(R);
Demonstratia rezulta din teorema 1.
Corolarul 9.4. Daca R si S sunt scheme de baze de date si R conserva P, atunci este echivalenta cu
Demonstratia se obtine direct din echivalenta afirmatiilor 1) si 3) corolarul 1.
Teorema 9.6. Daca R si S sunt scheme de baze de date care conserva P, atunci daca si numai daca
}tim deja ca atât conditia de unire cât si conditia de conservare a informatiei cer îndeplinirea proprietatii PR. De aceea, în cazul determinarii a adecvarii reprezentarii putem alege oricare din aceste conditii.
9.3 Verificarea adecvarii reprezentarii si a echivalentei determinata restrictii
Conditiile de unire si de independenta pe componente sunt echivalente în cazul când, unirea transforma o baza de date din L într-o relatie din Q. Diferentele între conditiile de unire si conservare a informatiei constau în verificarea incluziunii P FIX(R) sau a unei conditii mai stricte ca . Daca P este SAT(C), pentru o multime oarecare de restrictii C, aceste conditii se exprima ca si pC Amintim ca pC este notatia neformala a proiectiei restrictiilor din C pe R, adica a restrictiilor care determina multimea . In acest fel pC se compune din acele restrictii care satisfac p(r) ( pentru orice si R R
Am determinat pC anterior, astfel ca L =SAT(pC). Una din greutatile introducerii determinarii formale este aceea ca restrictiile din pC nu se exprima obligatoriu prin aceleasi tipuri de dependente ca si restrictiile din C. Deseori în pC se întâlnesc dependente de acelasi tip ca si în C, dar acolo pot apare dependente si de alt tip.
Exemplul 9.8. Fie U=ABCDE, R=ABCD, P=SAT(A E, B E, CE D).
Multimea F-dependentelor pe care trebuie sa le satisfaca proiectia p(r) pentru un r arbitrar din P este . Sa examinam relatia s data in figura 1. Relatia s SAT(F), dar s nu este proiectia nici unei instante din P. Daca sunt tupluri din p(r) astfel încât :
1)
2)
3)
atunci :
4)
Aceasta dependenta nu este echivalenta cu nici o multime de F-dependente. Observam ca s nu satisface aceasta dependenta.
s (A B C D) s (A B C)
1 3 5
2 4 5 8 1 4 6
1 4 6 8 2 4 5
Figura 1 Figura 2
Exemplul 9.9. Fie U=ABCD, R=ABC, P=SAT
Proiectiile p(r) pentru un r arbitrar din P satisfac numai MV-dependentele triviale. Relatia s data în figura 2 nu este proiectia nici unei instante din P.
9.4. Cazul când P este definita numai de dependente functionale
S-a aratat mai sus ca în determinarea lui pC, si în verificarea incluziunii exista anumite greutati. In cazul când C este compus doar din F-dependente este suficient sa se examineze aceleasi dependente din pC
Teorema 9.7. Daca P=SAT(F) pentru o multime F de F-dependente atunci conditiile de componente independente, unire si conservare a informatiilor sunt echivalente.
Demonstratie. Din teorema 9.2 este suficient sa aratam ca, daca AC1 sau AC2 nu sunt îndeplinite, nu vor fi îndeplinite nici IC1 si nici IC2. Este evident ca neîndeplinirea lui AC1 duce la neîndeplinirea lui IC1. Sa presupunem ca AC2 nu este îndeplinita, adica . Fie r o instanta din . Se poate presupune ca r este compus numai din doua tupluri. Deoarece relatia r nu satisface F exista o F-dependenta X A care rezulta din F. Deoarece în r sunt numai doua tupluri, ele trebuie sa coincida pe X si sa se deosebeasca în A, adica r are valori ce coincid în coloanele X si doua valori în coloana A. Daca IC2 nu este îndeplinita, atunci totul este demosntrat. Sa presupunem ca este îndeplinita. Fie d=p(r). Baza de date d este în L. Din IC2 rezulta ca în P exista o instanta r, astfel ca p(r')=d. Relatia r' în fiecare din coloanele X poate avea doar o singura valoare. Dar r' trebuie sa aiba doua valori în coloana A, din aceasta cauza r' contrazice . In consecinta r P si IC2 nu este adevarata. Sa examinam acum verificarea conditiilor de unire în cazul când P=SAT(F), unde F este o multime de F-dependente. Vom verifica proprietatile LJ si J2. Proprietatea LJ se scrie ca . Ea se verifica cu ajutorul algoritmului chase. Examinam numai verificarea lui J2 adica L P.
Definitia 9.16. Fie R schema bazei de date, F o multime de F-dependente. Vom numi restrictie a lui F la R multimea tuturor dependentelor din F+, care sunt aplicabile la o schema de relatie R din R. Vom nota aceasta multime
Exemplul 9.10. Fie U=ABCD, R=, F=.
F-dependentele netriviale din sunt: , BC A, BC AB, BC AC, BC ABC, AB C.
Reamintim ca F este constrânsa (enforceable) la R daca F.
Lema 9.10. Fie P=SAT(F), unde F este o multime de F-dependente. Proprietatea J2 este îndeplinita daca si numai daca F FR
Demontratie Necesitatea. Vom arata ca daca F FR, atunci în L exista o baza de date d, astfel încât d P Fie si nu este în . Fie Z închiderea lui X în raport cu G. Este clar ca . Construim instanta din Q dupa cum urmeaza. Ea va fi compusa din doua tupluri: compus din 0 si cu 0 în partea Z si cu 1 în rest. Se vede ca nu apartine lui P. Fie d=p(rX). Instanta nu este în P deoarece . Vom arata acum ca orice relatie din d este proiectia unei instante din P. Fie R R. Definim instanta rR din P astfel încât pR(rX)=pR(rR). contine doua tupluri: si tX compus doar din 1 în afara de locurile din pe F, în care se afla 0. Instanta nu contrazice pe F, deoarece ar fi incorect definita. Pentru a arata ca pR(rX)=pR(rR) trebuie aratat ca (aceste multimi sunt compuse din coloane în care pR(rR) si pR(rX) contin câte doua simboluri). Sa presupunem ca B este un atribut continut doar de prima multime. Este clar ca . Deoarece , atunci . Dar atunci astfel ca si în consecinta B Z R. Am obtinut o contradictie deoarece d P ceea ce înseamna ca J2 nu este îndeplinita.
In continuare vom descrie un procedura de complexitate polinomiala care permite sa verifice daca F este constrânsa la R. Algoritmul 1 calculeaza în raport cu . Incluziunea din pasul 2.1.1 se va face în raport cu F.
Procedure PCLOSURE (F,R,X;Y)
Y: X
Z=O
WHILE(Y Z) 3.0 Z=Y
3.1 FOR fiecare R R
Y:=((Y R)+ R) Y
3. return (Y)
Exemplul 9.11. Fie U=ABCDE, R=, F=.
Atunci PCLOSURE(F,R,A;ABC). Remarcam ca pe F este ABCDE.
Teorema 9.8. PCLOSURE(F,R,X;) calculeaza în raport cu .
Demonstratie. Fie Y multimea returnata de procedura. Atunci Y este o submultime a lui si ramâne astfel pe parcursul aplicarii procedurii deoarece F-dependenta care se foloseste în pasul 2.1.1 este în (aceasta este (Y R) (Y R)+ R, unde incluziunea se face în raport cu F). Vom arata ca orice atribut din se va adauga la Y. Fie H un graf aciclic orientat derivat din al lui . Sa presupunem ca sunt reperele vârfurilor grafului, numerotate în ordinea în care apar în constructia lui . Afirmam ca dupa sfârsitul iteratiei i a ciclului while, . Se observa ca . Sa presupunem ca la trecerea de la la s-a folosit F-dependenta . Deoarece este în , exista o schema de relatie R R astfel ca . Mai mult decât atât, astfel ca la începutul iteratiei (i+1). Când se termina ciclul for ajungem la R, iar V apare ca submultime a lui atunci W (Y R)+ R deoarece . Inseamna ca W se adauga la Y si fiecare atribut care se adauga la la trecerea spre se adauga respectiv la Y. Prin urmare, când procedura se termina astfel ca
Lema 9.11. Ordinul de complexitate al procedurii PCLOSURE este O(|U|*|R|*||F||) unde ||F|| este numarul tuturor F-dependentelor din F.
Demonstratie: Ciclul while din pasul 2 nu se poate realiza mai mult de ori deoarece Y nu poate deveni mai mare decît U. Pentru fiecare iteratie a ciclului while, ciclul for din pasul 2.1 se realizeaza de ori. Pasul 2.1.1 care calculeaza se realizeaza într-un timp liniar dupa . In consecinta durata totala a calculului are valoarea O(|U|*|R|*||F||).
Teorema 9.8. Fie F este o multime de F-dependente si P=SAT(F). Timpul de verificare a unei conditii de unire este polinomial în raport cu si
Demonstratie. Conform celor afirmate anterior, timpul de verificare al proprietatii LJ este polinomial. Dupa lema 9.2 proprietatea J2 este adevarata daca . Pentru verificare este nevoie doar de a arata ca , ceea ce se poate face utilizând algoritmul PCLOSURE pentru fiecare dependenta din F prin testarea incluziunii Y Acest test implica apelari ale procedurii PCLOSURE care are complexiate polinomiala.
Urmatoarele doua exemple demonstreaza ca proprietatile LJ si J2 sunt independente pe P, daca aceasta este descrisa de o multime dependente functionale.
Exemplul 9.12. Fie U=ABC, R=, P=SAT().
Proprietatea LJ este îndeplinita pentru aceste date deoarece A C, dar proprietatea J2 nu este îndeplinita deoarece nu are loc, prin urmare F nu este constrânsa la R.
Exemplul 9.13. Fie U si P aceleasi ca în exemplul anterior si . Atunci F este aplicabila la R si prin urmare constrânsa la R, deci proprietatea J2 este îndeplinita. Se observa ca LJ nu este adevarata deoarece nu are loc.
9.5 Cazul când P este determinata de dependente functionale si multivoce
Anterior s-a aratat cum se verifica conditia de unire daca P este definit de o multime de dependente functionale. Acum se va da o procedura de verificare a acestor conditii în cazul când unde C se compune din F-dependente si din MV-dependente, iar R este schema bazei de date în FN4. Este necesara verificarea proprietatilor LJ si J2. Verificarea proprietatii LJ se reduce la definirea, cu ajutorul algoritmului chase, a corectitudinii relatiei . Pentru verificarea proprietatii J2 este necesar sa se verifice daca este adevarata încluziunea L P ceea ce în limbajul dependentelor apare ca pC . S-a aratat deja ca verificarea implicatiei din pC provoaca greutati. Vom arata ca în cazul când R este o schema în FN4, este suficient sa se verifice ca , unde F este multimea F-dependentelor care rezulta din C.
Lema 9.12. Fie R o schema de baza de date în FN4 si P=SAT(C), unde C este o multime de F- si MV-dependente. Fie F omultime de F-dependente care rezulta din C, iar o F-dependenta din F care nu rezulta din si . Atunci nu rezulta din pC si (adica orice instanta din contrazice
Demonstratie. Pe parcursul demonstratiei cu simbolul , unde V este o submultime a lui U, vom nota o instanta compusa dintr-un tuplu format doar din 0 si din a al doilea tuplu format din 0 pentru atributele din V si 1 în rest. Se poate considera ca în raport cu si deoarece si nu atrage dupa sine , deci va contrazice si . Fie rX instanta determinata mai sus, iar d baza de date p(rX). Deoarece , iar rX contrazice , atunci si d contrazice . Trebuie demonstrat ca d este în L. Vom arata ca d este în L. Pentru aceasta vom arata ca fiecare relatie din d este proiectia unei instante. Fie R o schema de relatie din R, Y=R X, iar ( 0-urile le consideram ca variabile principale iar 1-urile ca secundare). Multimea coloanelor din , formate doar din 0 va coincide cu Y+ în raport cu C. Dar Y+ R=R X deoarece pentru un atribut B Y+, F-dependenta Y B este în F, si în consecinta, este în , astfel B X. Sa presupunem ca pR(rX) pR(r*). Atunci în r* trebuie sa fie tuplu t ale carui 0-uri sunt pe locurile din W unde . Din teorema chase-ului pentru MV-dependente, Y W, astfel ca Y R W se realizeaza pe R. Dar relatia nu este îndeplinita (deoarece ). De aceea nu este îndeplinita nici . Inseamna ca R nu este în FN4, ceea ce contrazice conditia. De aceea proiectiile amintite mai sus trebuie sa coincida si în consecinta d L.
Lema 9.13. Fie R o schema de baza de date în FN4, iar P=SAT(C), unde C este o multime F-dependente si MV-dependente. Sa presupunem ca LJ este îndeplinita. Fie F o multime de F-dependente care rezulta din C, iar MV-dependenta X―»Y rezulta din C si nu rezulta din si . Atunci X Y nu rezulta din pC si
Demonstratie. Sa presupunem ca Y este o multime minimala care satisface ipotezele, adica nici o submultime proprie Y' a multimii Y nu satisface concomitent conditiile X-―»Y' si X―»Y. Sa presupunem ca X este multimea maxima satiface ipotezele. Atunci , în raport cu si ca si în demonstratia lemei 9.12 si nici o submultime proprie Z a multimii U-XY nu satisface concomitent conditiile XZ―»Y si XY―»Y. Notam cu aceeasi relatie ca în demonstratia lemei 1. Este clar ca satisface . Afirmam ca satisface de asemeni si . Presupunem ca nu este asa atunci algoritmul chase aplicat la în raport cu si va adauga la noi tupluri. Fie t unul din tuplurile adaugate. Vom nota cu XW multimea de atribute în care t este egal cu 0, caz în care . Conform teoremei chase-ului pentru MV-dependente, X―»Y. Conform proprietatii LJ avem astfel ca X―»Y. Evident ca . Daca , atunci XZ―»Y unde . Multimea Z nu este vida deoarece . Dependenta XZ―»Y nu rezulta din si deoarece XZ―»Y si X―»Y implica X―»Y (aceasta este usor de verificat cu ajutorul algoritmului chase). De aceea contrazice maximalitatea lui X. Daca , atunci contine Y si X―»W' ceea ce ce conduce la contrazicerea aceealesi ipoteze. Singura posibilitate ramasa este ca Y sa se intersecteze partial cu W. Fie , iar . Atunci . Dar din si nu poate sa rezulte concomitent X―»Y' si X―»Y" deoarece din ele rezulta prin aditivitate X―»Y ceea ce contrazice minimalitatea lui Y. De aceeea aplicarea algoritmului chase la si nu adauga noi tupluri si înseamna ca satisface în raport cu . A mai ramas de aratat ca baza de date d=p(rX) este în L ceea ce determina faptul ca d= rX sa fie în L. Deoarece în raport cu si din demonstratia lemei 1 rezulta ca d L.
Noi am obtinut un procedeu de verificare a conditiilor de unire pentru scheme de baze de date în FN4 si multimi de instante P, determinate de o multime de F- si MV-dependente. Mai exact, la început, prin folosirea algoritmului chase se verifica proprietatea LJ, adica . Apoi trebuie gasita o multime de dependente functionale ce rezulta din C sau o acoperire a sa. Din pacate pentru aceasta nu se cunoaste nici o metoda cu exceptia verificarii. Urmatorul pas consta în a-l determina pe . Folosind algoritmul chase se poate verifica îndeplinirea conditiei J2 pe calea verificarii . Acest proces nu este atât de eficient ca în cazul când C este compus numai din F-dependente. Sa remarcam ca în cazul în care C este compus din F-dependente si J-dependente, iar schema R este arbitrara, în general nu se cunoaste nici o metoda de verificare a conditiei de unire.
Exemplul 9.14. Fie U=ABCD, R=,C=.
Multimea de dependente acopera unde F este multimea deF-dependente care rezulta din C. De aici . In afara de aceasta si determina pe C deoarece conditia de unire este realizata în acest caz.
Exemplul 9.15. Fie U=ABCDE, R=,C=.
Multimea dependentelor acopera , dar împreuna cu nu determina pe C deoarece conditia de unire nu este îndeplinita.
9.6 Verificarea echivalentei determinata de date
Pentru a verifica R PS unde P=SAT(C), R si S scheme de baze de date, este necesar sa se determine daca este îndeplinita egalitatea . Dupa cum s-a observat, se realizeaza când . Aceasta incluziune este echivalenta cu conditia care se poate verifica folosind algoritmul chase în cazul când C este compusa din F-dependente si J- dependente.
Lema 9.14. Fie schemele de baze de date R si S si C o multime de F-si J-dependente. Sa presupunem ca . Atunci daca si numai daca
Observatie : Lema 9.14 este utila deoarece este foarte usor de verificat. Ca sa demonstram aceasta incluziune este necesar sa gasim C-transformarea din în . Deoarece în variabilele principale nu se repeta, este necesar doar sa se verifice daca pentru orice linie w din exista o linie w' din care include w.
(A B C D E) (A B C D E) T (A B C D E)
a1 a2 a3 b1 a5 a1 b1 a3 b2 a5 a1 a2 a3 b1 b2
b3 a2 a3 a4 a5 b3 a2 a3 a4 b4 b3 a2 b4 a4 b5
b5 b6 b7 a4 a5 a1 a2 a3 b6 a5
b3 b6 a3 a4 a5
b5 a2 b7 a4 a5
Figura 1 Figura 2 Figura 3
Exemplul 9.16. Fie U=ABCDE, S=, R=,
C= si P=SAT(C).
In figurile 1 si 2 sunt date . Avem C-transformarea din în astfel încât . Dar nu exista C-transformare din în , astfel ca .
Stim ca este echivalenta cu când R si S prezerva . Daca multumea C este compusa numai din F-dependente putem aplica la si algoritmul chase. Fie si rezultatele aplicarii algoritmului chase. Incluziunile se pot verifica deoarece C-transformarile respective se pot determina usor în aceste cazuri.
Definitia 9.16. Fie T un tablou. Vom spune ca T descrie F-dependenta daca exista o linie în T care are variabile principale exact în coloanele XY. Tabloul T descrie o multimea de F-dependente daca fiecare F-dependenta din aceasta multime este descrisa de T.
Este evident ca, multimea de F-dependente este constrânsa la schema bazei de date R daca si numai daca descrie orice acoperire G ale multimii F.
Exemplul 9.17. Tabloul T dat în figura 3 descrie multimea de F-dependente
Teorema 9.9. Fie R o schema de baza de date si F o multime neredundanta de F-dependente. Schema R conserva SAT(F), (FIX(R)=SAT(F)) daca si numai daca T*R=chaseF(TR) descrie F.
Pentru demonstatie vezi Maier/ /. Aceasta teorema sta la baza algoritmului de verificare a propietatii de conservare.
START
INPUT R, F
Call TR(R: TR) //procedura genereza //
Call ChaseF(TR:T*,m)
d
FOR fiecare X Y din F
5.1 w
5.2 i
5.3 WHILE i m si w=0
5.3.1 IF ti(XY)=variabile principale
THEN
. 1 w
ELSE
. 2 i i+1
5.3.2 Continue
5.4 IF w=0
THEN
5.4.1 d 1
5.5 Continue
6. CASE d OF
6.2 OUTPUT
6.2 OUTPUT
7. STOP
|