La dependencia funcional es una relación binaria entre conjuntos de atributos de una relación dada y es, de hecho, una relación de uno a muchos. Su uso se debe a que permite resolver de manera formal y estricta muchos problemas.
La dependencia funcional es un concepto que subyace en muchas cuestiones relacionadas con las bases de datos relacionales , incluido, en particular, su diseño.
Sea una relación dada con un esquema (encabezado) , y sean algunos subconjuntos del conjunto de atributos de la relación . Un conjunto depende funcionalmente de si y sólo si cada valor del conjunto está asociado con exactamente un valor del conjunto . designado _
En otras palabras, si dos tuplas tienen el mismo valor en , entonces tienen el mismo valor en .
En este caso , el determinante es la parte dependiente.
Se dice que una dependencia funcional es trivial si la parte dependiente es un subconjunto del determinante.
Algunas dependencias funcionales pueden implicar otras dependencias funcionales. Por ejemplo, la dependencia funcional,
.El conjunto de todas las dependencias funcionales implícitas en un conjunto dado de dependencias funcionales se denomina cierre del conjunto .
Sea algún conjunto de atributos de la relación y sea el conjunto de dependencias funcionales de esta relación. La clausura del conjunto de atributos dentro de los límites es tal conjunto de todos los atributos de la relación que la dependencia funcional es miembro de la clausura .
Sean y sean algunos conjuntos de dependencias funcionales.
En 1974, William Armstrong propuso un conjunto de reglas para inferir nuevas dependencias funcionales de los datos.
Digamos que tenemos una relación y un conjunto de atributos . Para acortar el registro, escribiremos simplemente .
Las reglas de inferencia de Armstrong son completas (usándolas, uno puede derivar todas las demás dependencias funcionales implícitas en el conjunto dado) y confiables (las dependencias funcionales "superfluas" no se pueden deducir: la dependencia funcional derivada es válida siempre que las dependencias funcionales originales (de las cuales fue derivados) son válidos).
Además, varias reglas adicionales se derivan simplemente de estas reglas, lo que simplifica la tarea de derivar dependencias funcionales.
Teorema: Se infiere una dependencia funcional a partir de un conjunto dado de dependencias funcionales de acuerdo con las reglas de inferencia de Armstrong si y solo si .
Si aplicamos las reglas de la sección anterior hasta que la creación de nuevas dependencias funcionales se detenga por sí sola, obtendremos un cierre para un conjunto dado de dependencias funcionales. En la práctica, rara vez es necesario calcular este cierre por sí mismo, la mayoría de las veces estamos mucho más interesados en saber si esta o aquella dependencia funcional se incluirá en el cierre. Para ello, basta con que calculemos la clausura del determinante. Hay un algoritmo bastante simple para esto.
Las dependencias funcionales son restricciones de integridad y definen la semántica de los datos almacenados en la base de datos. Con cada actualización, el DBMS debe verificar su cumplimiento. Por lo tanto, la presencia de una gran cantidad de dependencias funcionales no es deseable, de lo contrario, ralentiza el trabajo. Para simplificar la tarea, es necesario reducir el conjunto de dependencias funcionales al mínimo requerido.
Si es una cobertura irreducible del conjunto inicial de dependencias funcionales , la comprobación del cumplimiento de las dependencias funcionales de automáticamente garantiza el cumplimiento de todas las dependencias funcionales de . Así, la tarea de encontrar el conjunto mínimo necesario se reduce a encontrar una cobertura irreducible del conjunto de dependencias funcionales, que se utilizará en lugar del conjunto original.