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.