normalizacion de base de datos

24
La Normalizació n de Base de Datos.

Upload: erivan-m-ovando

Post on 25-Jun-2015

1.397 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Normalizacion de base de datos

La Normalización de Base de Datos.

Page 2: Normalizacion de base de datos

¿Qué significa Normalización de Base

de datos?

¿Qué significa Normalización de Base

de datos?

Page 3: Normalizacion de base de datos

La normalización es el proceso de organizar los datos en una base de datos. Esto incluye la creación de tablas y que establece relaciones entre aquellas tablas según reglas diseñadas para proteger los datos y hacer la base de datos que es más flexible al eliminar redundancia y dependencia incoherente

Page 4: Normalizacion de base de 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 5: Normalizacion de base de datos

Normalización

Objetivo elegir “buenas” estructuras de relaciones

Expresar formalmente las razones por las que una agrupación de atributos es mejor que otra

permitiendo

Page 6: Normalizacion de base de datos

Aspectos importantes a Aspectos importantes a considerar a la hora de diseñarconsiderar a la hora de diseñar

1. Semántica de los atributos

2. Cada atributo debe contener un único valor

3. Reducción de valores redundantes en las tuplas

Page 7: Normalizacion de base de datos

Descripción breve de cada regla

Page 8: Normalizacion de base de datos

Primera Forma Normal• Eliminar 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 9: Normalizacion de base de datos

Para realizar el seguimiento de un artículo de inventario que puede provenir de dos orígenes, un registro del inventario puede contener campos para el Código de proveedor 1 y el Código de proveedor 2.

¿Qué pasa si agregamos un tercer campo?La solución no es agregar un campo; hace falta modificar

el programa y la tabla. En su lugar, almacene todas las informaciones de proveedor en una tabla independiente denominada Proveedores entonces en lugar de utilizar los campos proveedor 1, proveedor 2, etc. Utilizamos un solo campo CódigoProveedor relacionado a la tabla proveedores

Ejercicio 1F

Page 10: Normalizacion de base de datos

Artículo Prov1 Prov2 Prov3

Maíz - Granja -

Arroz Casita - -

¡Incorrecta!

Page 11: Normalizacion de base de datos

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

Código Proveedor

145 Casita

154 Granja

Artículo Cod.Prov

Maíz 154

Arroz 145

Page 12: Normalizacion de base de datos

Segunda forma normal

• Crear 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 13: Normalizacion de base de datos

Ejemplo 2FNpiense 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 14: Normalizacion de base de datos

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.

Page 15: Normalizacion de base de datos

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 16: Normalizacion de base de datos

Ejemplo tabla Access para normalizarla. La tabla se llama alumnos

Page 17: Normalizacion de base de datos

Primera forma normal: Ningún grupo Primera forma normal: Ningún grupo repetidorepetido

• 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 18: Normalizacion de base de datos
Page 19: Normalizacion de base de datos

Segunda forma Normal: Elimine datos Segunda forma Normal: Elimine datos redundantesredundantes

• Curso 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 20: Normalizacion de base de datos

Asignaciones

Tabla alumnos luego del cambio

Page 21: Normalizacion de base de datos

Tercera forma Normal: Eliminar datos Tercera forma Normal: Eliminar datos que no dependen de la claveque no dependen de la clave

• De 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 22: Normalizacion de base de datos

Tabla Alumno

Tabla Personal

Page 23: Normalizacion de base de datos
Page 24: Normalizacion de base de datos

Conclusión

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