Está en la página 1de 8

Normalizar una base de datos: Ejemplo Completo » BaulPHP

 Inicio/MYSQL La base de datos/Normalizar una base de datos: Ejemplo Completo

MYSQL La base de datos

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.

¿Que hay dentro?


 1 ¿Qué sucede si mi base de datos no está normalizada?
 2 ¿Cuál sería la solución para estos inconvenientes?
 3 Normalizar una base de datos
 4 A) Primer ejemplo de normalización: Tabla Usuarios
o 4.1 La Formalización CERO
o 4.2 ¿Qué errores que podemos encontrar en la tabla anterior?
 4.2.1 Primer nivel de Formalización/Normalización.
 4.2.2 Segundo nivel de Formalización / Normalización
 4.2.3 Tercer nivel de Formalización / Normalización
 5 B) Segundo ejemplo de normalización: Tabla Cursos
o 5.1 ¿Qué es la Normalización de una base de datos?
o 5.2 ¿Por qué se normaliza una base de datos?
o 5.3 La primera forma Formalización
 5.3.1 ¿Cómo saber si lo hemos realizado correctamente?
o 5.4 La segunda forma Formalización
o 5.5 La tercera forma Formalización
o 5.6 Ejemplo de tabla con formalización cero:
o 5.7 La solución: Formalizar la Tabla Cursos
 5.7.1 Tabla de Cursos:
 5.7.2 Tabla de Docente:
 5.7.3 Tabla de Manual:
o 5.8 La segunda fase de formalización
 6 CONCLUSIÓN DE NORMALIZAR UNA BASE DE DATOS
¿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.

Relacionado  Buscador jQuery PHP MySQL usando Datatables

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


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
¿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

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.

Relacionado  Asignar codificación UTF-8 con MySQLi PHP

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

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.

Relacionado  Buscador avanzado con PHP y MySQL: Múltiples palabras

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

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

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

La segunda fase de formalización


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

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.

También podría gustarte