DBS:návrh relací
pokorny@ksi.ms.mff.cuni.cz
1. Úvod
Metoda: návrh pomocí funkčních závislostí
- z konceptuálního schématu
Metoda: návrh pomocí transformačních pravidel
2. Aktualizační anomálie
Uvažujme relaci:PROGRAM(NÁZEV_K, JMÉNO_F, ADRESA, DATUM)
- změní-li se adresa kina, je nutné ji měnit víckrát,
- nehraje-li kino zrovna nic, ztrácíme jeho adresu
- chceme-li přidat nové kino s adresou, lze to jen když se tam hraje nějaký film.
Codd: Aktualizační anomálie
zlepšení nevhodného schématu:
KINO(NÁZEV_K, ADRESA)MÁ_NA_PROGRAMU(NÁZEV_K, JMÉNO_F, DATUM)MÁ_NA_PROGRAMU[NÁZEV_K] ? KINO[NÁZEV_K]
2. Aktualizační anomálie
- Hodnoty některých atributů funkčně závisí na hodnotách jiných atributů. Závislost lze popsat tvrzeními:
- ke každému kinu existuje nejvýše jedna adresa
- pro každé kino a film existuje nejvýše jedno datum, kdy dané kino má daný film na programu
Značení: NÁZEV_K ? ADRESA, {NÁZEV_K,JMÉNO_F} ? DATUM,
3. Funkční závislosti
{R(A),F} schéma relace doplněné o množinu funkčních závislostí F
F ... speciální případ IO
obecněji: IO ... tvrzení vymezují množinu přípustných relací
3. Funkční závislosti
Př: Rozvrh(Přednáška, Učitel, Místnost, Hodina, Student, Známka) R(P,U,M,H,S,Z) ... úsporný zápis PUMHSZ ... ještě úspornější
IO (v novější terminologii - podnikové pravidlo):Každá přednáška je přednášena právě/nejvýše jedním učitelem
množinově: k jedné hodnotě z dom(P) se přiřadí právě/nejvýše jedna hodnota z dom(U) ... P ??U
3. Funkční závislosti
X = {X1:dom(X1),...,Xn:dom(Xn)}, pak X-hodnotou je libovolný prvek z
Nechť B, C ? A. Pak C závisí funkčně na B (nebo B funkčně určuje C), jestliže ke každé B-hodnotě existuje nejvýše jedna C-hodnota.
3.1 Problém návrhu
Nahradit jediné schéma relace R množinou schémat R = {R1,R2,...,Rn} tak, aby výsledek měl rozumné vlastnosti.
RI = {PU, HMP, HUM, PSZ, HSM} RII = {PU, HSP, PSZ, HSM} RIII = {PU, HSM, PSZ, HMP} RIV = {PU, HMP, PSZ, HSP} RV = {HMPU, PSZ, HSM} RVI = {PU, HMP, PSZ} RVII = {PSUHM, PSZ}
Která množina schémat je lepší?
3.1 Problém návrhu
Odhalení FZ mezi atributy 1 schématu
F: Nechť platí: P ? U, HM ? P, HU ? M, PS ? Z, HS ? M Jistě neplatí U ? HM
3.1 Problém návrhu
Df.: klíč schématu relace pomocí FZ: R(A), K ? A, pak K je klíčem schématu R, jestliže splňuje dvě vlastnosti:
- neexistuje K', která je vlastní podmnožinou K, taková, že K'? A.
3.2 Armstrongova pravidla
triviální FZ:jestliže Y ? X, pak X ? Y (FZ1)Př.: UM ? U
tranzitivita mezi množinami atributů:jestliže X ? Y a Y ? Z, pak X ? Z (FZ2)Př.: HS ? HM a HM ? P, pak také platí HS ? P.
kompozice pravých stran:jestliže X ? Y a X ? Z, pak X ? YZ (FZ3)
dekompozice pravé strany:jestliže X ? YZ, pak X ? Y a X ? Z (FZ4)
3.2 Armstrongova pravidla
Tv.: Nechť Rel je množina všech těch relací, které jsou vymezeny množinou funkčních závislostí F. Armstrongova pravidla jsou
i) korektní, tj. co jimi z nějaké množiny F odvodíme, platí na všech relacích z Rel.
ii) úplná, tj. lze jimi odvodit všechny funkční závislosti, které platí na každé relaci z Rel.
iii) navzájem nezávislá, tj. odstraněním jakéhokoliv z nich porušíme vlastnost úplnosti.
3.2 Armstrongova pravidla
Př: Uvažujme F: P ? U, HM ? P, HU ? M, PS ? Z, HS ? M.
- Podle (FZ1) platí HM ? H a HU ? H.
- Podle (FZ3) z HU ? H a HU ? M odvodíme HU? HM
- Podle (FZ2) z HM ? P a P ? U odvodíme HM ? U
- Podle (FZ3) z HM ? H a HM ? U odvodíme HM ??HU
Vidíme, že HM a HU jsou funkčně ekvivalentní. Tento fakt lze zapsat jako HM ? HU.
3.3 Uzávěr, pokrytí množiny FZ
Df.: Množina všech f odvoditelných z F se nazývá uzávěr FZnačení: F+.
Je-li f odvoditelná z F, znamená to, že patří do F+. F lze nahradit množinou závislostí, které vzniknou dekompozicí pravých stran závislostí na jednotlivé atributy.
f, která má na pravé straně jeden atribut, nazýváme elementární.
3.3 Uzávěr, pokrytí množiny FZ
Df.: Pokrytí množiny funkčních závislostí F je množina funkčních závislostí G taková, že F+ = G+.
Je-li F' množina elementárních závislostí, která vznikne z F dekompozicí jejích neelementárních závislostí, platí F+ = F'+. Vzniklo tak kanonické pokrytí.
Df.: Závislost f je redundantní v F, jestliže platí (F - { f })+ = F+Odstraněním všech redundantních vznikneneredundantní pokrytí F.
3.3 Uzávěr, pokrytí množiny FZ
Př.: Zatím jsme empiricky odhalili F = { AC????CB?D}
Odhalíme AC?D, ověřme, zda přináší novou informaci.
3. AC?C? ... dle FZ1 {AC?D} ??F+
4. dle FZ2 z 1. a 3. odvodíme AC?BC? byla by tedy
5. dle FZ4 z 2. a 4. odvodíme AC?D, redundantní
Úloha: Zjistit, zda f je redundantní v F.
- Neredundantní pokrytí není dáno jednoznačně,
- nemusí být podmnožinou F, může vzniknout z F+
3.3 Uzávěr, pokrytí množiny FZ
Df.:Uzávěr množiny atributů X+ vzhledem k F je množina všech atributů funkčně závislých na X. Označujeme jej X+.
Obsahuje-li F závislost X ? Y a existuje atribut A ??X takový, že platí (X-A) + = X+, říkáme, že A je v X redundantním atributem.
Závislost, u které neexistují na levé straně žádné redundantní atributy, se nazývá redukovaná závislost.
Př.: AB ? Y ??F; jestliže vzhledem k F platí B+ = AB+, potom A je redundantní
3.3 Uzávěr, pokrytí množiny FZ
3.3 Uzávěr, pokrytí množiny FZ
Algoritmus: Nalezení minimálního pokrytí pro F.
Vstup: F nad množinou atributů A relace R(A)
Výstup: minimální pokrytí G
begin 1. Dekomponuj pravé strany funkčních závislostí, tedy převeď FZ do elementárního tvaru, sestroj pro F kanonické pokrytí F.
2. Odstraň redundantní atributy, tedy uprav F' na F tak, aby všechny f byly redukované.
3. Odstraň redundantní funkční závislosti, tedy pro F vytvoř neredundantní pokrytí F
3.3 Uzávěr, pokrytí množiny FZ
Algoritmus: Nalezení neredundantního pokrytí pro F, které jsou elementární.
Vstup: F nad množinou atributů A relace R(A)
Výstup: neredundantní pokrytí G
if f ? (G - { f })+ then G := G - { f }
3.3 Uzávěr, pokrytí množiny FZ
Algoritmus: Řešení problému příslušnosti funkčních závislostíVstup: R(A), kde |A| = n,
F, kde |F| = m, f: X?C, kde C?A a X?A.
Výstup: Out ... typu Boolean Struktury dat:LS[1:m], RS[1:m] ... pole množin, i-tý prvek obsahuje atributy z levé, resp. pravé strany i-té závislosti z F,
UZAVERX je proměnná obsahující po skončení algoritmu X+, DONE je proměnná typu Boolean.
Algoritmus počítá X+. Jestliže C? X+ ? f ? F+ .
elementární funkční závislost
3.3 Uzávěr, pokrytí množiny FZ
begin UZAVERX: = X; { na základě FZ1} DONE:= FALSE; while (not DONE) do begin DONE:= TRUE; for i = 1 to m do begin if ( LS[i] ??UZAVERX ) and ( RS[i] ??UZAVERX ) then begin UZAVERX:= UZAVERX ? RS[i]; DONE:= FALSE end end
Cyklus se určitě zastaví a vypočítá X+
3.3 Uzávěr, pokrytí množiny FZ
F = {AD?E, B?CD, B?A}. Pomocí algoritmu spočti B+.
řešení:UZAVERX = B {inicializace}
UZAVERX = BCD { použití 2. FZ v 1. aplikaci vnitřního cyklu}
UZAVERX = BCDA { použití 3. FZ v 1. aplikaci vnitřního cyklu}
UZAVERX = BCDAE { použití 1. FZ v 2. aplikaci vnitřního cyklu}
Tedy B+ = ABCDE ... Co z toho lze vyvodit?
B? ABCDE ?????je klíčem schématu
3.3 Uzávěr, pokrytí množiny FZ
Př.: R(A,B,C,D) a F = {A ?AC, B?ABC, D?ABC}. Pomocí algoritmu spočti minimální pokrytí.
Krok 1: Elementární závislosti: F'= {A ? A, A ??C, B?A, B?B, B?C, D?A, D?B, D?C}.
Krok 2: Všechny závislosti již jsou redukované.
Krok 3: A?A může být eliminována, je redundantní (je triviální).
A?C nemůže (kdyby ano, pak v A+ nebude C (= A))
B?A nemůže být eliminována (kdyby ano, pak B+= BC)
B?B může být eliminována, je redundantní (je triviální).
B?C může, (platí B?A a A ? C, tedy C?zůstane???B+)
D?A může, je redundantní (stále bude platit D+= DABC)
D?B nemůže (kdyby ano, pak D+= DC)
D?C může, je redundantní (stále bude platit D+= DABC)
Výsledné neredundantní pokrytí G pro F' ( minimální) je F = {A ? C, B?A, D?B}.
4. Normální formy schémat relací
- IO1: Klíčem schématu je {NÁZEV_K, JMÉNO_F}.
- IO2: Každé kino má právě jednu adresu
4. Normální formy schémat relací
Intuitivním řešením je dekompozice schématu PROGRAM
PROGRAMY(NÁZEV_K, JMÉNO_F, DATUM)
- adresa kina je pouze jednou (odstraněna redundance)
- lze evidovat i kino, kde se (právě) nic nehraje
- podstata řešení: je odstraněna závislost neklíčového atributu (ADRESA) na podklíči (NÁZEV_K)
4. Normální formy schémat relací
IO1: Klíčem schématu je JMÉNO_F.IO2: Každý herec má právě jednu národnost
- Nelze sledovat národnost herců, kteří nehrají,
- Ztratíme informaci o národnosti herce, jestliže jeho filmy vypadnou z db
4. Normální formy schémat relací
Intuitivním řešením je dekompozice
OSOBNÍ_ÚDAJE(HEREC, NÁRODNOST) FILM2(JMÉNO_F, HEREC, ROK),
- národnost herce je pouze jednou (odstraněna redundance)
- lze evidovat i národnost herce, jehož filmy nejsou v db
- podstata řešení: odstraněna závislost neklíčového atributu (národnost) na klíči (film) přes neklíčový atribut (herec)
4. Normální formy schémat relací
V obou situacích byly jisté neklíčové atributy závislé tranzitivně na klíči.
V prvním případě šlo o tranzitivitu klíč ??podklíč ??neklíčV druhém případě šlo o tranzitivitu klíč ??neklíč ??neklíčJsou-li všechny neklíčové atributy závislé na klíči přímo a nikoliv tranzitivně, schéma je ve 3NF.Má-li schéma více klíčů (klíč1?klíč2), nebude nám vadit klíč1??klíč2? neklíč
4. Normální formy schémat relací
Nechž X a Y ? A, C je jednotlivý atribut, který se nevyskytuje v X ani v Y, X? Y? C a neplatí, že Y? X. Pak říkáme, že C je tranzitivně závislý na X.
Df.: Říkáme, že schéma relace R je ve 3. normální formě (3NF), jestliže každý neklíčový atribut schématu R není tranzitivně závislý na žádném klíči schématu.
4. Normální formy schémat relací
ROZVRH(MHUP), HU? HM ... obě dvojice jsou klíče, tedy HU?P, HM?P P ? U ... závislost neplynoucí z definice klíče (daný předmět přednáší nejvýše jeden učitel)P ... jediný neklíčový atribut ROZVRH vyhovuje kritériu pro 3NF.
4. Normální formy schémat relací
Existuje zde ale tranzitivita klíč1 ? neklíč ? část_klíče2Jde o HM ? P? U, nabízí se dekompozice SEZNAM_P(P,U), ROZVRH(HMP)
- zmizela redundance v atributech P a U
- neztratí se informace, že Kryl přednáší Programování, když toto vypadne z rozvrhu
- řešení spočívá v odstranění tranzitivní závislosti podklíče2 (U) na klíči1 (HM)
4. Normální formy schémat relací
Df: Říkáme, že schéma relace R je v Boyce - Coddověnormální formě (BCNF), jestliže pro každou netriviálnízávislost X ? Y platí, že X obsahuje klíč schématu R.
Každé schéma, které je v BCNF, je také ve 3NF. Obrácené tvrzení neplatí. U schématu majícího jediný klíč, nebo jednoatributové klíče platí, že je-li ve 3NF je také v BCNF.
snímek PPT
4. Normální formy schémat relací
Př.: ADRESÁŘ(MĚSTO, ULICE, DUM, PSČ). F: {MĚSTO, ULICE} ? PSČ, PSČ ??MĚSTO
{MĚSTO,ULICE,DŮM} je klíčem (??{PSČ,MĚSTO,ULICE,DŮM} ) {PSČ,ULICE,DUM} je klíčem ( ??{PSČ,MĚSTO,ULICE,DŮM} )
Schéma nemá žádný neklíčový atribut a je tedy ve 3NF.
ADRESÁŘ lze nahradit dekompozicí podle PSČ ??MĚSTO
SEZNAM_POŠT(PSČ, MĚSTO) POŠTOVNÍ_RAJON(PSČ, ULICE, DŮM),
snímek PPT
Př: Ověřte, zda AB?C není a CG?B je redundantní v F
Otázku, zda platí, že {CG?B} ??{F - {CG?B} }+ převedeme naB ??CG+ vzhledem k F - {CG?B}.
snímek PPT
F: AB?C, C??? BC?D, CD?B, D?E, D?G, BE?C, CG?B,
C ??AB+{F - {AB?C} } B ??CG+{F - {CG?B} }
AB+{F - {AB?C} } = {A,B} ? AB?C není redundantní v FCG+{F - {CG?B} } = {C,G, ...} {C,G,A, ...} ... dle C?? {C,G,A,D, ...} ... dle CG?D 2. kolo ... {C,G,A,D,B ...} ... dle CD?B
Př: Ověřte, zda AB?C není a CG?B je redundantní v F
5. Kritéria pro návrh
Eliminaci aktualizačních anomálií zajišťujeme převedením relačního schématu do 3NF, resp. BCNF.
Mějme R(U, F) a dekompozici schématu R
{ Ri (Ui, Fi) }ni=1, kde ? Ui = U
- výsledná schémata by měla mít "stejnou" sémantiku
- výsledné relace by měly obsahovat "stejná" data, jaká by obsahovala původní db.
snímek PPT
5.1 Pokrytí množiny závislostí F
Cílem bude, aby původní schéma a schémata získaná dekompozicí nějak odrážela stejné závislosti.
chceme z ??Fi odvodit totéž, co z F, tedy: F+ = (??Fi )+
Př.: ADRESÁŘ(MĚSTO, ULICE, DŮM, PSČ). F: {MĚSTO, ULICE} ? PSČ, PSČ ??MĚSTO
Dekompozice: SEZNAM_POŠT(PSČ, MĚSTO) POŠTOVNÍ_RAJON(PSČ, ULICE, DŮM), V schématu SEZNAM_POŠT lze kontrolovat původní FZ PSČ ??MĚSTO. FZ {MĚSTO, ULICE} ? PSČ nelze kontrolovat nikde.
snímek PPT
5.1 Pokrytí množiny závislostí F
Př.: FILM1(JMÉNO_F, HEREC, NÁRODNOST, ROK) F: JMÉNO_F?HEREC, HEREC?NÁRODNOST, JMÉNO_F?NÁRODNOST
Dekompozice do 3NF: OSOBNÍ_ÚDAJE(HEREC, NÁRODNOST), FILM2(JMÉNO_F, HEREC, ROK),
Závislosti JMÉNO_F?HEREC, HEREC ??NÁRODNOST lze kontrolovat v dílčích schématech.FZ JMÉNO_F ? NÁRODNOST existuje dále, protože je odvozená ze závislostí, které platí v OSOBNÍ_ÚDAJE a FILM2.
snímek PPT
Df.: Mějme schéma databáze R = {S(A,F)} a dekompozici R1 = {Ri(Ai, Fi), ??? i ? n, n?? 1}. Řekneme, že R1 má vlastnost pokrytí závislostí, jestliže
5.1 Pokrytí množiny závislostí F
Jak vzniknou Fi? Jde o f z F+ (nikoliv pouze z F), které platí na Ai, tj. o takové f, které lze "promítnout" do Ai. Budeme je nazývat projekce závislostí. Projekce Fi do Ai je definována jako množina FZFi = { X ? Y ?X ?Y ? F+ a XY ? Ai }
snímek PPT
5.1 Pokrytí množiny závislostí F
Př.: JIZDA(C_AUTA, TYP,OBSAH_M, RIDIC)F: C_AUTA ? TYP .... způsobuje nevyhovění 2NF TYP ??OBSAH_M .... způsobuje nevyhovění 3NFklíčem je {C_AUTA, RIDIC}
Dekompozice2 (podle 1. FZ):R1(C_AUTA?TYP),C_AUTA?TYP R2(C_AUTA, RIDIC, OBSAH_M) 2. původní FZ není pokryta
Dekompozice3 (začneme podle 2. FZ): R1(TYP, OBSAH_M ), TYP ??OBSAH_M R2(C_AUTA, RIDIC, TYP), C_AUTA ? TYP
Dekompozice1:R1(TYP,RIDIC), R2(C_AUTA,RIDIC,OBSAH_M) Obě pův. FZ jsou nepokryty
snímek PPT
Problém stejných dat lze vyjádřit přirozeně pomocí operace spojení.
Dekompozici schématu relace R lze považovat za několik projekcí R na množiny atributů nových schémat.
Požadujeme, aby kvalitní dekompozice měla vlastnost bezztrátového spojení. Pro každou přípustnou relaci R* by mělo platit
* označení relace, * operace přirozené spojení.
snímek PPT
Uvažujme relaci Z*, Proveďme dekompozici ZAPIS(PŘEDN, STUD) HODN (PŘEDN, ZN)
Zpětné spojení bude "větší" než původní Z*. Bude např. obsahovat (Programování, Novák, 3). Spojení není bezztrátové. Přestože obdržíme více n-tic, informace je méně, nevíme, co platí a co ne.
snímek PPT
Tv.: Nechť S(A) je schéma relace a Ai, i ?ə,n>, nɭ, určují jeho dekompozici. Pak pro každou relaci S* platí
Aby platila rovnost, je třeba provést dekompozici dostatečně smysluplně.
Tv. O dekompozici: Mějme R(A,B,C), kde A,B,C jsou disjunktní množiny atributů, a B ? C. Rozložíme-li R na schémata R1(B,C) a R2(A,B), je takto provedená dekompozice bezztrátová. Naopak, je-li dekompozice R1(B,C) a R2(A,B) bezztrátová, musí platit buď B ? C nebo B ? A.
5.2 Bezztrátové spojení
- Z tvrzení vyplývá, že platí-li B ? C, dekompozice R1(B,C) a R2(C,A) není bezztrátová. (Neplatí ani C ? B ani C? A.)
- Dekompozice může mít vlastnost bezztrátového spojení, nemusí však mít vlastnost pokrytí závislostí
Př.: dekompozice relace ADRESÁŘ). Dekompozice byla podle tvrzení korektní - uvažovanou závislostí byla PSČ?MĚSTO.
- Dekompozice, která má vlastnost pokrytí závislostí, nemusí být bezztrátová. Př.: R(A,B,C,D), R1(C,D), A?B F: A?B, C?D R2(A,B), C?D
snímek PPT
Důsledek porušení pokrytí závislostmi: CHUDŠÍ SÉMANTIKA
Důsledek porušení bezztrátovosti dekompozice: NEJDE O STEJNÁ DATA
6. Algoritmus dekompozice
- Předpoklad schématu univerzální relace.
- jednoznačnost jmen atributů,
- jméno atributu hraje pouze jednu roli. Např. atribut ZNÁMKA je vyhrazen pro ohodnocení studenta u zkoušky a nemůže být současně použit pro ohodnocení kvalifikace učitele
- Předpoklad jednoznačnosti vztahů. Např. schémata VEDOUCÍ_PROJEKTU(UČITEL, STUDENT) UČÍ(UČITEL, PŘEDNÁŠKA, STUDENT) nevznikla ze schématu univerzální relace, nevedou ke splnění předpokladu jednoznačnosti vztahů. Vedoucí projektů a přednášející jsou ke studentům v různých vztazích.
6. Algoritmus dekompozice
- idea:
- schémata se rozkládají binárně dle tvrzení o bezeztrátové dekompozici
- strategie: nalomit tranzitivitu, dekomponovat podle FZ, která způsobuje, že schéma není v 3NF.
- každé schéma se testuje na 3NF
- výsledek:
- dekompozice je ve 3NF
- je zachována bezztrátovost
- obecně nejsou pokryty závislosti
6. Algoritmus dekompozice
Příklad univerzita: F: P? U, HM? P, HU? M, PS? Z, HS? M
RIII ={ PU, SHM, PSZ, PHM }
snímek PPT
6. Algoritmus dekompozice
Př. Rozvrh, kde F: P? U, HM? P, HU? M, PS? Z, HS? MDekompozice do BCNF varianta 2
RIV ={ PU, HSP, PSZ, PHM }
PH+F = {P,H,U,M}, tedy M?PH+F ???PH??M) ?F+
7. Algoritmus syntézy
Vstup: R(A, F).Výstup: R = {Ri(Ai, Fi), 1 ? i ? n, n ? 1}.
i) Vytvoř minimální pokrytí G.
ii) Závislosti z G se roztřídí do skupin,v každé jsou závislosti se stejnou levou stranou (LS). Atributy každé skupiny tvoří syntézované schéma jedné relace. Atributy LS tvoří jeho klíč.
ii*) Množina atributů, které se nevyskytují v G, se vloží do schématu relace, ve kterém je klíč R, nebo s ním vytvoří nové.
iii) Mají-li některá schémata ekvivalentní klíče, lze je sloučit v jedno. To může vést k tranzitivitám, ty je nutné odstranit.
Výsledek (i bez kroku (iii)) bude ve 3NF a z kroku (ii) plyne, že jsou zachovány závislosti.
snímek PPT
7. Algoritmus syntézy
Algoritmus syntézy - Bernstein, r. 1976.
- Syntézu lze považovat za dekompozici původního univerzálního schématu. Je taková dekompozice bezztrátová? Obecně není.
- K zajištění bezztrátovosti stačí připojit k výsledku schéma R(K), kde K je klíčem příslušného univerzálního schématu.
snímek PPT
Př.: Mějme R(A,B,C) s F: B ? C ?????AB je klíčem
Syntézou vznikne pouze schéma R1(B,C). Bezztrátovost není zachována, dokonce nejde o dekompozici, protože jsme "ztratili" atribut A.
Atribut A nelze připojit k R1, protože klíčem by bylo AB a R1 by nebylo ve 3NF. R(A,B,C), B ? C ... není ve 3NF
Je nutné připojit nové schéma R2(AB), čímž obdržíme dekompozici, dokonce bezztrátovou. Je-li tedy v algoritmu použit krok (ii*), výsledné schéma ve 3NF zachovává závislosti + vlastnost bezeztrátového spojení.
snímek PPT
Př.: Mějme R(A,B,C), F: B? C a A? C.
Syntézou vzniknou schémata R1(B,C) a R2(A,C).
Bezztrátovost není zachována.
Bezztrátové dekompozice by byly podle tvrzení o dekompozici buď {BC, BA} nebo {AC, AB}.
Protože klíčem R je BA, bylo by nutné k syntézovaným schématům připojit R3(B,A).
snímek PPT
Uvažujme zjednodušený provoz letiště. Dány jsou atributy LET, CÍL, HODINA (odletu), DEN (pro daný let), BRÁNA, PILOT. Je dána F:
(1) LET?CÍL (9) DEN,HODINA,BRÁNA?LET(2) LET?HODINA (10) DEN,HODINA,BRÁNA?CÍL (3) DEN,LET?BRÁNA (4) DEN,LET?PILOT (5) DEN,HODINA,PILOT?BRÁNA(6) DEN,HODINA,PILOT?LET (7) DEN,HODINA,PILOT?CÍL(8) DEN,HODINA,BRÁNA?PILOT
snímek PPT
R(B,C,D,H,L,P), kde F:L?C,L?H, DL?B, DL?P, DHP?B, DHP?L, DHP?C, DHB?P,DHB?L,DHB?C
DL+={D,L,B,P,C,H}, D+={D}, L+={L,C,H} ? DL?B je redukovaná ? DL?P je redukovaná DL je klíč R DHP+={D,H,P,B,L,C}, DH+={D,H}, ? DHP?B je redukovaná DP+={D,P}, HP+={H,P}, D+={D}, ? DHP?L je redukovanáH+={H}, P+={P} ? DHP?L je redukovaná DHP je klíč R DHB+ = {D,H,B,P,L,C}, DH+={D,H}, ?? DHB?P je redukovaná DB+={D,B}, HB+={H,B},B+={B} ? DHB?L je redukovaná DHB je klíč R ? DHB?C je redukovaná
snímek PPT
R(B,C,D,H,L,P), kde F: L?C,L?H, DL?B, DL?P, DHP?B, DHP?L, DHP?C, DHB?P,DHB?L,DHB?CF je kanonické, redukované, existuje pět různých neredundantních pokrytí:
snímek PPT
Řešení 1a 2: R1(LET, CÍL, HODINA), R2(PILOT , DEN, HODINA, BRÁNA, LET)
Řešení 3: R1(LET, CÍL, HODINA) R2(DEN, LET, BRÁNA, PILOT) R3(DEN, HODINA, BRÁNA, LET) R4(DEN, HODINA, PILOT, LET)
snímek PPT
Řešení 4: R1(LET, CÍL, HODINA)R2(DEN, LET,BRÁNA)R3(DEN,HODINA,BRÁNA,PILOT)R4(DEN, HODINA, PILOT, LET)
Řešení 5:R1(LET, CÍL, HODINA)R2(DEN, LET, PILOT) R3(DEN, HODINA, BRÁNA, LET)R4(DEN, HODINA, PILOT, BRÁNA)
snímek PPT
Řešení 3: R1(LET, CÍL, HODINA) R2(DEN, LET, BRÁNA, PILOT) R3(DEN, HODINA, BRÁNA, LET) R4(DEN, HODINA, PILOT, LET)
Řešení 4: R1(LET, CÍL, HODINA)R3(DEN, LET,BRÁNA)R3(DEN,HODINA,BRÁNA,PILOT)R4(DEN, HODINA, PILOT, LET)
Řešení 1a 2: R1(LET, CÍL, HODINA), R2(PILOT , DEN, HODINA, BRÁNA, LET)
Řešení 5:R1(LET, CÍL, HODINA)R2(DEN, LET, PILOT) R3(DEN, HODINA, BRÁNA, LET)R4(DEN, HODINA, PILOT, BRÁNA)
klíče R jsou DL, DHB a DHP, v každém řešení je klíč součástí nikterého schématu ? bezztrátovostspojení