Funkční závislosti
Funkční závislost je v databázi vztah mezi atributy takový, že máme-li atribut Y je funkčně závislý na atributu X píšeme X → Y, pak se nemůže stát aby dva řádky mající stejnou hodnotu atributu X měly různou hodnotu Y.
Příklad:
Atribut ' datum narození ' je funkčně závislý na atributu ' rodné číslo '.
Nemůže se stát, že u záznamů se stejnými rodnými čísly bude různé datum narození.
Pomocí funkčních závislostí můžeme automaticky navrhnout schéma databáze a předejít problémům jako je redundance, nekonzistence databáze, zablokování při vkládání záznamů, apod.
Postup datové analýzy s automatickým navržením struktury databáze je následující:
- ze zadání zjistím, co je třeba v databázi evidovat (objekty, atributy, vztahy, integritní omezení,...)
- funkční analýzou určím závislosti (vztahy) mezi atributy
- vytvořím jednu obrovskou tabulku (relaci), obsahující všechny atributy
- pomocí funkčních závislostí provedu dekompozici (rozbití) velké relace na menší, které vytvoří výsledné schéma databáze.
Armstrongovy axiomy
Armstrongovy axiomy jsou odvozovací pravidla funkčních závislostí. Pomocí axiomu získáme uzávěr funkčních závislostí spolu s klíči schemat.
Uzávěr X+ je množina všech atributů funkčně závislá na atributech množiny X.
Armstrongový axiomy - A = množina všech atributů, F = množina všech funkčních závislostí, XY = X∪Y (X nebo Y):
- Reflexivita - je-li Y ⊂ X ⊂ A, pak X → Y
- Tranzitivita - pokud je X → Y a Y → Z, pak X → Z
- Pseudotranzitivita - pokud je X → Y a WY → Z, pak XW → Z
- Sjednocení - pokud je X → Y a X → Z, pak X → YZ
- Dekompozice - pokud je X → YZ, pak X → Y a X → Z
- Rozšíření - pokud je X → Y a Z ⊂ A, pak XZ → YZ
- Zúžení - pokud je X → Y a Z ⊂ Y, pak X → Z
Určení klíče pomoci funkčních závislostí:
Ze zadání jsme určili atributy A={učitel,jméno,příjmení,email,předmět,název,kredity,místnost,čas} a funkční závislosti F:
učitel → jméno, příjmení, email
předmět → název, kredity
místnost, čas → učitel, předmět

učitel, místnost, čas → jméno, příjmení, email, místnost, čas
předmět → název, kredity
místnost, čas → učitel, předmět

učitel, místnost, čas → jméno, příjmení, email, místnost, čas, učitel, předmět
předmět → název, kredity

učitel, místnost, čas → jméno, příjmení, email, místnost, čas, učitel, předmět, název, kredity
Atributy učitel, místnost, čas je klíč schématu velké relace. V dalším kroku je třeba provést dekompozici a tuto velkou relaci rozbít na menší relace.