Funkční závislost (programování)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 30. června 2018; kontroly vyžadují 13 úprav .

Funkční závislost  je binární vztah mezi sadami atributů daného vztahu a je ve skutečnosti vztahem jedna k mnoha. Jeho použití je způsobeno tím, že umožňuje formálně a striktně řešit mnoho problémů.

Funkční závislost je koncept, který je základem mnoha problémů souvisejících s relačními databázemi , včetně zejména jejich návrhu.

Definice

Funkční závislost

Nechť je vztah uveden se schématem (záhlavím) , a  jsou některé podmnožiny sady atributů vztahu . Množina je funkčně závislá na tom, zda a pouze je každá hodnota množiny spojena s právě jednou hodnotou množiny . Určeno .

Jinými slovy, pokud dvě n-tice mají stejnou hodnotu v , pak mají stejnou hodnotu v .

V tomto případě je  determinantem  závislá část.

O funkční závislosti se říká , že je triviální , pokud je závislá část podmnožinou determinantu.

Uzavření sady závislostí

Některé funkční závislosti mohou znamenat jiné funkční závislosti. Například funkční závislost,

.

Množina všech funkčních závislostí, které jsou implikovány danou sadou funkčních závislostí, se nazývá uzávěr množiny .

Uzavření sady atributů

Dovolit být  nějaký soubor atributů vztahu , a  být soubor funkčních závislostí tohoto vztahu. Uzávěr množiny atributů v mezích je takový soubor všech atributů relace , že funkční závislost je členem uzávěru .

Neredukovatelné sady závislostí

Nechť a  být nějaké množiny funkčních závislostí.

Hodnocení uzávěrky

Armstrongova odvozená pravidla

V roce 1974 William Armstrong navrhl soubor pravidel pro vyvozování nových funkčních závislostí z dat.

Řekněme, že máme vztah a sadu atributů . Pro zkrácení záznamu napíšeme místo toho jednoduše .

Armstrongova inferenční pravidla jsou úplná (s jejich pomocí lze odvodit všechny ostatní funkční závislosti implikované danou množinou) a spolehlivá (nelze odvodit „nadbytečné“ funkční závislosti: odvozená funkční závislost platí všude tam, kde byly původní funkční závislosti (ze kterých byla odvozené) jsou platné).

Kromě toho je z těchto pravidel zcela jednoduše odvozeno několik dalších pravidel, která zjednodušují úlohu odvození funkčních závislostí.

Věta: Funkční závislost je odvozena z dané sady funkčních závislostí podle Armstrongových inferenčních pravidel tehdy a jen tehdy, když .

Uzavření sady atributů

Pokud aplikujeme pravidla z předchozí části, dokud se vytváření nových funkčních závislostí samo nezastaví, pak dostaneme uzavření pro danou sadu funkčních závislostí. V praxi je málokdy nutné tuto uzávěrku vypočítat samostatně, nejčastěji nás mnohem více zajímá, zda bude do uzávěrky zahrnuta ta či ona funkční závislost. K tomu nám stačí vypočítat uzávěr determinantu. Na to existuje poměrně jednoduchý algoritmus.

  1. Nechť  je souborem atributů, které se nakonec stanou uzavřením.
  2. Hledáme funkční závislosti formuláře , where , a . Závislou část každé nalezené závislosti přidáme do .
  3. Opakujte krok 2, dokud nebude možné přidat atributy do sady.
  4. Sada , ke které nelze přidat žádné atributy, bude uzávěrkou.

Aplikace

Návrh databáze

Funkční závislosti jsou omezení integrity a definují sémantiku dat uložených v databázi. Při každé aktualizaci musí DBMS zkontrolovat jejich soulad. Proto je přítomnost velkého množství funkčních závislostí nežádoucí, jinak zpomaluje práci. Pro zjednodušení úlohy je nutné zredukovat sadu funkčních závislostí na požadované minimum.

Pokud je neredukovatelné krytí počáteční sady funkčních závislostí , pak kontrola splnění funkčních závislostí od automaticky zaručuje splnění všech funkčních závislostí od . Úkol najít minimální potřebnou množinu se tak redukuje na nalezení neredukovatelného krytu množiny funkčních závislostí, který bude použit místo původní množiny.

Viz také

Literatura