Dekompozice
Dekompozice relačního schématu je rozklad relačního schématu na menší relač.sch. (rozloží velkou tabulku na menší) aniž by došlo k narušení redundance databáze. Mezi základní vlastnosti dekompozice patří - zachování informace a zachování funkčních závislostí.
Definice dekompozice relačního schématu
:
Dekompozice relačního schématu R(A,f) je množina relačních RO={R1(A1, f2), R2(A2, f2),...}, kde A = A1∪A2∪...
Binární dekompozice, kterou budeme dále řešit je rozklad jednoho relačního schématu na dvě. Obecná dekompozice vznikne postupnou aplikací binárních.
Zachování informace
Je jedna ze základních vlastností dekompozice. K ověření že při rozkladu tabulky, nedošlo ke ztrátě informace slouží následující věta:
Věta o ztrátě informace
:
Je-li R0={R1(B), R2(C)} dekompozice relačního schématu R(B∪C), pak musí platit
B ∩ C → B - C nebo C ∩ B → C - B
Je rozklad dekompozice?
Je dán rozklad R0={R1(U,J,Ř,E), R2(P,U,N,K,M,Č)} dekompozice pro R(Učitel, Jméno, pŘíjmení, Email, Předmět, Název, Kredity, Místnost, Čas) s klíčem UMČ a funkčními závislostmi U → JŘE, P → NK, MČ →PU ?
UJŘE ∩ PUNKMČ = U
UJŘE - PUNKMČ = JŘE
PUNKMČ - UJŘE = PNKMČ
Mezi funkční závislostmi musí existovat U → JŘE nebo U → PNKMČ, což existuje, takže uvedený rozklad je dekompozice.
Zachování funkčních závislostí
Kontrola funkčních závislostí:
Pro náš příklad tedy zkontroluju, zda jsou všechny 3 funkční závislosti obsažené v jedné z rozložených tabulek R1 a R2:
U → JŘE je obsažena v R1
P → NK je obsažena v R2
MČ →PU je obsažena v R2
Dekompozice R0={R1(B), R2(C)} zachovává množinu funkčních závislostí F, jestliže množina závislostí (F[B]∪F[C]) logicky implikuje závislosti v F, tedy
F+=(F[B]∪F[C])+
V praxi to znamená že zkontroluju, zda každá funkční závislost (všechny atributy před šipkou i za šipkou) je obsažená alespoň v jedné z rozložených tabulek.