¿Qué es la normalización?
La normalización es una técnica de diseño de bases de datos que reduce la redundancia de datos y elimina características indeseables como anomalías de inserción, actualización y eliminación. Las reglas de normalización dividen las tablas más grandes en tablas más pequeñas y las vinculan mediante relaciones. El propósito de la normalización en SQL es eliminar los datos redundantes (repetitivos) y garantizar que los datos se almacenen de forma lógica.
El inventor del modelo relacional Edgar Codd propuso la teoría de la normalización de datos con la introducción de la Primera Forma Normal, y continuó ampliando la teoría con la Segunda y Tercera Forma Normal. Más tarde se unió a Raymond F. Boyce para desarrollar la teoría de la forma normal de Boyce-Codd.
Formularios normales de base de datos
Aquí hay una lista de formas normales
- 1NF (Primera forma normal)
- 2NF (Segunda forma normal)
- 3NF (tercera forma normal)
- BCNF (forma normal de Boyce-Codd)
- 4NF (Cuarta forma normal)
- 5NF (Quinta forma normal)
- 6NF (Sexta forma normal)
La teoría de la normalización de datos en el servidor SQL aún se está desarrollando. Por ejemplo, hay discusiones incluso sobre la 6ª Forma Normal. Sin embargo, en la mayoría de las aplicaciones prácticas, la normalización alcanza su mejor nivel en la 3ª forma normal . La evolución de las teorías de normalización de SQL se ilustra a continuación:
Normalización de la base de datos con ejemplos
El ejemplo de normalización de base de datos se puede entender fácilmente con la ayuda de un estudio de caso. Supongamos que una biblioteca de videos mantiene una base de datos de películas alquiladas. Sin ninguna normalización en la base de datos, toda la información se almacena en una tabla como se muestra a continuación. Entendamos la normalización en la base de datos con el ejemplo de tablas:
Aquí puede ver que la columna Películas alquiladas tiene varios valores. Ahora pasemos a las primeras formas normales:
Reglas 1NF (Primera forma normal)
- Cada celda de la tabla debe contener un solo valor.
- Cada registro debe ser único.
La tabla anterior en 1NF-
Ejemplo 1NF
Antes de continuar, comprendamos algunas cosas:
¿Qué es una LLAVE?
Una CLAVE es un valor que se utiliza para identificar un registro en una tabla de forma única. Una CLAVE puede ser una sola columna o una combinación de varias columnas
Nota: Las columnas de una tabla que NO se utilizan para identificar un registro de forma única se denominan columnas sin clave.
¿Qué es una clave principal?
Un primario es un valor de una sola columna que se utiliza para identificar un registro de base de datos de forma única.
Tiene los siguientes atributos
- Una clave principal no puede ser NULL
- Un valor de clave principal debe ser único
- Los valores de la clave principal rara vez deben cambiarse
- La clave principal debe recibir un valor cuando se inserta un nuevo registro.
¿Qué es la clave compuesta?
Una clave compuesta es una clave principal compuesta por varias columnas que se utilizan para identificar un registro de forma única.
En nuestra base de datos, tenemos dos personas con el mismo nombre Robert Phil, pero viven en lugares diferentes.
Por lo tanto, requerimos tanto el nombre completo como la dirección para identificar un registro de manera única. Esa es una clave compuesta.
Pasemos a la segunda forma normal 2NF
Reglas de 2NF (segunda forma normal)
- Regla 1- Estar en 1NF
- Regla 2- Clave principal de una sola columna
Está claro que no podemos avanzar para hacer nuestra base de datos simple en la segunda forma de normalización a menos que particionemos la tabla de arriba.
Hemos dividido nuestra tabla 1NF en dos tablas a saber. Tabla 1 y Tabla2. La Tabla 1 contiene información sobre los miembros. La Tabla 2 contiene información sobre películas alquiladas.
Hemos introducido una nueva columna llamada Membership_id, que es la clave principal de la tabla 1. Los registros se pueden identificar de forma única en la Tabla 1 mediante el identificador de membresía.
Base de datos: clave externa
En la Tabla 2, Membership_ID es la clave externa
¡La clave externa hace referencia a la clave principal de otra tabla! Ayuda a conectar sus tablas
- Una clave externa puede tener un nombre diferente al de su clave principal
- Garantiza que las filas de una tabla tengan filas correspondientes en otra
- A diferencia de la clave principal, no es necesario que sean únicas. La mayoría de las veces no lo son
- Las claves externas pueden ser nulas aunque las claves primarias no
¿Por qué necesita una clave externa?
Supongamos que un novato inserta un registro en la Tabla B como
Solo podrá insertar valores en su clave externa que existan en la clave única en la tabla principal. Esto ayuda a la integridad referencial.
El problema anterior se puede superar declarando la identificación de membresía de Table2 como clave externa de la identificación de membresía de Table1
Ahora, si alguien intenta insertar un valor en el campo de identificación de membresía que no existe en la tabla principal, se mostrará un error.
¿Qué son las dependencias funcionales transitivas?
Una dependencia funcional transitiva es cuando se cambia una columna que no es clave, puede hacer que cambie cualquiera de las otras columnas que no son clave.
Considere la tabla 1. Cambiar el nombre completo de la columna no clave puede cambiar el saludo.
Pasemos a 3NF
Reglas de 3NF (tercera forma normal)
- Regla 1- Estar en 2NF
- Regla 2- No tiene dependencias funcionales transitivas
Para mover nuestra tabla 2NF a 3NF, nuevamente necesitamos dividir nuestra tabla nuevamente.
Ejemplo 3NF
A continuación se muestra un ejemplo de 3NF en una base de datos SQL:
Hemos vuelto a dividir nuestras mesas y hemos creado una nueva tabla que almacena Saludos.
No hay dependencias funcionales transitivas y, por lo tanto, nuestra tabla está en 3NF.
En la Tabla 3, el ID de saludo es la clave principal, y en la Tabla 1, el ID de saludo es ajeno a la clave principal de la Tabla 3
Ahora nuestro pequeño ejemplo está en un nivel que no se puede descomponer más para lograr formas normales más altas de normalización. De hecho, ya se encuentra en formas de normalización superiores. Normalmente se necesitan esfuerzos separados para pasar a los siguientes niveles de normalización de datos en bases de datos complejas. Sin embargo, discutiremos los siguientes niveles de normalización brevemente a continuación.
BCNF (forma normal de Boyce-Codd)
Incluso cuando una base de datos está en la 3ª forma normal, se producirán anomalías si tiene más de una clave candidata .
A veces, el BCNF también se conoce como forma normal 3.5.
Reglas 4NF (Cuarta Forma Normal)
Si ninguna instancia de la tabla de la base de datos contiene dos o más datos independientes y multivalor que describen la entidad relevante, entonces está en la 4ª Forma Normal.
Reglas 5NF (Quinta Forma Normal)
Una tabla está en la 5ª forma normal solo si está en 4NF y no se puede descomponer en ninguna cantidad de tablas más pequeñas sin pérdida de datos.
6NF (Sexta forma normal) propuesto
6 º forma normal no es estándar, sin embargo, sin embargo, se está discutiendo por expertos de bases de datos durante algún tiempo. Con suerte, tendríamos una definición clara y estandarizada para el 6 º forma normal en un futuro próximo ...
¡¡¡Eso es todo para la normalización de SQL !!!
Resumen
- El diseño de bases de datos es fundamental para la implementación exitosa de un sistema de administración de bases de datos que cumpla con los requisitos de datos de un sistema empresarial.
- El proceso de normalización en DBMS ayuda a producir sistemas de bases de datos que son rentables y tienen mejores modelos de seguridad.
- Las dependencias funcionales son un componente muy importante del proceso de normalización de datos.
- La mayoría de los sistemas de bases de datos son bases de datos normalizadas hasta la tercera forma normal.
- Una clave primaria identifica de forma única un registro en una tabla y no puede ser nula
- Una clave externa ayuda a conectar la tabla y hace referencia a una clave primaria