Portada » MYSQL La base de datos » Normalizar una base de datos: Ejemplo Completo

Normalizar una base de datos: Ejemplo Completo

Normalizar una base de datos. La normalización de Bases de Datos es un factor muy importante en la creación de páginas web dinámicas y/o sistemas web. Sin embargo, es un proceso de organización que se basa en optimizar nuestro sistema hacia el futuro y no tenga ningún inconveniente cuando nuestra base de datos contenga millones de registros.

¿Qué sucede si mi base de datos no está normalizada?

Primeramente, si tus tablas no están correctamente optimizadas y/0 normalizadas, a largo plazo te pueden causar muchos problemas a la hora de realizar consultas SQL en el código PHP para extraer los datos que necesitas mostrar en el FRONT-END.

¿Cuál sería la solución para estos inconvenientes?

En este punto tenemos que analizar lo que nos dice la normalización de base de datos y es cumplir con el requisito que dice que todos los atributos deben ser atómicos, es decir que debemos descomponerlo en su mínima expresión la base de datos.

Normalizar una base de datos

Para lograr este objetivo tenemos que seguir varios pasos o procesos. Por lo tanto, en este artículo mostraremos dos ejemplos de normalización de base de datos.

Normalizar una base de datos Ejemplo Completo
Normalizar una base de datos Ejemplo Completo

A) Primer ejemplo de normalización: Tabla Usuarios

En este ejemplo vamos a suponer que queremos crear una tabla con la información de usuarios de una empresa, y las columnas para almacenar la información son: nombre, la empresa, la dirección, e-mail, o bien URL. Por lo tanto, en primera instancia comenzaríamos definiendo la siguiente estructura de tabla.

La Formalización CERO

La base de datos que presento esta tabla a continuación:

Es el proceso de formalización de una tabla que contiene varios datos sin ninguna regla o especificación técnica de normalización.

Formalización Cero
Formalización Cero

¿Qué errores que podemos encontrar en la tabla anterior?

Primeramente, observa los campos url1 y url2, ¿Qué haremos cuando se necesite una tercera url?

Entonces surgen alternativas de solución para este problema se debe tener las tres reglas de normalización. A continuación, veremos las reglas de normalización.

Primer nivel de Formalización/Normalización.

  1. Eliminar los campos repetitivos de las tablas individuales.
  2. Generar una tabla separada por cada campo de datos relacionados.
  3. Identificar cada campo de datos relacionados con una clave primaria.

Segundo nivel de Formalización / Normalización

  1. Crear tablas separadas para aquellos campos que se aplican a varios registros.
  2. Relacionar estas tablas mediante una clave foránea.

Tercer nivel de Formalización / Normalización

  1. Eliminar aquellos campos que no dependan de la clave.

Aquí les dejare un ejemplo completo de normalización de la tabla usuarios. Sin embargo, se logró separando en varias tablas: Usuarios, empresas, urls. Ahora, se procedió a relacionar de uno a muchos haciendo uso de las claves primarias y foráneas.

Tabla Normalizada MySQL
Tabla Normalizada MySQL

Ahora tenemos la clave primaria emprId en la tabla “empresa” relacionada con la clave foránea con recEmpresaId en la tabla usuarios, y podemos añadir 500 usuarios mientras que sólo tenemos que insertar el nombre de un registro ‘ABC‘ una sola vez.

B) Segundo ejemplo de normalización: Tabla Cursos

Para normalizar una tabla en este segundo ejemplo tomaremos una tabla llamada Cursos, veamos a continuación.

Tabla Normalizacion Cero
Tabla Normalizacion Cero

Como podemos apreciar esta tabla posee una «formalización cero«, es decir, que está mal estructurada y tendrá errores a futuro cercano.

Recordemos que el proceso de normalización es muy sencillo, veamos cómo podemos formalizar una tabla.

¿Qué es la Normalización de una base de datos?

La normalización de una base de datos relacional (Clave primaria, clave foránea) es un proceso técnico que se descifra en aplicar normas o reglas en una base de datos. Por lo tanto, aplicando estas reglas evitara en un futuro las inconsistencias al realizar consultas SQL.

¿Por qué se normaliza una base de datos?

  • Para evitar la redundancia de datos en la tabla
  • Proteger los datos (información)
  • Evitar problemas de actualización de los datos en las tablas (consultas)

Importante.- Para afirmar que nuestra base de datos está normalizada deben de apreciar que se aplicaron los 3 niveles de normalización. Veamos a continuación.

La primera forma Formalización

Este proceso es el principal y trata de completar unos pasos o procesos que a continuación detallaremos.

  • Eliminar los campos repetitivos de las tablas individuales.
  • Crear una tabla separada por cada campo o columna de datos relacionados.
  • Identificar cada campo de datos relacionados con una clave primaria

¿Cómo saber si lo hemos realizado correctamente?

Para asegurarnos que la normalización esta correcta, debemos considerar los siguientes aspectos:

  • Atributos o datos deben ser atómicos. Un atributo es atómico si los elementos son indivisibles, mínimos en su expresión.
  • La tabla debe de contener una clave primaria única.
  • La clave primaria no debe de contener atributos nulos. Podemos darle solución con la opción (Auto incremento)
  • Nuestra tabla 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 en las consultas SQL.
  • La tabla normalizada no puede tener múltiples valores en una determinada columna.
  • Los datos deben de ser atómicos.

La segunda forma Formalización

Ya pasamos a la segunda fase y debemos cumplir los siguientes puntos:

  • Crear tablas separadas para aquellos grupos de datos que se aplican a varios
    registros.
  • Relacionar estas tablas mediante una clave foránea.

Para asegurarnos que estamos en la segunda fase, tenemos que haber cumplido la primera fase y sus pasos. Además, si sus atributos no principales dependen de forma completa de la clave principal de una determinada tabla.

La tercera forma Formalización

Obviamente en este paso ya deberíamos haber cumplido la primera y segunda forma. A continuación, veamos los pasos para completar el proceso de normalización.

  • Eliminar aquellos campos que no dependan de la clave primaria.
  • Ninguna columna puede depender de una columna que no tenga una clave primaria.
  • No puede haber datos derivados.

Ejemplo de tabla con formalización cero:

Vamos a darle solución a esta tabla llamada «CURSOS» para entender mucho mejor todo el proceso de normalización.

A simple vista podemos apreciar que esta tabla no cumple con el requisito mínimo de normalización que dice que toda la información deben de ser atómicos, es decir que debemos de descomponerlo en su mínima expresión de datos.

La solución: Formalizar la Tabla Cursos

La primera fase es crear tablas separadas para Cursos, para docentes, para manuales y cada una de estas tendría su clave primaria y estarían relacionadas por una clave foránea (Foreign Key).

Tabla de Cursos:

Esta tabla posee el nombre del curso y está relacionada a manualId y docenteId

 

Normalizar una base de datos: Tabla Cursos
Normalizar una base de datos: Tabla Cursos

Tabla de Docente:

Recudiendo en su mínima expresión, separando en apellidos paternos, apellidos maternos,  nombres y fecha de registro.

Normalizar una base de datos: Tabla Docentes
Normalizar una base de datos: Tabla Docentes

Tabla de Manual:

Esta tabla está relacionada con la «tabla cursos» de uno a muchos mediante clave primaria.

Normalizar una base de datos: Tabla Manuales
Normalizar una base de datos: Tabla Manuales

La segunda fase de formalización

Es relacionar las tablas mediante una clave primaria y clave foránea.

Normalizar una base de datos
Normalizar una base de datos

Para terminar debemos de eliminar aquellos campos que no dependan de la clave y con esto, nuestra tabla cumpliría con los requisitos de la Tercera forma de normalización y estaría lista para trabajar.

CONCLUSIÓN DE NORMALIZAR UNA BASE DE DATOS

En este artículo hemos expuesto dos ejemplos para normalizar una base de datos y le hemos dado una solución. Sin embargo, quiero comunicarte que el proceso de normalización es muy importante a corto y largo plazo si estamos realizando un proyecto online.

Desde un inicio ya se debe de estar creando tablas relacionales aplicando estos procesos de formalización, para así evitar dolores de cabeza en un futuro cercano.

Espero que esta breve explicación les ayude a normalizar sus tablas en su base de datos.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 3.4 / 5. Recuento de votos: 8

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad