(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)
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ť , , pak řekneme, že Y je funkčně závislé na X, píšeme , 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 . 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
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:
Odvození dodatečných pravidel
Odvození pravidla rozkladu Z pravidla A1 plyne platnost a . Poté z předpokladu a po aplikaci pravidla A3 přímo vyplývá a
Odvození pravidla pseudotranzitivity Z prvního předpokladu pravidla pseudotranzitivity získáme aplikací A2 . Toto společně s dalším předpkladem pravidla pseudotranzitivity implikuje funkčí závislosti podle pravidla A3. 10)
Uzávěr atributu pod F (značíme ) definujeme jako množinu atributů, které jsou funkčními závislostmi F určeny z : je z .11)
Příklad
Mějme
Otázka: Jaké jsou některé prvky F+?
Odpověď: (tranzitivita), (pseudotranzitivita), (sjednocení)
Otázka: Je AG kandidátní klíč?
Odpověď:
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.
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í je v F+), žádné redundance, uchování závislostí . 14)
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)
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)
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ě.
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)
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říklad z hodin předmětu PB155, zkráceno
Mezi atributy platí tyto vztahy:
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.