Articulo de referencia

Dependencia funcional

En la teoría de bases de datos relacionales , una dependencia funcional ( DF ) es una restricción entre dos conjuntos de atributos, donde los valores de un conjunto (el conjunto...

En la teoría de bases de datos relacionales , una dependencia funcional ( DF ) es una restricción entre dos conjuntos de atributos, donde los valores de un conjunto (el conjunto determinante ) determinan los valores del otro conjunto (el conjunto dependiente ). Una dependencia funcional entre un conjunto determinante X y un conjunto dependiente Y se puede describir de la siguiente manera:

Dada una relación R y conjuntos de atributos X , Y{\displaystyle \subseteq }R , entonces se dice que X determina funcionalmente a Y (escrito XY ) si cada valor de X está asociado con exactamente un valor de Y. Entonces se dice que R satisface la dependencia funcional XY. De manera equivalente, la proyecciónΠincógnita,YR{\displaystyle \Pi _{X,Y}R}es una función , es decir, Y es una función de X. [ 1 ] [ 2 ]

En otras palabras:

  • Cuando los atributos X tienen valores conocidos (en este caso, x ), los valores de sus atributos Y correspondientes se pueden determinar buscándolos en cualquier tupla de R que contenga x .
  • Dos tuplas que comparten los mismos valores de X necesariamente tendrán los mismos valores de Y.

Una dependencia FD: XY significa que los valores de Y están determinados por los valores de X. Una dependencia funcional FD: XY se denomina trivial si Y es un subconjunto de X.

La determinación de dependencias funcionales es una parte importante del diseño de bases de datos en el modelo relacional , y en la normalización y desnormalización de bases de datos . Una aplicación simple de las dependencias funcionales es el teorema de Heath ; este establece que una relación R sobre un conjunto de atributos U y que satisface una dependencia funcional XY puede dividirse de forma segura en dos relaciones que tienen la propiedad de descomposición de unión sin pérdida , a saber, enΠincógnitaY(R)ΠincógnitaZ(R)=R{\displaystyle \Pi _{XY}(R)\bowtie \Pi _{XZ}(R)=R}donde Z = UXY son los demás atributos. ( En la teoría de bases de datos, las uniones de conjuntos de atributos se suelen denotar mediante su yuxtaposición). Un concepto importante en este contexto es la clave candidata , definida como un conjunto mínimo de atributos que determinan funcionalmente todos los atributos de una relación. Las dependencias funcionales, junto con los dominios de los atributos , se seleccionan para generar restricciones que excluyan del sistema la mayor cantidad posible de datos inapropiados para el dominio del usuario .

Una noción de implicación lógica se define para las dependencias funcionales de la siguiente manera: un conjunto de dependencias funcionalesΣ{\displaystyle \Sigma }lógicamente implica otro conjunto de dependenciasΓ{\displaystyle \Gamma }, si existe alguna relación R que satisfaga todas las dependencias de Σ{\displaystyle \Sigma }también satisface todas las dependencias deΓ{\displaystyle \Gamma }; esto suele estar escritoΣΓ{\displaystyle \Sigma \modelos \Gamma }. La noción de implicación lógica para las dependencias funcionales admite una axiomatización finita sólida y completa , conocida como los axiomas de Armstrong .

Ejemplos

coches

Supongamos que se diseña un sistema para rastrear vehículos y la cilindrada de sus motores. Cada vehículo tiene un número de identificación vehicular (VIN) único. Se escribiría VINCapacidad del motor porque sería inapropiado que el motor de un vehículo tuviera más de una cilindrada. (Suponiendo, en este caso, que los vehículos solo tienen un motor). Por otro lado, Capacidad del motorVIN es incorrecto porque podría haber muchos vehículos con la misma cilindrada.

Esta dependencia funcional podría sugerir que el atributo EngineCapacity se relacione con la clave candidata VIN. Sin embargo, esto no siempre es apropiado. Por ejemplo, si dicha dependencia funcional surge como resultado de las dependencias transitivas VIN → VehicleModel y VehicleModel → EngineCapacity, entonces no se obtendría una relación normalizada.

Conferencias

Este ejemplo ilustra el concepto de dependencia funcional. La situación modelada es la de estudiantes universitarios que asisten a una o más clases, en cada una de las cuales se les asigna un ayudante de cátedra. Supongamos además que cada estudiante está en un semestre determinado y se identifica mediante un número entero único.

Observamos que siempre que dos filas de esta tabla tengan el mismo StudentID, también tendrán necesariamente los mismos valores de Semestre. Este hecho básico se puede expresar mediante una dependencia funcional:

  • Número de identificación del estudiante → Semestre.

Si se añadiera una fila donde el estudiante tuviera un semestre diferente, la dependencia funcional (DF) dejaría de existir. Esto significa que la DF se deduce de los datos, ya que es posible que existan valores que la invaliden.

Se pueden identificar otras dependencias funcionales no triviales, por ejemplo:

  • {StudentID, Lecture} → TA
  • {ID de estudiante, conferencia} → {TA, semestre}

Esto último expresa el hecho de que el conjunto {StudentID, Lecture} es una superclave de la relación.

Departamento de empleados

Un ejemplo clásico de dependencia funcional es el modelo de departamento de empleados.

Este caso representa un ejemplo donde múltiples dependencias funcionales están integradas en una única representación de datos. Cabe destacar que, dado que un empleado solo puede pertenecer a un departamento, su identificador único determina dicho departamento.

  • ID de empleado → Nombre del empleado
  • ID de empleado → ID de departamento

Además de esta relación, la tabla también tiene una dependencia funcional a través de un atributo no clave.

  • ID del departamento → Nombre del departamento

Este ejemplo demuestra que, aunque exista una dependencia funcional ID de empleado → ID de departamento, el ID de empleado no sería una clave lógica para determinar el nombre del departamento. El proceso de normalización de los datos reconocería todas las dependencias funcionales y permitiría al diseñador construir tablas y relaciones más lógicas basadas en los datos.

Propiedades y axiomatización de las dependencias funcionales

Dado que X , Y y Z son conjuntos de atributos en una relación R , se pueden derivar varias propiedades de dependencias funcionales. Entre las más importantes se encuentran las siguientes, generalmente llamadas axiomas de Armstrong : [ 3 ]

  • Reflexividad : Si Y es un subconjunto de X , entonces XY.
  • Aumento : Si XY , entonces XZYZ
  • Transitividad : Si XY e YZ , entonces XZ.

La "reflexividad" puede debilitarse hasta quedar reducida a soloincógnita{\displaystyle X\rightarrow \varnothing }, es decir, es un axioma real , donde los otros dos son reglas de inferencia propias , dando lugar más precisamente a las siguientes reglas de consecuencia sintáctica: [ 4 ]

incógnita{\displaystyle \vdash X\rightarrow \varnothing }incógnitaYincógnitaZYZ{\displaystyle X\rightarrow Y\vdash XZ\rightarrow YZ}incógnitaY,YZincógnitaZ{\displaystyle X\rightarrow Y,Y\rightarrow Z\vdash X\rightarrow Z}.

Estas tres reglas constituyen una axiomatización sólida y completa de las dependencias funcionales. Esta axiomatización se describe a veces como finita porque el número de reglas de inferencia es finito, [ 5 ] con la salvedad de que el axioma y las reglas de inferencia son todos esquemas , lo que significa que X , Y y Z abarcan todos los términos básicos (conjuntos de atributos). [ 4 ]

Aplicando la ampliación y la transitividad, se pueden derivar dos reglas adicionales:

  • Pseudotransitividad : Si XY y YWZ , entonces XWZ [ 3 ]
  • Composición : Si XY y ZW , entonces XZYW [ 6 ]

También se pueden derivar las reglas de unión y descomposición de los axiomas de Armstrong: [ 3 ] [ 7 ]

XY y XZ si y solo si XYZ

Cierre

Cierre de la dependencia funcional

El cierre de un conjunto de valores es el conjunto de atributos que pueden determinarse mediante sus dependencias funcionales para una relación dada. Para ello, se utilizan los axiomas de Armstrong : reflexividad, aumento y transitividad.

DadoR{\displaystyle R}yF{\displaystyle F}un conjunto de FD que contieneR{\displaystyle R}: El cierre deF{\displaystyle F}enR{\displaystyle R}(denotadoF{\displaystyle F}+ ) es el conjunto de todos los FD que están lógicamente implicados porF{\displaystyle F}. [ 8 ]

Cierre de un conjunto de atributos

Cierre de un conjunto de atributos X con respecto aF{\displaystyle F}es el conjunto X + de todos los atributos que están determinados funcionalmente por X usandoF{\displaystyle F}+ .

Ejemplo

Imaginemos la siguiente lista de FD. Vamos a calcular un cierre para A (escrito como A + ) a partir de esta relación.

  1. AB
  2. BC
  3. ABD

El cierre sería el siguiente:

  1. A → A (por la reflexividad de Armstrong)
  2. A → AB (por 1. y (a))
  3. A → ABD (por (b), 3 y la transitividad de Armstrong)
  4. A → ABCD (por (c) y 2)

Por lo tanto, A + = ABCD. Dado que A + incluye todos los atributos de la relación, es una superclave .

Cubiertas y equivalencia

Cubiertas

Definición :F{\displaystyle F}cubiertasGRAMO{\displaystyle G}si cada FD enGRAMO{\displaystyle G}se puede inferir deF{\displaystyle F}.F{\displaystyle F}cubiertasGRAMO{\displaystyle G}siGRAMO{\displaystyle G}+ F{\displaystyle F}+ Cada conjunto de dependencias funcionales tiene una cobertura canónica .

Equivalencia de dos conjuntos de FD

Dos conjuntos de FDF{\displaystyle F}yGRAMO{\displaystyle G}esquemaR{\displaystyle R}son equivalentes, escritosF{\displaystyle F}GRAMO{\displaystyle G}, siF{\displaystyle F}+ =GRAMO{\displaystyle G}+ . SiF{\displaystyle F}GRAMO{\displaystyle G}, entoncesF{\displaystyle F}es una portada paraGRAMO{\displaystyle G}y viceversa. En otras palabras, los conjuntos equivalentes de dependencias funcionales se denominan cubiertas entre sí.

Cubiertas no redundantes

Un conjuntoF{\displaystyle F}de FD no es redundante si no hay un subconjunto apropiado F{\displaystyle F'}deF{\displaystyle F}conF{\displaystyle F'}F{\displaystyle F}. Si tal es unF{\displaystyle F'}existe,F{\displaystyle F}es redundante.F{\displaystyle F}es una cobertura no redundante paraGRAMO{\displaystyle G}siF{\displaystyle F}es una portada paraGRAMO{\displaystyle G}yF{\displaystyle F}es no redundante. Una caracterización alternativa de la no redundancia es queF{\displaystyle F}es no redundante si no hay FD XY enF{\displaystyle F}de tal manera queF{\displaystyle F}- { XY }{\displaystyle \models }XY . Llamar a una FD XY enF{\displaystyle F}redundante enF{\displaystyle F}siF{\displaystyle F}- { XY }{\displaystyle \models }XY .

Aplicaciones a la normalización

Teorema de Heath

Una propiedad importante (que produce una aplicación inmediata) de las dependencias funcionales es que si R es una relación con columnas nombradas a partir de algún conjunto de atributos U y R satisface alguna dependencia funcional XY, entoncesR=ΠincógnitaY(R)ΠincógnitaZ(R){\displaystyle R=\Pi _{XY}(R)\bowtie \Pi _{XZ}(R)}donde Z = UXY . Intuitivamente, si una dependencia funcional XY se cumple en R , entonces la relación se puede dividir de forma segura en dos relaciones junto a la columna X (que es una clave paraΠincógnitaY(R)ΠincógnitaZ(R){\displaystyle \Pi _{XY}(R)\pajarita \Pi _{XZ}(R)}) asegurando que cuando las dos partes se vuelven a unir no se pierde ningún dato, es decir, una dependencia funcional proporciona una forma sencilla de construir una descomposición de unión sin pérdida de R en dos relaciones más pequeñas. Este hecho a veces se denomina teorema de Heath ; es uno de los primeros resultados en la teoría de bases de datos. [ 9 ]

El teorema de Heath dice efectivamente que podemos extraer los valores de Y de la gran relación R y almacenarlos en uno solo,ΠincógnitaY(R){\displaystyle \Pi _{XY}(R)}, que no tiene repeticiones de valores en la fila para X y es efectivamente una tabla de búsqueda para Y indexada por X y, en consecuencia, tiene solo un lugar para actualizar la Y correspondiente a cada X, a diferencia de la relación "grande" R donde potencialmente hay muchas copias de cada X , cada una con su copia de Y que deben mantenerse sincronizadas en las actualizaciones. (Esta eliminación de redundancia es una ventaja en contextos OLTP , donde se esperan muchos cambios, pero no tanto en contextos OLAP , que implican principalmente consultas). La descomposición de Heath deja solo a X para actuar como clave externa en el resto de la tabla grande.ΠincógnitaZ(R){\displaystyle \Pi _{XZ}(R)}.

Sin embargo, las dependencias funcionales no deben confundirse con las dependencias de inclusión , que son el formalismo para las claves foráneas; aunque se utilizan para la normalización, las dependencias funcionales expresan restricciones sobre una relación (esquema), mientras que las dependencias de inclusión expresan restricciones entre esquemas de relación en un esquema de base de datos . Además, las dos nociones ni siquiera se cruzan en la clasificación de dependencias : las dependencias funcionales son dependencias que generan igualdad, mientras que las dependencias de inclusión son dependencias que generan tuplas . Imponer restricciones referenciales después de la descomposición del esquema de relación (normalización) requiere un nuevo formalismo, es decir, dependencias de inclusión. En la descomposición resultante del teorema de Heath, no hay nada que impida la inserción de tuplas enΠincógnitaZ(R){\displaystyle \Pi _{XZ}(R)}tener algún valor de X que no se encuentra enΠincógnitaY(R){\displaystyle \Pi _{XY}(R)}.

Formas normales

Las formas normales son niveles de normalización de bases de datos que determinan la "calidad" de una tabla. Generalmente, la tercera forma normal se considera un buen estándar para una base de datos relacional.

La normalización tiene como objetivo eliminar las anomalías de actualización, inserción y eliminación de la base de datos. Asimismo, garantiza que cuando se introduce un nuevo valor en la relación, su impacto en la base de datos sea mínimo y, por consiguiente, también en las aplicaciones que la utilizan.

Conjunto dependiente de función irreducible

Un conjunto S de dependencias funcionales es irreducible si el conjunto tiene las siguientes tres propiedades:

  1. Cada conjunto derecho de una dependencia funcional de S contiene solo un atributo.
  2. Cada conjunto izquierdo de una dependencia funcional de S es irreducible. Esto significa que reducir cualquier atributo del conjunto izquierdo modificará el contenido de S (S perderá información).
  3. Reducir cualquier dependencia funcional cambiará el contenido de S.

Los conjuntos de dependencias funcionales con estas propiedades también se denominan canónicos o mínimos . Encontrar un conjunto S de dependencias funcionales que sea equivalente a un conjunto de entrada S' proporcionado como entrada se denomina encontrar una cobertura mínima de S': este problema se puede resolver en tiempo polinomial. [ 10 ]

Véase también

Referencias

  1. Terry Halpin (2008). Modelado de información y bases de datos relacionales (2.ª  ed.). Morgan Kaufmann. pág.  140. ISBN 978-0-12-373568-3.
  2. Chris Date (2012). Diseño de bases de datos y teoría relacional: formas normales y demás . O'Reilly Media, Inc. pág. 21. ISBN  978-1-4493-2801-6.
  3. 1 2 3 Abraham Silberschatz ; Henry Korth ; S. Sudarshan (2010). Conceptos de sistemas de bases de datos (6.ª ed.). McGraw-Hill. pág. 339. ISBN   978-0-07-352332-3.
  4. 1 2 M. Y. Vardi. Fundamentos de la teoría de la dependencia . En E. Borger, editor, Tendencias en la informática teórica, páginas 171–224. Computer Science Press, Rockville, MD, 1987. ISBN 0881750840
  5. Abiteboul, Serge ; Hull, Richard B.; Vianu , Victor (1995), Foundations of Databases , Addison-Wesley, pp. 164–168 , ISBN  0-201-53771-0
  6. SK Singh (2009) [2006]. Sistemas de bases de datos: conceptos, diseño y aplicaciones . Pearson Education India. pág. 323. ISBN  978-81-7758-567-4.
  7. Hector Garcia-Molina; Jeffrey D. Ullman; Jennifer Widom (2009). Sistemas de bases de datos: el libro completo (2.ª ed.). Pearson Prentice Hall. pág. 73. ISBN   978-0-13-187325-4.A esto se le llama a veces regla de división/combinación.
  8. Saiedian, H. (1996-02-01). "Un algoritmo eficiente para calcular las claves candidatas de un esquema de base de datos relacional" . The Computer Journal . 39 (2): 124– 132. doi : 10.1093/comjnl/39.2.124 . ISSN 0010-4620 . 
  9. Heath, IJ (1971). "Operaciones de archivos inaceptables en una base de datos relacional". Actas del Taller ACM SIGFIDET (ahora SIGMOD) de 1971 sobre Descripción, Acceso y Control de Datos - SIGFIDET '71 . págs. 19–33 . doi : 10.1145/1734714.1734717 . S2CID 22069259 .  citado en:
    • Ronald Fagin y Moshe Y. Vardi (1986). «La teoría de las dependencias de datos: una revisión» . En Michael Anshel y William Gewirtz (eds.). Matemáticas del procesamiento de la información: [curso breve impartido en Louisville, Kentucky, del 23 al 24 de enero de 1984] . American Mathematical Soc. pág . 23. ISBN  978-0-8218-0086-7.
    • C. Date (2005). Database in Depth: Relational Theory for Practitioners . O'Reilly Media, Inc. p.  142. ISBN 978-0-596-10012-4.
  10. Meier, Daniel (1980). "Coberturas mínimas en el modelo de base de datos relacional" . Journal of the ACM . 27 (4): 664– 674. doi : 10.1145/322217.322223 . S2CID 15789293 . Icono de acceso cerrado

Lecturas adicionales

  • Gary Burt (Verano de 1999). "Apuntes de clase de CS 461 (Sistemas de Gestión de Bases de Datos)" . Departamento de Ciencias de la Computación e Ingeniería Eléctrica de la Universidad de Maryland, Condado de Baltimore .
  • Jeffrey D. Ullman. "Apuntes de clase de CS345" ( PostScript ) . Universidad de Stanford.
  • Osmar Zaiane (9 de junio de 1998). "Capítulo 6: Restricciones de integridad" . Apuntes de clase de CMPT 354 (Sistemas de bases de datos I) . Departamento de Ciencias de la Computación de la Universidad Simon Fraser .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Functional_dependency&oldid=1327888463 "