Normalización de la base de datos (explicado en inglés simple)
Introducción a la normalización de la base de datos
La normalización de la base de datos es un proceso que se utiliza para organizar una base de datos en tablas y columnas. La idea principal con esto es que una tabla debe ser sobre un tema específico y solo deben incluirse temas de apoyo. Tome una hoja de cálculo que contenga la información como ejemplo, donde los datos contienen vendedores y clientes que sirven para varios propósitos:
- Identifique a los vendedores en su organización
- Enumere todos los clientes a los que llama su empresa para vender un producto
- Identifique qué vendedores recurren a clientes específicos.
Al limitar una tabla a un propósito, reduce la cantidad de datos duplicados contenidos en su base de datos. Esto elimina algunos problemas derivados de las modificaciones de la base de datos.
Para lograr estos objetivos, usaremos algunas reglas establecidas. A medida que aplica estas reglas, se forman nuevas tablas. La progresión de rebelde a optimizado pasa por varias formas normales.
Hay tres formas normales que la mayoría de las bases de datos utilizan. A medida que las tablas satisfacen cada forma de normalización de la base de datos sucesiva, se vuelven menos propensas a las anomalías de modificación de la base de datos y se centran más en un único propósito o tema. Antes de continuar, asegúrese de entender la definición de una tabla de base de datos.
Razones para la normalización de la base de datos
Hay tres razones principales para normalizar una base de datos. El primero es minimizar los datos duplicados, el segundo es minimizar o evitar problemas de modificación de datos y el tercero es simplificar las consultas.
A medida que avanzamos en los distintos estados de normalización, analizaremos cómo cada formulario aborda estos problemas, pero para empezar, veamos algunos datos que no se han normalizado y analicemos algunos posibles errores.
Creo que una vez que comprenda los problemas, será mejor que aprecie la normalización. Considere la siguiente tabla:
Lo primero que debe notar es que esta tabla tiene muchos propósitos, entre ellos:
- Identificar a los vendedores de la organización
- Listar las ventas oficinas y números de teléfono
- Asociación de un vendedor con una oficina de ventas
- Mostrar los clientes de cada vendedor
Como DBA, esto genera una señal de alerta. En general, me gusta ver tablas que tienen un propósito. Hacer que la mesa sirva para muchos propósitos presenta muchos de los desafíos; a saber, duplicación de datos, problemas de actualización de datos y mayor esfuerzo para consultar datos.
Anomalías de duplicación y modificación de datos
Observe que para cada SalesPerson hemos enumerado tanto SalesOffice como OfficeNumber. Hay datos de vendedores duplicados. La información duplicada presenta dos problemas:
- Aumenta el almacenamiento y disminuye el rendimiento.
- Se vuelve más difícil mantener los cambios en los datos.
Por ejemplo:
Considere si trasladamos la oficina de Chicago a Evanston, IL. Para reflejar esto correctamente en nuestra tabla, necesitamos actualizar las entradas para todos los SalesPersons actualmente en Chicago. Nuestra tabla es un pequeño ejemplo, pero puede ver si fuera más grande, que potencialmente esto podría involucrar cientos de actualizaciones.
Estas situaciones son anomalías de modificación. La normalización de la base de datos los corrige. Hay tres anomalías de modificación que pueden ocurrir:
Insertar anomalía
Hay hechos que no podemos registrar hasta que sepamos la información de toda la fila. En nuestro ejemplo, no podemos registrar una nueva oficina de ventas hasta que también conozcamos al vendedor. ¿Por qué? Porque para crear el registro, necesitamos proporcionar una clave primaria. En nuestro caso, este es el EmployeeID.
Actualización de anomalía
En este caso tenemos la misma información en varias filas. Por ejemplo, si cambia el número de la oficina, es necesario realizar varias actualizaciones. Si no actualizamos todas las filas, aparecerán inconsistencias.
Anomalía de eliminación
La eliminación de una fila provoca la eliminación de más de un conjunto de hechos. Por ejemplo, si John Hunt se jubila, eliminar esa fila hará que perdamos información sobre la oficina de Nueva York.
Problemas de búsqueda y clasificación
La última razón que consideraremos es facilitar la búsqueda y clasificación de datos. En la tabla SalesStaff, si desea buscar un cliente específico como Ford, tendría que escribir una consulta como
SELECT SalesOfficeFROM SalesStaffWHERE Customer1 = ‘Ford’ OR Customer2 = ‘Ford’ OR Customer3 = ‘Ford’
Claramente si el cliente fuera de alguna manera en una columna nuestra consulta sería más sencilla. Además, considere si desea ejecutar una consulta y ordenar por cliente.
Nuestra tabla actual lo dificulta. ¡Tendría que utilizar tres consultas UNION independientes!Puede eliminar o reducir estas anomalías separando los datos en diferentes tablas. Esto coloca los datos en tablas con un solo propósito.
El proceso para rediseñar la tabla es la normalización de la base de datos.
Definición de normalización de base de datos
Hay tres formas comunes de normalización de base de datos: 1ª, 2ª y 3ª forma normal. También se abrevian como 1NF, 2NF y 3NF respectivamente.
Hay varias formas adicionales, como BCNF, pero considero que son avanzadas y no es necesario aprenderlas al principio.
Las formas son progresivas, lo que significa que para calificar para la 3ª forma normal, una tabla debe primero satisfacer las reglas de la 2ª forma normal y la 2ª forma normal debe adherirse a las de la 1ª forma normal. Antes de discutir las diversas formas y reglas en detalle, resumamos las diversas formas:
- Primera forma normal: la información se almacena en una tabla relacional con cada columna que contiene valores atómicos. No hay grupos repetidos de columnas.
- Segunda forma normal: la tabla está en la primera forma normal y todas las columnas dependen de la clave principal de la tabla.
- Tercera forma normal: la tabla está en la segunda forma normal y todas sus columnas no dependen transitivamente de la clave primaria
Si las reglas no tienen mucho sentido, no se preocupe. He vinculado el artículo para ayudarlo a comprenderlos.
Por ahora, es importante comprender que hay tres reglas para la normalización de bases de datos que se superponen. Algunas personas hacen que la normalización de la base de datos parezca complicada.
pero no tiene por qué serlo, y una vez que lo entiendes, se vuelve intuitivo.