INTRODUCCIÓN
La normalización se podría
definir de una manera sencilla como el proceso de organizar y estructurar los
datos de forma que se minimice la redundancia. Este proceso se basa en un
conjunto de pautas, las reglas de normalización, que disminuyen el riesgo de
tener un diseño de base de datos defectuoso.
Estas reglas se aplican al
modelo relacional de la base de datos, obtenido (si eres disciplinado) a partir
del modelo entidad-relación. La verdad es que son bastante sencillas de
entender y aplicar, aunque a veces parece que la percepción que se tiene
respecto a ellas es que son complejas y algo enrevesadas.
OBJETIVOS
·
Evitar la redundancia de datos.
·
Proteger y dar un mejor soporte a la
integridad de los datos.
·
Eliminar las anomalías en los datos, tanto en
las actualizaciones como en las inserciones y los borrados.
·
Reducir en la medida de lo posible el
rediseño de la base de datos cuando ésta se amplía.
·
Hacer más entendible el modelo de datos a
quienes vayan a utilizarlo, puesto que se modeliza mejor la realidad, el
dominio del problema.
·
Huir de las ataduras con lenguajes
específicos para la consulta de datos
¿Qué
es la normalización?
La normalización es el
proceso mediante el cual se transforman datos complejos a un conjunto de
estructuras de datos más pequeñas, que además de ser más simples y más
estables, son más fáciles de mantener. También se puede entender la
normalización como una serie de reglas que sirven para ayudar a los diseñadores
de bases de datos a desarrollar un esquema que minimice los problemas de
lógica. Cada regla está basada en la que le antecede. La normalización se
adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como
un archivo o una tabla de la base de datos, era ineficiente y conducía a
errores de lógica cuando se trataban de manipular los datos.
La normalización también
hace las cosas fáciles de entender. Los seres humanos tenemos la tendencia de
simplificar las cosas al máximo. Lo hacemos con casi todo, desde los animales
hasta con los automóviles. Vemos una imagen de gran tamaño y la hacemos más
simple agrupando cosas similares juntas. Las guías que la normalización provee
crean el marco de referencia para simplificar una estructura de datos compleja.
Otra ventaja de la
normalización de base de datos es el consumo de espacio. Una base de datos
normalizada ocupa menos espacio en disco que una no normalizada. Hay menos
repetición de datos, lo que tiene como consecuencia un mucho menor uso de
espacio en disco.
El proceso de normalización
tiene un nombre y una serie de reglas para cada fase. Esto puede parecer un
poco confuso al principio, pero poco a poco se va entendiendo el proceso, así
como las razones para hacerlo de esta manera.
REGLAS DE NORMALIZACIÓN
– Regla 0: el
sistema debe ser relacional, base de datos y administrador de sistema. Ese
sistema debe utilizar sus facilidades relacionales (exclusivamente) para
manejar la base de datos.
– Regla 1: la
regla de la información, toda la información en la base de datos es
representada unidireccionalmente, por valores en posiciones de las columnas
dentro de filas de tablas. Toda la información en una base de datos relacional
se representa explícitamente en el nivel lógico exactamente de una manera: con
valores en tablas.
– Regla 2: la
regla del acceso garantizado, todos los datos deben ser accesibles sin
ambigüedad. Esta regla es esencialmente una nueva exposición del requisito
fundamental para las llaves primarias. Dice que cada valor escalar individual
en la base de datos debe ser lógicamente direccionable especificando el nombre
de la tabla, la columna que lo contiene y la llave primaria.
– Regla 3:
tratamiento sistemático de valores nulos, el sistema de gestión de base de
datos debe permitir que haya campos nulos. Debe tener una representación de la
“información que falta y de la información inaplicable” que es sistemática,
distinto de todos los valores regulares.
– Regla 4:
catálogo dinámico en línea basado en el modelo relacional, el sistema debe
soportar un catálogo en línea, el catálogo relacional debe ser accesible a los
usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura
de la base de datos (catálogo).
– Regla 5: la
regla comprensiva del su lenguaje de los datos, el sistema debe soportar por lo
menos un lenguaje relacional que:
Tenga una sintaxis lineal.
Puede ser utilizado de manera interactiva.
Puede ser utilizado de manera interactiva.
Soporte operaciones de
definición de datos, operaciones de manipulación de datos (actualización así
como la recuperación), seguridad e integridad y operaciones de administración
de transacciones.
– Regla 6: regla de actualización, todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema.
– Regla 7: alto nivel de inserción, actualización, y cancelación, el sistema debe soportar suministrar datos en el mismo tiempo que se inserte, actualiza o esté borrando. Esto significa que los datos se pueden recuperar de una base de datos relacional en los sistemas construidos de datos de filas múltiples y/o de tablas múltiples.
– Regla 8:
independencia física de los datos, los programas de aplicación y actividades del
terminal permanecen inalterados a nivel lógico cuandoquiera que se realicen
cambios en las representaciones de almacenamiento o métodos de acceso.
– Regla 9:
independencia lógica de los datos, los cambios al nivel lógico (tablas,
columnas, filas, etc.) no deben requerir un cambio a una solicitud basada en la
estructura. La independencia de datos lógica es más difícil de lograr que la
independencia física de datos.
– Regla 10:
independencia de la integridad, las limitaciones de la integridad se deben
especificar por separado de los programas de la aplicación y se almacenan en la
base de datos. Debe ser posible cambiar esas limitaciones sin afectar
innecesariamente las aplicaciones existentes.
– Regla 11:
independencia de la distribución, la distribución de las porciones de la base
de datos a las varias localizaciones debe ser invisible a los usuarios de la
base de datos. Los usos existentes deben continuar funcionando con éxito:
Cuando una versión
distribuida del SGBD se introdujo por primera vez
Cuando se distribuyen los
datos existentes se redistribuyen en todo el sistema.
– Regla 12: la
regla de la no subversión, si el sistema proporciona una interfaz de bajo nivel
de registro, a parte de una interfaz relacional, que esa interfaz de bajo nivel
no se pueda utilizar para subvertir el sistema, por ejemplo: sin pasar por
seguridad relacional o limitación de integridad. Esto es debido a que existen
sistemas anteriormente no relacionales que añadieron una interfaz relacional, pero
con la interfaz nativa existe la posibilidad de trabajar no relacionalmente.
Grados de normalización
Existen básicamente tres
niveles de normalización: Primera Forma Normal (1NF), Segunda Forma Normal
(2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias
reglas. Cuando una base de datos se conforma a un nivel, se considera
normalizada a esa forma de normalización. No siempre es una buena idea tener
una base de datos conformada en el nivel más alto de normalización, puede llevar
a un nivel de complejidad que pudiera ser evitado si estuviera en un nivel más
bajo de normalización.
En la tabla siguiente se describe breve mente en que consiste cada una de las reglas, y posteriormente se explican con más detalle.
Primera Forma Normal
La regla de la Primera Forma
Normal establece que las columnas repetidas deben eliminarse y colocarse en
tablas separadas.
Poner la base de datos en la
Primera Forma Normal resuelve el problema de los encabezados de columna
múltiples. Muy a menudo, los diseñadores de bases de datos inexpertos harán
algo similar a la tabla no normalizada. Una y otra vez, crearán columnas que
representen los mismos datos. La normalización ayuda a clarificar la base de
datos y a organizarla en partes más pequeñas y más fáciles de entender. En
lugar de tener que entender una tabla gigantesca y monolítica que tiene muchos
diferentes aspectos, sólo tenemos que entender los objetos pequeños y más
tangibles, así como las relaciones que guardan con otros objetos también pequeños.
REGLAS
» Tenemos que eliminar los
grupos repetidos.
» Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.
» Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.
Segunda Forma Normal
La regla de la Segunda Forma
Normal establece que todas las dependencias parciales se deben eliminar y
separar dentro de sus propias tablas. Una dependencia parcial es un término que
describe a aquellos datos que no dependen de la llave primaria de la tabla para
identificarlos.
Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan
la mayoría de los problemas de lógica. Podemos insertar un registro sin un exceso de datos en la mayoría de las tablas.
Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan
la mayoría de los problemas de lógica. Podemos insertar un registro sin un exceso de datos en la mayoría de las tablas.
REGLAS
» Determinar cuáles columnas
que no son llave no dependen de la llave primaria de la tabla.
» Eliminar esas columnas de
la tabla base.
» Crear una segunda tabla
con esas columnas y la(s) columna(s) de la PK de la cual dependen.
Tercera
Forma Normal
Una tabla está normalizada
en esta forma si todas las columnas que no son llave son funcionalmente
dependientes por completo de la llave primaria y no hay dependencias
transitivas. Comentamos
anteriormente que una dependencia transitiva es aquella en la cual existen columnas que no son llave que dependen de otras columnas que tampoco son llave.
anteriormente que una dependencia transitiva es aquella en la cual existen columnas que no son llave que dependen de otras columnas que tampoco son llave.
Cuando las tablas están en
la Tercera Forma Normal se previenen errores de lógica cuando se insertan o
borran registros. Cada columna en una tabla está identificada de manera única
por la llave primaria, y no debe haber datos repetidos. Esto provee un esquema
limpio y elegante, que es fácil de trabajar y expandir.
REGLAS
» Determinar las columnas
que son dependientes de otra columna no llave.
» Eliminar esas columnas de
la tabla base.
» Crear una segunda tabla con esas columnas y con la columna no llave de la cual son dependientes.
¿Qué
tan lejos debe llevar la normalización?
La siguiente decisión es
¿qué tan lejos debe llevar la normalización? La normalización es una ciencia
subjetiva. Determinar las necesidades de simplificación depende de nosotros. Si
nuestra base de datos va a proveer información a un solo usuario para un
propósito simple y existen pocas posibilidades de expansión, normalizar los
datos hasta la 3FN quizá sea algo exagerado. Las reglas de normalización
existen como guías para crear tablas que sean fáciles de manejar, así como
flexibles y eficientes. A veces puede ocurrir que normalizar los datos hasta el
nivel más alto no tenga sentido.
¿Se están dividiendo tablas sólo para seguir las reglas o estas divisiones son en verdad prácticas? Éstas son el tipo de cosas que nosotros como diseñadores de la base de datos, necesitamos decidir, y la experiencia y el sentido común nos pueden auxiliar para tomar la decisión correcta. La normalización no es una ciencia exacta, más bien subjetiva.
Existen seis niveles más de normalización que no se han discutido aquí. Ellos son Forma Normal BoyceCodd, Cuarta Forma Normal (4NF), Quinta Forma Normal (5NF) o Forma Normal de Proyección-Unión, Forma Normal de Proyección-Unión Fuerte, Forma Normal de Proyección-Unión Extra Fuerte y Forma Normal de Clave de Dominio. Estas formas de normalización pueden llevar las cosas más allá de lo que necesitamos. Éstas existen para hacer una base de datos realmente relacional. Tienen que ver principalmente con dependencias múltiples y claves relacionales.
CONCLUSIÓN
La cantidad de información
que se maneja actualmente en las empresas provoca que su gestión y
administración sea una tarea casi imposible de realizar. Gracias a la
informática, podemos administrar esta información de un modo sencillo, sin que el volumen de datos sea ya un
problema.
Las aplicaciones
informáticas nos facilitan este tipo de tareas y gracias a las reglas de
normalización podemos gestionar y crear una base de datos que sea cómoda para
la empresa y persona.
BIBLIOGRAFÍA
http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdf
https://medievalstrucos.wordpress.com/2013/07/18/12-reglas-de-codd-para-bases-de-datos-relacionadas/
https://es.wikipedia.org/wiki/12_reglas_de_Codd
OBSERVACIONES
·
El diseño lógico de
la base de datos, que incluye las tablas y sus relaciones, es la clave de una
base de datos relacional optimizada. Un buen diseño lógico de la base de datos
puede ser la base de un rendimiento óptimo de la aplicación y de la base de datos.
Un diseño lógico deficiente puede comprometer el rendimiento de todo el
sistema.
·
La normalización de
un diseño lógico de la base de datos implica la utilización de métodos formales
para separar los datos en varias tablas relacionadas. Una característica de una
base de datos normalizada es la existencia de varias tablas pequeñas con menos
columnas. En las bases de datos no normalizadas, existen menos tablas más
amplias con más columnas.
·
A veces, el diseño
lógico de la base de datos es fijo y su remodelación resulta inviable. No
obstante, incluso en estos casos puede normalizarse de forma selectiva una
tabla de gran tamaño para crear tablas más pequeñas.
No hay comentarios:
Publicar un comentario