Una dependencia funcional completa es un estado de normalización de la base de datos que equivale al estándar de normalización de la segunda forma normal (2NF). En resumen, esto significa que cumple con los requisitos de la primera forma normal (1NF), y todos los atributos que no son de clave dependen completamente funcionalmente de la clave principal.
Esto no es tan complicado como puede parecer. Veamos esto con más detalle.
Resumen de la primera forma normal
Antes de que una base de datos pueda ser completamente funcionalmente dependiente, primero debe cumplir con la Primera forma normal. Todo esto significa que cada atributo debe tener un solo valor atómico.
Por ejemplo, la siguiente tabla no cumple con 1NF porque la empleada Tina está vinculada a dos ubicaciones, ambas en una sola celda:
Empleado | Localización |
John | los Angeles |
Tina | Los Ángeles, Chicago |
Permitir este diseño podría afectar negativamente a las actualizaciones o entradas de datos. Para garantizar el cumplimiento de 1NF, reorganice la tabla para que todos los atributos (o celdas de columna) tengan un solo valor:
Empleado | Localización |
John | los Angeles |
Tina | los Angeles |
Tina | Chicago |
Pero 1NF todavía no es suficiente para evitar problemas con los datos.
Cómo funciona 2NF para garantizar una dependencia total
Para ser completamente dependiente, todos los atributos de clave no candidatos deben depender de la clave principal.
Un atributo de clave candidata es cualquier clave (por ejemplo, una clave primaria o externa) que se utiliza para identificar de forma única un registro de base de datos.
Los diseñadores de bases de datos utilizan una notación para describir las relaciones dependientes entre atributos:
Si el atributo A determina el valor de B, escribimos esto A -> B, lo que significa que B es funcionalmente dependiente de A. En esta relación, A determina el valor de B, mientras que B depende de A.
Por ejemplo, en los siguientes departamentos de empleados mesa, ID de empleado y DeptID son claves candidatas: ID de empleado es la clave principal de la tabla mientras DeptID es una clave externa. Cualquier otro atributo, en este caso, Nombre de empleado y DeptName: Debe depender de la clave principal para obtener su valor.
ID de empleado | Nombre de empleado | DeptID | DeptName |
Emp1 | John | Dpto001 | Finanzas |
Emp2 | Tina | Dpto003 | Ventas |
Emp3 | Carlos | Dpto001 | Finanzas |
En este caso, la tabla no es completamente dependiente porque, mientras que el EmployeeName depende de la clave principal ID de empleado, los DeptName depende en cambio de la DeptID. A esto se le llama dependencia parcial.
Para que esta tabla se ajuste a 2NF, necesitamos separar los datos en dos tablas: una tabla Empleados y una tabla Departamentos. Aquí está la tabla de empleados:
ID de empleado | Nombre de empleado | DeptID |
Emp1 | John | Dpto001 |
Emp2 | Tina | Dpto003 |
Emp3 | Carlos | Dpto001 |
Quitamos el DeptName atributo de la tabla Empleados y cree una nueva tabla Departamentos:
DeptID | DeptName |
Dpto001 | Finanzas |
Dpto002 | Recursos humanos |
Dpto003 | Ventas |
Ahora las relaciones entre las tablas son totalmente dependientes, o en 2NF.
Por qué es importante la dependencia total
La dependencia total entre los atributos de la base de datos ayuda a garantizar la integridad de los datos y evita anomalías en los datos.
Por ejemplo, considere la tabla en la sección anterior que se adhiere solo a 1NF. Aquí está de nuevo:
Empleado | Localización |
John | los Angeles |
Tina | los Angeles |
Tina | Chicago |
Tina tiene dos récords. Si actualizamos uno sin darnos cuenta de que hay dos, el resultado sería datos inconsistentes.
O, ¿qué pasa si queremos agregar un empleado a esta tabla, pero aún no sabemos la ubicación? Es posible que no se nos permita ni siquiera agregar un nuevo empleado si el Localización El atributo no permite valores NULL.
Sin embargo, la dependencia total no es el panorama completo cuando se trata de normalización. Debe asegurarse de que su base de datos esté en la Tercera Forma Normal (3NF).
¡Gracias por dejarnos saber!
¡Dinos por qué!
Otro
No hay suficientes detalles
Difícil de entender