Normalización y formas normales
Normalización
Normalización de Base de Datos, es el proceso de organizar los datos en una base de datos que incluye la creación de tablas y el establecimiento de relaciones entre ellas.
Es decir, el proceso de normalización de una base de datos relacional consiste en aplicar una serie de reglas para evitar a futuro realizar consultas innecesariamente complejas. En otras palabras están enfocadas en eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas.
Las bases de datos se normalizan para:
- Evitar la redundancia de datos
- Proteger la integridad de los datos
- Evitar problemas de actualización de los datos en las tablas
Formas Normales
Primera forma normal
La primera forma normal significa que los datos están agrupados en una o varias entidades entidad, lo que significa que se han cumplido las siguientes condiciones:
- Eliminar grupos repetidos en tablas individuales: Eliminar campos repetidos que tengan igual información a otros
- Crear una tabla independiente para cada conjunto de datos relacionados: crear una tabla para cada conjunto de datos los cuales apuntaran a un mismo tipo de dato
- Identificar cada conjunto de relacionados con la clave principal
Como se ve en la imagen hay campos que van a tener la misma información como los son: clase 1, clase 2, clase 3
Para identificar si se cumple de manera correcta, debemos considerar lo siguiente:
- La tabla contiene una clave primaria única.
- La clave primaria no contiene atributos nulos.
- No debe existir variación en el número de columnas.
- Los campos no clave 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.
- Los datos son atómicos (a cada valor de X le pertenece un valor de Y y viceversa).
Segunda formal normal
La segunda forma normal asegura que cada atributo describe la entidad
Crear tablas separadas para el conjunto de valores y los registros múltiples, estas tablas se deben relacionar con una clave externa.
- Crear tablas separadas para aquellos grupos de datos que se aplican a varios
registros: - Relacionar estas tablas mediante una clave externa: relacionar las tablas maestras con las de movimiento por medio de las claves primarias y foráneas
Sabremos si nuestra base de datos tiene en la segunda forma normal si ésta previamente cumple con las normas de la Primera forma Normal y si sus atributos no principales dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales.
Fuente: Carlos (2018). Como normalizar una base de datos sin morir en el intento. https://platzi.com/blog/normalizar-una-base-de-datos-y-no-morir-en-el-intento/
Tercera forma normal
La tercera forma normal comprueba las dependencias transitivas, eliminando campos que no dependen de la clave principal.
Los valores que no dependen de la clave principal no pertenecen a la tabla
Los campos que no pertenecen a la clave principal colóquelos en una tabla aparte y relacionen ambas tablas por medio de una clave externa.
Para que se cumpla se deben considerar lo siguiente
- Eliminar aquellos campos que no dependan de la clave.
- Ninguna columna puede depender de una columna que no tenga una clave.
- No puede haber datos derivados.
Podemos decir que nuestra tabla se encuentra en tercera normal si previamente estaba en segunda forma normal y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave. Es decir todo atributo no primo es implicado por la clave primaria en una secuencia no transitiva.
Ejemplo
Considerando la tabla anterior, si le aplicamos las formas normales cambiaría, podemos darnos cuenta que no cumple el punto donde los campos deben quedar reducidos a su mínima expresión, si le aplicamos la primera forma normal quedaría mas o menos así
Ahí cumple con la primera forma normal, pero si queremos que cumpla con las segunda forma normal, podemos darnos cuenta que podemos separar los campos autor, y materias en tablas diferentes con sus propias claves primarias. y quedaría mas o menos así
Tabla autor
Tabla curso
Tabla material
Y con eso cumpliría las tres primeras formas normales
Videos
Fuente: https://www.youtube.com/watch?v=bO18omSzeR4
Fuente: https://www.youtube.com/watch?v=mTD7EY2Ch0o
Fuente: https://www.youtube.com/watch?v=0I_0lHj4GP4
Solución de taller