lunes, 14 de agosto de 2017

REGLAS DE NORMALIZACIÓN

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.
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.
Resultado de imagen para formas de normalizacion de base de datos

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.

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