Base de Datos Normalizacion

18
Normalización Normalización de Bases de de Bases de Datos Datos

Transcript of Base de Datos Normalizacion

Page 1: Base de Datos Normalizacion

Normalización Normalización de Bases de de Bases de

DatosDatos

Page 2: Base de Datos Normalizacion

NormalizaciónNormalizaciónLa normalización es el proceso de organizar

los datos en una base de datos. Creación de tablas y que establece relaciones entre aquellas tablas según reglas diseñadas para proteger los datos.

Los datos redundantes desperdician espacio en disco y crean problemas de mantenimiento. Si es necesario cambiar datos que aparecen en más de un sitio, el cambio deberá ser exactamente igual en todos estos sitios. Por ejemplo, un cambio de dirección de un cliente es mucho más fácil de implementar si los datos sólo se almacenan en la tabla Clientes y en ningún otro lugar de la base de datos.

Page 3: Base de Datos Normalizacion

NormalizaciónNormalización ¿Qué es una "dependencia incoherente"? Aunque

para un usuario puede resultar intuitivo buscar la dirección de un determinado cliente en la tabla Clientes, es posible que no tenga sentido buscar en esa misma tabla el sueldo del empleado que atiende a dicho cliente. El salario del empleado está relacionado con el empleado (es decir, existe una dependencia entre ambos), por lo que debe moverse a la tabla Empleados. Las dependencias incoherentes pueden dificultar el acceso a los datos, ya que la ruta de acceso a los mismos puede estar rota o no encontrarse.

Existen unas cuantas reglas para la normalización de bases de datos. Cada regla se denomina "forma normal" Si se cumple la primera regla, se dice que la base de datos está en la "primera forma normal" Si se cumplen las tres primeras reglas, se considera que la base de datos está en la "tercera forma normal" Aunque existen otros niveles de normalización, se considera que la tercera forma normal es el máximo nivel necesario para la mayoría de las aplicaciones.

Page 4: Base de Datos Normalizacion

Primera forma normalPrimera forma normalEliminar grupos repetidos en tablas

individuales.

Crear una tabla diferente para cada conjunto de datos relacionados.

Identificar cada conjunto de datos relacionados mediante una clave principal.

No utilizar varios campos en una única tabla para almacenar datos similares.

Page 5: Base de Datos Normalizacion

EjemploEjemploArtículo Prov1 Prov2 Prov3

Maíz - Granja -

Arroz Casita - -

Código Proveedor

145 Casita

154 Granja

En lugar de hacer varios campos para los proveedores en una sola tabla, hacemos otra tabla con el campo proveedor y colocamos varios registros para los proveedores (tabla de en medio). Sustituimos la tabla superior de la izquierda por la tabla inferior.

Artículo Cod.Prov

Maíz 154

Arroz 145

Page 6: Base de Datos Normalizacion

Segunda forma normalSegunda forma normalCrear tablas independientes para

conjuntos de valores que se apliquen a varios registros.

Relacionar dichas tablas mediante una clave externa.

Los registros tan sólo deben depender de la clave principal de una tabla (si es necesario, puede ser una clave compuesta).

Page 7: Base de Datos Normalizacion

EjemploEjemploPiense en la dirección de un cliente en

un sistema de contabilidad. La dirección es necesitada por la tabla Clientes pero por las tablas Pedidos, Facturas y Cuentas a cobrar también. En lugar de almacenar la dirección del cliente como una entrada diferente en cada tabla, almacénela en un único lugar, ya sea en la tabla Clientes o en una tabla de direcciones independiente.

Page 8: Base de Datos Normalizacion

Tercera forma normalTercera forma normal Eliminar los campos que no dependan de la clave. Los

valores de un registro que no forman parte de la clave de dicho registro no pertenecen a esa tabla. En general, siempre que el contenido de un grupo de campos se puede aplicar a más de un registro de la tabla, debe tener en cuenta la posibilidad de incluir dichos campos en una tabla independiente.

EXCEPCIÓN: No es práctico siempre cumplir la forma tercera normal teóricamente conveniente. Si tiene una tabla Clientes y desea eliminar todas las posibles dependencias entre campos, debe crear tablas independientes para ciudades, códigos postales, representantes de ventas, clases de clientes y cualquier otro factor que pueda aparecer duplicado en varios registros. En teoría, la normalización merece la pena. Sin embargo, la utilización de un gran número de tablas pequeñas puede perjudicar el rendimiento o superar la capacidad de memoria y de archivos abiertos del sistema.

Page 9: Base de Datos Normalizacion

Otras formas normalesOtras formas normalesOtras formas de normalizaciónExiste una cuarta forma normal,

llamada también Forma normal de Boyce Codd (BCNF), y una quinta forma normal, pero pocas veces se consideran prácticas en un diseño. La omisión de estas reglas puede dar como resultado una tabla que no sea perfecta, pero no debería afectar a su funcionamiento

Page 10: Base de Datos Normalizacion

Haga esta tabla en Access para normalizarla. La tabla se llama alumnos

Page 11: Base de Datos Normalizacion

Primera forma normal: Ningún Primera forma normal: Ningún grupo repetidogrupo repetido

Como cada alumno se encuentra inscrito en varios cursos, estos deben aparecer en una tabla independiente. Los campos curso1, curso2, curso3 de los registros anteriores indican que existe un problema en el diseño.

Page 12: Base de Datos Normalizacion
Page 13: Base de Datos Normalizacion

Segunda forma Normal: Elimine Segunda forma Normal: Elimine datos redundantesdatos redundantesCurso no depende del carné (que

será nuestra clave principal) por lo que la tabla no esta en la segunda forma normal. Debemos separar la información de los cursos-alumnos a otra tabla. Haremos la tabla asignaciones.

Page 14: Base de Datos Normalizacion

Asignaciones

Tabla alumnos luego del cambio

Page 15: Base de Datos Normalizacion

Tercera forma Normal: Eliminar Tercera forma Normal: Eliminar datos que no dependen de la datos que no dependen de la claveclaveDe el último ejemplo la oficina

del asesor depende funcionalmente del atributo asesor. La solución es mover dicho atributo de la tabla alumnos a la tabla personal, como se muestra a continuación.

Page 16: Base de Datos Normalizacion

Tabla Alumno

Tabla Personal

Page 17: Base de Datos Normalizacion

NormalizadaNormalizada

Page 18: Base de Datos Normalizacion

Hemos llegado finalmente a una base de datos bien organizada en la cual podemos actualizar o cambiar los datos almacenados fácilmente y de una manera ordenada sin alterar los demás registros.