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.
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.
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 .
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 .
Nechť a být nějaké množiny funkčních závislostí.
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ž .
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.
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.