Dependencia funcional en sistemas de gestión de bases de datos: tipos con ejemplos

⚡ Resumen inteligente

La dependencia funcional es una restricción que determina cómo se relaciona un atributo con otro en un sistema de gestión de bases de datos (DBMS). Es fundamental para la normalización, ya que identifica determinantes y dependientes, y se clasifica en dependencias multivaluadas, triviales, no triviales y transitivas.

  • ➡️ Idea principal: En X → Y, el determinante X fija el valor de la variable dependiente Y, que se escribe con una flecha.
  • 🏷️ Términos claves: Determinante, dependiente, axioma, descomposición y unión describen cómo se nombran y manipulan las dependencias.
  • 📐 Axiomas de Armstrong: La reflexividad, la ampliación y la transitividad infieren toda dependencia que un conjunto implica lógicamente.
  • 🔀 Cuatro tipos: Las dependencias multivaluadas, triviales, no triviales y transitivas describen cada una una relación de atributos distinta.
  • 🧹 Enlace de normalización: Las dependencias impulsan la normalización, lo que elimina la redundancia y las anomalías de actualización.
  • 🔑 Cierre: El cierre de atributos revela las claves candidatas y si existe una dependencia.
  • Beneficio: Las buenas dependencias son señal de un buen diseño y permiten distinguir los esquemas de calidad de los deficientes.

Dependencia funcional en DBMS

¿Qué es la dependencia funcional?

Dependencia Funcional (DF) La dependencia funcional es una restricción que determina la relación entre un atributo y otro en un Sistema de Gestión de Bases de Datos (SGBD). Ayuda a mantener la calidad de los datos en la base de datos y desempeña un papel fundamental para distinguir entre un buen y un mal diseño de base de datos.

Una dependencia funcional se denota con una flecha “→”. La dependencia funcional de Y respecto a X se representa como X → Y. Veamos un ejemplo para comprender la dependencia funcional.

Ejemplo:

Número de empleado Nombre de empleado Sueldo Ciudad
1 Dana 50000 San Francisco
2 Francis 38000 Londres
3 Andrew 25000 Tokio

En este ejemplo, si conocemos el número de empleado, podemos obtener su nombre, ciudad, salario, etc. Por lo tanto, podemos afirmar que la ciudad, el nombre y el salario dependen funcionalmente del número de empleado.

Términos Clave

A continuación se presentan algunos términos clave para la dependencia funcional en una base de datos:

Términos Clave Mareas Ideales para Lecciones
Axiom Los axiomas son un conjunto de reglas de inferencia que se utilizan para deducir todas las dependencias funcionales de una base de datos relacional.
Descomposición Una regla que sugiere que si tienes una tabla que parece contener dos entidades determinadas por la misma clave primaria, deberías considerar dividirla en dos tablas diferentes.
Dependiente Se muestra en el lado derecho del diagrama de dependencia funcional.
Determinante Se muestra en el lado izquierdo del diagrama de dependencia funcional.
Union Esto sugiere que si dos tablas están separadas y la clave primaria es la misma, deberías considerar combinarlas.

Reglas de dependencias funcionales (Axiomas de Armstrong)

A continuación se presentan las tres reglas más importantes para la dependencia funcional en una base de datos. Se conocen como los axiomas de Armstrong, y a partir de ellos se pueden derivar todas las demás reglas de inferencia.

  • Regla reflexiva: Si X es un conjunto de atributos e Y es un subconjunto de X, entonces se cumple que X → Y.
  • Regla de aumento: Cuando se cumple X → Y y C es un conjunto de atributos, entonces también se cumple XC → YC. Agregar atributos no altera la dependencia básica.
  • Regla de transitividad: Similar a la regla transitiva en álgebra: si X → Y se cumple y Y → Z se cumple, entonces X → Z también se cumple.

De estas se derivan otras tres reglas que se utilizan constantemente en la práctica:

  • Regla del sindicato: Si X → Y y X → Z, entonces X → YZ.
  • Regla de descomposición: Si X → YZ, entonces X → Y y X → Z.
  • Regla de pseudotransitividad: Si X → Y y WY → Z, entonces WX → Z.

Aplicar estas reglas repetidamente a un conjunto de dependencias produce su cierre, el conjunto completo de dependencias que siguen lógicamente. El cierre de un conjunto de atributos también es la forma en que se encuentran las claves candidatas, lo que se vincula directamente con el estudio de claves del sistema de gestión de bases de datos (DBMS).

Tipos de dependencias funcionales en DBMS

En los sistemas de gestión de bases de datos (DBMS) existen principalmente cuatro tipos de dependencia funcional:

  • Dependencia multivalor
  • Dependencia funcional trivial
  • Dependencia funcional no trivial
  • Dependencia transitiva

Dependencia multivalor en DBMS

La dependencia multivaluada se produce cuando existen múltiples atributos multivaluados independientes en una misma tabla. Una dependencia multivaluada es una restricción completa entre dos conjuntos de atributos en una relación, que requiere la presencia de ciertas tuplas. Considere el siguiente ejemplo.

Ejemplo:

Modelo de auto Maf_año Color
H001 2017 Metálico
H001 2017 Verde
H005 2018 Metálico
H005 2018 Azul
H010 2015 Metálico
H033 2012 Gris

En este ejemplo, Maf_year y Color son independientes entre sí, pero dependen de Car_model. Se dice que estas dos columnas son multivalor dependientes de Car_model. Esto se representa como:

modelo_de_coche → año_maf

modelo_de_coche → color

Dependencia funcional trivial en DBMS

Una dependencia trivial es un conjunto de atributos que se denomina trivial si dicho conjunto de atributos está incluido en ese atributo. Por lo tanto, X → Y es una dependencia funcional trivial si Y es un subconjunto de X. Considere el siguiente ejemplo.

Emp_id Emp_nombre
AS555 Harry
AS811 George
AS999 Kevin

Consideremos esta tabla con dos columnas, Emp_id y Emp_name. {Emp_id, Emp_name} → Emp_id es una dependencia funcional trivial, ya que Emp_id es un subconjunto de {Emp_id, Emp_name}.

Dependencia funcional no trivial en sistemas de gestión de bases de datos

Existe una dependencia no trivial cuando se cumple la condición A → B y B no es un subconjunto de A. Si el atributo B no es un subconjunto del atributo A, la dependencia se considera no trivial.

Empresa CEO Edad
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Apple Tim Cook 57

Ejemplo:

{Empresa} → {CEO} (si conocemos la empresa, conocemos el nombre del CEO). Pero CEO no es un subconjunto de la empresa, por lo que se trata de una dependencia funcional no trivial.

Dependencia transitiva en DBMS

Una dependencia transitiva es un tipo de dependencia funcional que se produce cuando un atributo está determinado indirectamente por dos dependencias funcionales. Considere el siguiente ejemplo.

Empresa CEO Edad
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Empresa} → {CEO} (si conocemos la empresa, conocemos el nombre de su CEO).

{CEO} → {Edad} (si conocemos al CEO, conocemos su edad).

Por lo tanto, según la regla de dependencia transitiva, {Empresa} → {Edad} debería cumplirse, lo cual tiene sentido porque si conocemos el nombre de la empresa, podemos encontrar la edad.

Nota: la dependencia transitiva solo puede darse en una relación de tres o más atributos.

¿Qué es la normalización?

La normalización es un método para organizar los datos en una base de datos que ayuda a evitar la redundancia de datos y las anomalías de inserción, actualización y eliminación. Es un proceso de análisis de los esquemas de relación en función de sus diferentes dependencias funcionales y la clave primaria.

La normalización es inherente a la teoría de bases de datos relacionales. Puede tener el efecto de dividir los datos en tablas adicionales de modo que cada hecho se almacene una sola vez. El proceso completo se cubre en la guía para normalización de base de datos, que se basa directamente en los tipos de dependencia anteriores.

Ventajas de la dependencia funcional

  • La dependencia funcional evita la redundancia de datos, por lo que los mismos datos no se repiten en múltiples ubicaciones en el base de datos de CRISPR Medicine News.
  • Ayuda a mantener la calidad de los datos en la base de datos.
  • Ayuda a definir los significados y las limitaciones de las bases de datos.
  • Te ayuda a identificar malos diseños.
  • Te ayuda a encontrar información sobre el diseño de la base de datos.

Preguntas Frecuentes

El determinante es el atributo a la izquierda de la flecha que fija el valor. El dependiente es el atributo a la derecha cuyo valor se determina. En X → Y, X determina Y.

Una dependencia funcional fija un único valor para el elemento dependiente. Una dependencia multivaluada permite un conjunto de valores independientes, por lo que requiere su propio atributo y da lugar a la cuarta forma normal.

Calcula el cierre de un conjunto de atributos utilizando las dependencias. Si el cierre incluye todos los atributos de la relación, ese conjunto es una superclave; el conjunto mínimo que cumple esta condición es una clave candidata.

Sí. Los algoritmos de detección de dependencias, algunos con asistencia de IA, analizan un conjunto de datos y proponen posibles dependencias. El diseñador debe confirmarlas, ya que un patrón que se cumple en datos de muestra puede no ser válido como regla general.

Almacena un dato sobre un atributo no clave, por lo que actualizarlo conlleva el riesgo de anomalías. Eliminar las dependencias transitivas es precisamente lo que requiere la tercera forma normal, que mantiene cada dato en un solo lugar.

Resumir este post con: