Obsah

AP9, IN9 Databáze II

Zadání

(funkční závislosti; klíče relačních schémat; Armstrongovy axiómy; dekompozice relačních schémat; normální formy obecně, 1NF, 2NF, 3NF, Boyce-Coddova NF, vztahy mezi NF; převody relačních schémat do NF)

Vypracování

Na začátek

Funkční závislosti

Jedná se o zobecnění představy klíče, jsou to tvrzení o reálném světě, o významu atributů, entit či vztahů mezi entitami. Nechť X \subseteq R, Y \subseteq R, pak řekneme, že Y je funkčně závislé na X, píšeme X \rightarrow Y, když pro každou povolenou relaci r(R) platí, že mají-li její dva libovolné prvky stejné hodnoty v atributech X, pak mají i stejné hodnoty v atributech Y. 2)
Množina atributů K je superklíčem pro relační schéma R právě když platí funkční závislost K \rightarrow R. Jednoduše řečeno: když mají dvě množiny atributů, které jednoznačně identifikují n-tici, stejnou hodnotu, pak se jedná o stejný záznam.

Funkční závislosti umožňují vyjádřit omezení, které nelze vyjádřit pomocí superklíčů. Využíváme je k

Klíče relačních schémat

Armstrongovy axiómy

Pro danou množinu funkčních závislostí F existují další funkční závislosti, které F logicky implikuje (tzv. uzávěr množiny F, značíme jej F+). Všechny F+ můžeme najít pomocí Armstrongových axiomů (jsou to pravidla odvozování logických implikací závislosti):

Z těchto pravidel jsou odvozena další užitečná pravidla:

Měli byste umět Armstrongovy axiomy také používat, například právě pro odvození těch dodatečných pravidel.

Odvození dodatečných pravidel

Odvození pravidla sjednocení Z prvního předpokladu \alpha \rightarrow \beta pravidla sjednocení získáme podle A2, že \alpha\gamma \rightarrow \beta\gamma. Z druhého předpokladu \alpha \rightarrow \gamma pravidla sjednocení získáme také podle A2, že \alpha\alpha \rightarrow \alpha\gamma, což odpovídá \alpha \rightarrow \alpha\gamma. Poté z \alpha\gamma \rightarrow \beta\gamma a \alpha \rightarrow \alpha\gamma dostaneme podle A3, že \alpha \rightarrow \beta\gamma.

Odvození pravidla rozkladu Z pravidla A1 plyne platnost \beta\gamma \rightarrow \beta a \beta\gamma \rightarrow \gamma. Poté z předpokladu \alpha \rightarrow \beta\gamma a po aplikaci pravidla A3 přímo vyplývá \alpha \rightarrow \beta a \alpha \rightarrow \gamma

Odvození pravidla pseudotranzitivity Z prvního předpokladu \alpha \rightarrow \beta pravidla pseudotranzitivity získáme aplikací A2 \gamma\alpha \rightarrow \gamma\beta. Toto společně s dalším předpkladem \gamma\beta \rightarrow \delta pravidla pseudotranzitivity implikuje funkčí závislosti \alpha\gamma \rightarrow \delta podle pravidla A3. 10)

Uzávěr množiny atributů

Uzávěr atributu \alpha pod F (značíme \alpha^{+}) definujeme jako množinu atributů, které jsou funkčními závislostmi F určeny z \alpha: \alpha \rightarrow \beta je z F^{+} \Leftrightarrow \beta \subseteq \alpha^{+}.11)

Příklad

Mějme R={A, B, C, G, H, I}
\{F = A \rightarrow B,
A \rightarrow C,
CG \rightarrow H,
CG \rightarrow I,
B \rightarrow H\}

Otázka: Jaké jsou některé prvky F+?

Odpověď: A \rightarrow H (tranzitivita), AG \rightarrow I (pseudotranzitivita), CG \rightarrow HI(sjednocení)

Otázka: Je AG kandidátní klíč?

Odpověď:

  • Nejprve je nutné ukázat, zda je AG superklíč, tedy zda platí AG \rightarrow R, toto se ukáže jednoduše (díky pravidlu A \rightarrow B odvodíme AG \rightarrow ABG, díky pravidlu A \rightarrow C odvodíme AG \rightarrow ABCG, díky pravidlu CG \rightarrow H odvodíme AG \rightarrow ABCGH a díky pravidlu CG \rightarrow I nakonec odvodíme již celé R)
  • Poté musíme ukázat, že samotné A není kandidátní klíč, tedy že z A nevyplývá celé R
  • Nakonec ještě musíme ukázat, že samotné G není kandidátní klíč.

12)

Dekompozice relačních schémat

Při návrhu relačních databází je potřeba nalézt dobrou množinu relačních schémat, problémem je především opakování stejné informace a dat (redundance) a nemožnost vyjádřit nějakou informaci či ztráta informace. Problémy řeší dekompozice relačních schémat a normalizace.

Dekompozice

Normální formy

Normální formy obecně

Stanovují vlastnosti a teorii tak, aby bylo výsledné schéma v dobrém tvaru. Požaduje se bezeztrátovost spojení (nejméně jedna ze závislostí R_{1} \cap R_{2} \rightarrow R_{1}, R_{1} \cap R_{2} \rightarrow R_{2} je v F+), žádné redundance, uchování závislostí (F_{1} \cup F_{2})^{+} = F^{+}. 14)

1NF

Relační schéma R je v první normální formě, když každý jeho atribut je dále nedělitelný neboli atomický (je tedy jednoduchý či primární a není vícehodnotový ani složený).15)

2NF

Relační schéma R je v druhé normální formě, když je v první normální formě a každý atribut, který není primární, je úplně závislý na každém klíči. ( Závislost může být i tranzitivní, musí být na celém klíči nikoli jen na některé části.)16)

3NF

Relační schéma R je ve třetí normální formě, když je v druhé normální formě a žádný atribut, který není primární, není transitivně závislý na žádném klíči schématu R. Schéma, které je v 3NF může mít ale stále následující problémy: opakuje se informace a je potřeba používat hodnoty null. 17).

Praktický pohled: v praxi se například považuje za porušení 3NF i vytvoření tzv. vypočteného sloupce v tabulce - to je takový, jehož hodnota je odvozena od dalších atributů v rámci záznamu. Na příkladě to může být výpočet cena výrobku na základě ceny bez DPH a výše daně.

Boyce-Coddova NF

Relační schéma R je v Boyce-Coddově normální formě, jestliže je v třetí normální formě a každý atribut je triviálně závislý na klíči (tedy každá závislost v relačním schématu je závislost na klíči). (Laický pohled – nejsou tam hodnoty typu null.) Někdy není možné vytvořit rozklad do BCNF, který zachovává funkční závislosti. 18)

Vztahy mezi NF

Třída schémat v BCNF je vlastní podtřídou třídy schémat 3NF. Třída relací 3NF je vlastní podtřídou třídy relací ve 2NF a ta je podtřídou relací 1NF.

Převody relačních schémat do NF

Příklad z hodin předmětu PB155, zkráceno

Mějme atributy číslo výrobku (CV), název výrobku (NV), cena výrobku (Cena), číslo stroje (CS), název stroje (NS), typ stroje (TS), výkon stroje (VS), příkon stroje (PS).

Mezi atributy platí tyto vztahy:

CV \rightarrow NV

CS \rightarrow NS, PS, TS

TS \rightarrow PS

CV, CS \rightarrow VS

CV, CS \rightarrow Cena

  • Nejprve dáme všechny atributy do jednoho relačního schématu R = (CV, NV, Cena, CS, NS, PS, TS, VS), klíčem je množina {CV, CS}. Protože jsou již všechny atributy nedělitelné, je toto schéma v 1NF. Není ale v 2NF, protože například atribut NS není plně závislý na celém klíči, ale pouze na jeho části.
  • Provedeme dekompozici na relační schémata R1 = (CV, NV), R2 = (CS, NS, PS, TS), R3 = (CV, CS, VS, Cena). R1 a R3 jsou už i v 3NF, protože neobsahují tranzitivní závislosti na klíči. R2 je pouze v 2NF, protože atribut PS je tranzitivně závislý na klíči {CS}.
  • Provedeme dekompozici schématu R2 na schémata R2a = (CS, NS, TS) a R2b = (TS, PS), teď jsou schémata R1, R2a, R2b, R3 v 3NF a dokonce i v BCNF.

Podněty, co lze zmínit dále, ale podle mě už není nutné

Co byste ještě měli znát?

Předměty

Použitá literatura

Kam dál?

Vypracuje

Jitka Pospíšilová ICQ: 218703195 mám <99%>, aspoň si to myslím, kdyžtak doplňujte, co je případně ještě potřeba

Otázku si přečetl pan RNDr. Vlastislav Dohnal a rámcově prošel. Jeho podněty pro doplnění textu, opravy nesrovnalostí a odstranění matoucích či k otázce se nevztahujících textů byly do otázky zaneseny. Tato kontrola je jen rámcová, stále se může stát, že v otázce zůstala zapomenutá chybka či nesrovnalost, vyučující za toto nenese odpovědnost, berte tuto rámcovou kontrolu jako formu pomoci od vyučujících pro studenty.

1)
kapitola 1 strana 1 ve skriptech předmětu PB154 Základy databázových systémů
2)
z materiálů k předmětu PB155 Databázové systémy a aplikace, strana 43, zjednodušeno
3) , 8) , 9)
kapitola 6 strana 6 ve skriptech předmětu PB154 Základy databázových systémů
4) , 5)
kapitola 2 strana 5 a kapitola 6 strana 5 ve skriptech předmětu PB154 Základy databázových systémů
6) , 7)
kapitola 2 strana 5 a kapitola 3 strana 2 ve skriptech předmětu PB154 Základy databázových systémů
10)
postup podle dokumentu DATABÁZOVÉ SYSTÉMY, Doc. RNDr. Ing. Miloš Šeda, Ph.D., VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ, FAKULTA STROJNÍHO INŽENÝRSTVÍ, Ústav automatizace a informatiky, strana 25, elektronická verze: http://www.uai.fme.vutbr.cz/~mseda/DBS02_BS.pdf
11) , 12) , 20)
kapitola 6 strana 7 ve skriptech předmětu PB154 Základy databázových systémů
13)
kapitola 7 strana 2 ve skriptech předmětu PB154 Základy databázových systémů
14)
kapitola 7 strana 1 ve skriptech předmětu PB154 Základy databázových systémů
15) , 16)
materiály k předmětu PB155 Databázové systémy a aplikace, strana 48
17) , 18)
materiály k předmětu PB155 Databázové systémy a aplikace, strana 49
19)
materiály k předmětu PB155 Databázové systémy a aplikace, strana 48, 49 a kapitola 7 strana 6 ve skriptech předmětu PB154 Základy databázových systémů