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.

 

 

Kam dál?