Les recomiendo ver ésta entrada del año pasado para tener un panorama de lo que hablaremos aquí.
No obstante comenzaré haciendo la introducción, y es que si hablamos de normalización usted debe comprender la importancia de normalizar su base de datos, cuando usted diseña un sistema x, y diagrama la base de datos, es probable que cometa una cierta cantidad de errores estúpidos que lo lleven a tener una base de datos inestable, inconsistente, y con varios problemas.
Normalizar la base de datos es como comprar un seguro a largo plazo, con una base de datos normalizada usted se asegura que en un futuro no tendrá problemas típicos de las bases de datos, cuando usted tenga la base de datos rellena de datos.
Tenga en cuenta la importancia de normalizar la base de datos al comienzo antes de tener datos cargados, y es que si luego tenemos la base de datos rellena de registros, hacer cambios puede conllevar la ardua tarea de alterar una cantidad significativa de registros, por lo que llevará a un costo muy superior al que puede tener normalizar la base de datos de entrada.
Para poder comprenderlo puede ver la imagen del post, notará que hay niveles de normalización, y cuanto más superior sea el nivel de normalización de la base de datos mejor será su base de datos.
El primer nivel es el 1FN. Debe saber que cuando hablamos de normalizar la base de datos, nos referimos a normalizar cada una de las tablas de la base de datos, y todas estas reglas o formas normales son para procesarlas en tablas particulares.
Una tabla está en 1FN si y solo si:
Una tabla está en Primera Forma Normal si:
- 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.
- Los Campos no clave deben identificarse por la clave (Dependencia Funcional)
El segundo punto hace referencia a que la tabla tiene una clave primaria que es clave primaria porque si valor no se puede repetir y es único, lo que quiere decir es que no habrá dos registros con el mismo valor para ese campo llamado clave primaria.
El tercer punto es bastante obvio, la clave primaria no puede contener un valor nulo, como puede pasar en otros campos, en la clave primaria no puede haber un valor nulo, tiene que haber un valor x.
El cuarto punto hace referencia a que cada campo debe estar basado en la clave primaria, en otras palabras, supongamos que tengo una tabla usuarios y yo pongo de clave primaria color de pelo, y el resto de los campos son dni, nombre, apellido, etc. esto sería completamente erróneo, ya que por el color de pelo no puedo deducir el nombre, el apellido y el dni de la persona, en cambio si pusiera de clave primaria DNI, esto sería correcto ya que el nombre, el apellido y el color de pelo se puede obtener basándose en el DNI, entonces todos los demás campos están identificados por esa clave primaria.
Esto es, a grandes rasgos, los requisitos que debe tener una tabla para conciderarse estar en 1FN.
Cada forma normal tiene un objetivo, el objetivo de esta forma normal es eliminar los valores repetidos dentro de una Base de Datos.
Un saludo para todos los lectores y espero les agrade la entrada.