jueves, 20 de agosto de 2020

NORMALIZACIONES DE UNA BASE DE DATOS


El proceso de normalización de una base de datos es el concepto más extendido en la gestión informatizada de los datos. En las bases de datos de este tipo, la información se guarda en registros en tablas interconectadas por medio de claves. Un registro se compone de varios campos de valores que se subordinan a ciertos atributos a lo largo de las columnas de la tabla.

 En la siguiente tabla se resumen las distintas formas normales, indicando sus creadores y el año en que se propusieron.




1.Primera forma normal:
Una tabla esta en esta forma si y solo si:
- Todos sus tributos son atómicos.
-La clave contiene una clave primaria.
-La clave primaria no contiene atributos nulos.
-No debe existir variación en el numero de columnas.
-Los campos no claves deben identificarse por la clave (Dependencia Funcional).
-Debe existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados.
-Una tabla no puede tener múltiples valores en cada columna.


Un ejemplo de la primera forma normal:






En lugar de hacer campos para proveedores en una sola tabla, se hace otra tabla con el campo proveedor y así se podrán colocar varios registros para los proveedores (Tabla de en medio). Se sustituye la tabla superior de la izquierda por la inferior. 






2.Segunda forma normal:
Una tabla en 1FN está en 2FN si y solo sí ninguno de sus atributos no-principales son funcionalmente dependientes en una parte (Subconjunto propio) de una clave primaria (Un atributo no-principal es uno que no pertenece a ninguna clave primaria).

Ejemplo:
Pensando en la dirección de un cliente en un sistema de contabilidad, la dirección se necesita para la tabla Clientes pero para las tablas Pedidos, Factura, y Cuentas a cobrar también, en lugar de almacenar la dirección del cliente como tal en cada tabla, se almacenará en un único lugar , ya sea en la tabla Clientes o en una tabla de Direcciones indenpendiente.


3.Tercera forma normal:
Una tabla está en 3FN si y solo sí las tres condiciones siguientes se cumplen:
-La tabla está en la segunda forma normal.
-Ningún atributo no-primario de la tabla es dependiente transitivamente de una clave primaria.
-Es una relación que no incluye ningún atributo clave.

Ejemplo:




(N_Torneo) ---> (#_Año, N_Ganador, D_Nacimiento_Ganador).

Con la 3FN quedaría así:







3.1 Forma normal de Boyce-Codd:
Esta es una versión ligeramente más fuerte que la 3FN, esta requiere que no existan dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave candidata, en una tabla en 3FN, todos los atributos dependen de una clave, de una clave completa y de ninguna otra cosa. 
Una tabla esta en FNBC si y solo sí está en 3FN y cada dependencia funcional no trivial tiene una clave candidata como determinante.
Ejemplo:
Solamente en casos raros una tabla en 3NF no satisface los requerimientos de la FNBC. Un ejemplo de tal tabla es (teniendo en cuenta que cada estudiante puede tener más de un tutor):
El propósito de la tabla es mostrar qué tutores están asignados a qué estudiantes. Las claves candidatas de la tabla son:
  • {ID Tutor, ID Estudiante}
  • {Número de seguro social del tutor, ID Estudiante}

4.Cuarta forma normal:

En esta se asegura de que las dependencias miltivaluadas independientes están correctas y eficientemente representadas en un diseño de Base de datos. La 4FN es el siguiente nivel de normalización después de la forma normal de Boyce-Codd (BCNF).
Una tabla está en 4FN si y solo sí está en tercera forma normal o en BCNF (Cualquiera de ambas) y no posee dependencias miltivaluadas no triviales.

Ejemplo:


(C_Alumno)----->(N_Alumno,N_curso)

La clave anterior muestra a la clave primaria y a sus dos atributos, de los cuales Alumno lleva más de un curso por lo que, por lo que esta tabla no estaría optimizando el proceso. 
Se tendría que realizar la separación de las tablas y el usar  la dependencia multivalor, considerando que la cantidad de cursos que se puede tener es de 3.
Quedaría de la siguiente manera:
(C_Alumno)---->(N_Alumno)


(C_Alumno)--->(N_Curso1,N_Curso2,N_Curso3)

5. Quinta forma normal:
Es un nivel de normalización diseñado para reducir  la redundancia en las bases de datos relacionales que guardan multi-valores aislando semanticamente relaciones múltiples relacionadas. Una tabla se dice que está en 5FN si y solo sí esta en 4FN y cada dependencia de unión (JOIN) en ella es implicada por las claves candidatas.

Es raro encontrar 5FN después de la 4FN
Por lo general se da en los siguientes casos:
-Hay muchos atributos en las tablas después de la 4FN.
-La tabla contendrá demasiados datos después de la 4FN.

Ejemplo:

Para el  caso de una tabla que posee una gran cantidad de atributos:




En este caso tenemos una empresa donde se guardan los datos personales, familiares, profesionales y clínicos de cada empleado en una única tabla llamada Empleados. Si esta tabla está ya en 4FN, se puede partir en las tablas empleados-personal, empleados-familia, empleados-profesional, empleados-clínicos; de este modo, la velocidad de acceso y la gestión de datos por cada departamento de la empresa se simplifica, al no tenerse que crear ningún tipo de restricción sobre determinados atributos que no han de ser vistos por el personal que no los necesite.






3 comentarios:

APLICACIONES PARA LA GESTIÓN DE PROYECTOS

   Las empresas trabajan en múltiples proyectos al mismo tiempo. Forman equipos de personal y los asignan a líderes experimentados que as...