normalizaciÓn de base de datos flor elena canales alvarado autor:

14
NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Upload: melchor-garza

Post on 23-Jan-2016

256 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

NORMALIZACIÓN DE BASE DE DATOS

Flor Elena Canales Alvarado

Autor:

Page 2: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

La normalización es el proceso mediante el cual se transforman y organizan datos complejos a un conjunto de estructuras de datos más pequeñas.

Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas, tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes.

Page 3: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:
Page 4: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

• La cantidad de espacio requerido para almacenar los datos es la menor posible.

• La facilidad para actualizar la relación es la mayor posible.

• La explicación de la base de datos es la más sencilla posible.

• Evita anomalías en la actualización.

Page 5: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

En la siguiente tabla se describe brevemente en que consiste cada una de las formas normales.

Page 6: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Queremos crear una tabla con la información de usuarios y los datos a guardar son el nombre, la empresa, la dirección de la empresa y algún e-mail, o bien URL si las tienen. En principio comenzarías definiendo la estructura de una tabla como esta:

Observa los campos url1 y url2. ¿Qué haremos cuando en nuestra aplicación necesitemos una tercera url3? añadir otro campo/columna a tu tabla seria un poco complicado, obviamente se pretende crear un sistema funcional que pueda crecer y adaptarse fácilmente a los nuevos requisitos. Demos un vistazo a las reglas del Primer Nivel de Normalización y las aplicaremos a nuestra tabla.

Page 7: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Permite:

• Eliminar los grupos repetitivos de las tablas individuales.

• Crear una tabla separada por cada grupo de datos relacionados.

• Identificar cada grupo de datos relacionados con una clave primaria.

Page 8: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Estamos rompiendo la primera regla cuando repetimos los campos url1 y url2. ¿Qué pasa con la tercera regla, la clave primaria?. La regla tres básicamente significa que tenemos que poner un campo tipo contador autoincrementable para cada registro. De otra forma.

¿Qué pasaría si tuviéramos dos usuarios llamados Joel y queremos diferenciarlos?. Una vez que se aplica la primera FN nos encontramos con la siguiente tabla:

Page 9: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Ahora diremos que nuestra tabla está en primera FN. Hemos solucionado el problema de la limitación del campo URL, sin embargo, vemos otros problemas.

Cada vez que introducimos un nuevo registro en la tabla usuarios, tenemos que duplicar el nombre de la empresa y del usuario. No sólo nuestra BD crecerá muchísimo, sino que será muy fácil que la BD se corrompa si escribimos mal alguno de los datos redundantes. Aplicaremos pues el segundo nivel de F/N.

Page 10: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Permite:

1. Relacionar estas tablas mediante una clave externa.

2. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.

Page 11: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Hemos separado el campo url en otra tabla, de forma que podemos añadir más en el futuro sin tener que duplicar los demás datos. También vamos a usar nuestra clave primaria para relacionar estos campos:

UsuarioUserId Nombre Empresa Direccion_Empresa1 Joel JAR Zaragoza1 Joel JAR Zaragoza2 Pedro ZEM Hidalgo2 Pedro ZEM Hidalgo

Urls

UrlId RelUserId url

1 1 jar.com

2 1 zem.com

3 2 jar.com

4 2 zem.com

Sean creado tablas separadas y la clave primaria en la tabla usuarios, UserId, esta relacionada ahora con la clave externa en la tabla Urls, RelUserId.

Page 12: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

¿Pero que ocurre cuando queremos añadir otro empleado a la empresa JAR? Ahora tenemos el nombre de la empresa y su dirección duplicándose, otra situación que puede inducirnos a introducir errores en nuestros datos. Así que tendremos que aplicar el tercer nivel de F/N.

Page 13: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

 1. Eliminar aquellos campos que no dependan de la clave. 

Nuestro nombre de empresa y su dirección no tienen nada que ver con el campo UserId, así que tienen que tener su propio EmpresaId:

Page 14: NORMALIZACIÓN DE BASE DE DATOS Flor Elena Canales Alvarado Autor:

Ahora tenemos la clave primaria EmprId en la tabla empresas relacionada con la clave externa RelEmpresaId en la tabla usuarios, y podemos añadir 200 usuarios mientras que sólo tenemos que insertar el nombre ‘JAR' una vez.