Dada una relación , una dependencia funcional , con es una restricción sobre las posibles tuplas de que implica que dos tuplas con igual valor del conjunto de atributos deben también tener igual valor del conjunto de atributos .

Axiomas

Hay tres axiomas que sirven para inferir dependencias funcionales:

  • Axioma de reflexividad:
  • Axioma de aumento:
  • Axioma de transitividad:

La notación implica que puede ser deducido del conjunto de dependencias funcionales .

Las siguientes tres reglas se deducen de los axiomas

  • Regla de unión:
  • Regla de pseudo transitividad: .
  • Regla de descomposición:

Clausura

Sea un conjunto de dependencias funcionales, entonces se conoce como clausura de y contiene el conjunto de todas las dependencias funcionales que pueden inferirse de . Esto es:

La clausura de un atributo son todos los atributos que puedo inferir de dicho atributo, a partir de un conjunto de dependencias funcionales .

Las clausuras de todos los atributos de una relación son una forma ordenada de construir su .

Podemos definir una clave candidata como cualquier conjunto de atributos tal que su clausura contiene todos los atributos de la relación.

Cubrimiento y Equivalencia

Dados dos conjuntos de dependencias funcionales , decimos que cubre a si . Esto implica que cualquier dependencia funcional de puede ser inferida por .

Dados dos conjuntos de dependencias funcionales , decimos que son equivalentes si . Lo simbolizaremos con . Esto implica que tanto cubre a , y cubre a .

Cubrimiento Minimal

Dado un conjunto de dependencias funcionales , trataremos de encontrar un conjunto equivalente que cumpla con ciertas reglas:

  1. No haya atributos innecesarios del lado izquierdo de alguna dependencia, tal que al sacarlos el conjunto de dependencias sea equivalente.

  2. No haya dependencias redundantes, tal que al sacarlas el conjunto de dependencias sea equivalente.

Este conjunto se llamará cubrimiento minimal de .

Algoritmo de Cubrimiento Minimal

Para hallar un cubrimiento minimal, tomaremos tres pasos:

  1. Pasar las dependencias funcionales a forma canónica. Esto quiere decir que del lado derecho solo puede haber un atributo.
  2. Eliminar los atributos innecesarios del lado izquierdo de cada dependencia funcional.
  3. Eliminar las dependencias funcionales redundantes.

Dependencia Trivial

Cuando , entonces decimos que es una dependencia trivial. Las dependencias funcionales se definen a partir de la semántica de los datos. No es posible inferirlas viendo los datos.

Dependencia Parcial

Una dependencia formal es parcial cuando existe un subconjunto propio , para el cual .

Una dependencia funcional es completa si y solo si no es parcial.

Dependencia Transitiva

Se puede aplicar la transitividad, de modo que dada una relación , entonces si , con las dependencias , y , entonces también se cumple que .

Una dependencia formal es transitiva si existe un tal que y . Siendo no trivial, no trivial, y . Todas las dependencias funcionales parciales no triviales son transitivas.

Dependencia Multivaluada

Dada una relación , la dependencia multivaluada es una restricción sobre las posibles tuplas de que implica que para todo par de tuplas tales que , deberían existir otras dos tuplas que resultan de intercambiar los valores de entre y . Es decir:

  • y

Por una cuestión de simetría, si , entonces también vale que .

Las dependencias multivaluadas en las que , o son triviales.

Dependencia de Junta

Siempre que en una relación haya una dependencia multivaluada , entonces puede ser descompuesta sin perdida en , eliminando de .

Sin embargo, existen relaciones que pueden ser descompuestas en más de dos relaciones, también sin perdida. Cuando esto ocurre, decimos que hay una dependencia de junta.

Dada una relación , y una serie de subconjuntos de atributos , decimos que es una dependencia de junta cuando la descomposición de en es sin perdida de información.