Normalización de Base de Datos
Cuántas veces no vemos como algunos analista de base de datos comienzan a culpar al motor de base de datos porque las consultas son muy lentas o porque las transacciones se quedan muchas veces bloqueadas, entre muchas situaciones que hacen que las tareas del día a día sean cada día más tediosa.
- Pero, no se han preguntado ustedes, si puede ser un problema de diseño de la base de datos que viene arrastrándose hasta la aplicación que hace que nuestro sistema no funcione de forma correcta?
- No será que tenemos muchos registros redundante en nuestra base de datos, haciendo que esta ocupe más espacio del permitido?
Para responder algunas de esas preguntas, les voy a tratar el tema de normalización de base de datos, y como podemos corregir muchos errores en nuestros sistemas tomando las medidas de lugar al momento de diseñar un base de datos. Ahora que es la normalización, es un proceso que consiste en aplicar una grupo de reglas a las relaciones resultantes de la aplicación del modelo entidad-relación. Que nos facilita la normalización:
- Evitar incongruencia de datos, tipos de datos y nombres.
- Evitar datos redundantes.
- Obtener una mayor integridad de nuestros datos.
- Evitar inconvenientes con mantenimiento de datos.
Paso 1: 1ra. Forma Normal (1FN)
- Todas la tablas deben contener una llave primaria.
- Los campos en la tabla deben ser invisibles o mínimo (mejor conocido como atómicos).
- La tabla no debe contener atributos nulos (uno de los errores más cometidos, especialmente en actualizaciones de tablas)
De esta forma se deben eliminar los datos repetidos, y disminuir los fallos de errores por la inexistencia de un determinado dato.
Paso 2: 2da. Forma Normal (2FN)
En este paso se deben verificar las dependencias de las distintas tablas, donde no existan dependencias parciales, es decir cada datos (Contraint) debe tener una dependencia completa a una tabla definida en nuestra base de datos.
Paso 3: 3ra. Forma Normal (3FN)
Cada atributo que no se encuentre relacionado a otra tabla mediante dependencia, depende directamente de la llave primaria. En otras palabras, cualquier dato que no sea clave debe ser eliminado o movido a otra tabla separada.
Existen otros dos pasos de normalización 4FN y 5FN, pero no son muy usados por los analistas de datos, que buscan mejorar aún más la estructuración de una base de datos.
Notas: para mejorar el uso de las base de datos es recomendable crear base de datos cerradas, es decir, que no le permitan muchas libertades al desarrollador de obviar registros que pueden ser importantes o que permitan errores en la extracción o consulta de alguna información que no fue insertada.
Para más información sobre el tema, ver:
Análisis y Diseño de Sistemas
Kendall y Kendall
Capítulo 17, Normalización de Base de Datos
Pág. 607
Un libro viejo, pero muy bueno, a veces no es el gran conocimiento que tengas sobre un determinado motor de base de datos o que tan eficiente sea éste, sino, que tan bien puedes aplicar las reglas de análisis al momento de diseñar tu base de datos.
Comentarios
* La tabla no debe contener atributos nulos.
acaso que refiere podras decirlo mas detallado?
gracias
gracias