Normalización de una base de datos: qué es y cómo normalizar una base sin morir en el intento

Tipos de normalización: 3 Formas Normales y cómo se usan.

La normalización es un proceso que se aplica a las bases de datos para organizar las tablas y evitar la redundancia o complejidad en los datos. En este sencillo y muy explicativo artículo resolvemos tus dudas sobre la normalización y te explicamos para qué sirve, pues la verdad es más sencillo de lo que parece.

¿Qué es la normalización de una base de datos y para qué sirve?

La normalización de una base de datos es la aplicación de una serie de reglas para evitar a futuro realizar queries o consultas innecesariamente complejas. En otras palabras están enfocadas en eliminar redundancias e inconsistencias de dependencia en el diseño de las tablas que creamos para organizar las bases de datos.

Y es que los datos redundantes desperdician el espacio de disco de tu computador, además de crear problemas de mantenimiento. Dicho esto, ¿por qué es importante que hagas el acceso a los datos mediante la normalización? Pues bien, las bases de datos se normalizan para que tu puedas:

  • Evitar la redundancia de datos
  • Proteger la integridad de los datos
  • Evitar problemas de actualización de los datos en las tablas

Para poder decir que nuestra base de datos está normalizada deben respetarse 3 niveles o tipos de normalización. Cada uno de estos niveles cumple con ciertos requisitos que tienen el objetivo de simplificar la información pero sin que haya una pérdida de datos.

Veamos cada una a continuación.

¿Qué es DDL, DML, DCL y TCL? + Integridad Referencial.

Tipos de normalización: 3 Formas Normales y cómo se usan

Hay reglas en la normalización de una base de datos y cada una de ellas se denomina Forma Normal. Existen 3 tipos principales.

La primera Forma Normal (1FN)

Hay que seguir una serie de pasos para normalizar, en otras palabras, para decir que nuestra tabla está en primera forma normal. Estos son:

  1. Eliminar los grupos repetitivos de la tablas individuales
  2. Crear una tabla separada por cada grupo de datos relacionados
  3. Identificar cada grupo de datos relacionados con una clave primaria

Para identificar si lo hemos hecho de manera correcta debemos considerar los siguientes aspectos:

  • Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.
  • 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)

La segunda Forma Normal (2FN)

Debemos seguir los siguientes pasos:

  1. Tener la 1° forma normal
  2. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros
  3. Relacionar estas tablas mediante una clave externa

Sabremos si nuestra base de datos tiene en la segunda forma normal si esta previamente cumple con las normas de la Primera forma Normal y si sus atributos no principales dependen de forma completa de la clave principal.

En otras palabras, que no existen dependencias parciales.

La tercera Forma Normal (3FN)

Debemos considerar los siguientes puntos:

  1. Tener la 2° forma normal
  2. Eliminar aquellos campos que no dependan de la clave
  3. Ninguna columna puede depender de una columna que no tenga una clave
  4. 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.

En otras palabras, todo atributo no primo es implicado por la clave primaria en una secuencia no transitiva.

¿Cómo normalizar una base de datos? Explicación con ejemplos

Para entender mucho mejor todo esto revisemos la siguiente tabla:

https://static.platzi.com/media/user_upload/Screen%20Shot%202017-10-25%20at%2016.38.16-b39c941b-3173-4434-8f5e-434974acfc90.jpg

Si nos damos cuenta esta tabla no cumple con el requisito que dice que todos los atributos deben ser atómicos, es decir que debemos descomponerlo en su mínima expresión.

Siguiendo los aspectos a considerar podríamos decir que nuestra tabla inicial se transformaría a:

https://static.platzi.com/media/user_upload/Screen%20Shot%202017-10-26%20at%2009.48.11-d4bc3e5e-aefc-499b-8c64-7cf1d77c0b4a.jpg

Con esto podríamos decir que nuestra tabla cumple con la primera Forma Normal (1FN). Ahora, si nos fijamos esta aun no cumple con los requisitos que pide la segunda Forma Normal (2FN).

Podríamos crear tablas separadas para cursos y para profesores y cada una de estas tendría su clave primaria y estarían relacionadas por una clave externa (Foreign Key).

Tabla de Cursos:

https://static.platzi.com/media/user_upload/Screen%20Shot%202017-10-25%20at%2017.05.50-a0d06cf0-b980-405e-9651-92a3135ffff0.jpg

Tabla Autores:

https://static.platzi.com/media/user_upload/Screen%20Shot%202017-10-25%20at%2017.16.33-a736dba8-3a4e-44f6-8961-1756d8514c07.jpg

Ahora nuestra tabla está en segunda Forma Normal (2FN).

Si detallamos nuestra tabla de cursos aún podríamos simplificarla, para esto podríamos extraer la columna de materiales y crear una nueva tabla para esto.

https://static.platzi.com/media/user_upload/Screen%20Shot%202017-10-26%20at%2010.12.59-e1de6e23-e0be-48ea-aa61-e5b0938d9a55.jpg

Con esto, nuestra tabla cumpliría con los requisitos de la tercera Forma Normal (3FN) y estaría lista 😃

Fuente: https://platzi.com/blog/normalizar-una-base-de-datos-y-no-morir-en-el-intento/

Compartelo en las redes sociales