Dependencia funcional (programación)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 30 de junio de 2018; las comprobaciones requieren 13 ediciones .

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.

Definiciones

Dependencia funcional

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.

Cerrar un conjunto de dependencias

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 .

Cierre del conjunto de atributos

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 .

Conjuntos irreducibles de dependencias

Sean y  sean algunos conjuntos de dependencias funcionales.

Evaluación de cierre

Reglas de inferencia de Armstrong

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 .

Cierre del conjunto de atributos

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.

  1. Sea  un conjunto de atributos que eventualmente se convertirán en un cierre.
  2. Buscamos dependencias funcionales de la forma , where y . Agregamos la parte dependiente de cada dependencia encontrada a .
  3. Repita el paso 2 hasta que sea imposible agregar atributos al conjunto.
  4. Un conjunto al que no se le pueden agregar atributos será un cierre.

Aplicación

Diseño de base de datos

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.

Véase también

Literatura