clase 6 - normalización

25
Normalización de Base de Datos Ing. Eddie Malca Vicente [email protected] [email protected] @emalca /iluminatic

Upload: eddie-malca

Post on 13-Jun-2015

3.682 views

Category:

Technology


0 download

DESCRIPTION

Clase 6 del Curso de Administración de Base de Datos

TRANSCRIPT

Page 1: Clase 6  - Normalización

Normalización de Base de Datos

Ing. Eddie Malca [email protected]

[email protected]

@emalca

/iluminatic

Page 2: Clase 6  - Normalización

Introducción

• El diseño de base de datos tiene como objetivo obtener una serie de esquemas que permitan almacenar información, sin redundancia y de fácil acceso.

• Las formas normales permiten lograr un buen diseño de base de datos cumpliendo ciertas reglas.

• Para esto se necesita información acerca del problema que se esté modelando. Parte de esta información se encuentra en un diagrama E-R, pero se necesita información adicional.

Page 3: Clase 6  - Normalización

Normalización

• El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas en el modelo Emodelo E--RR (entidad-relación).

• Las bases de datos relacionales se normalizan para:Evitar la redundancia de los datos. Evitar problemas de actualización de los datos en las tablas. Proteger la integridad de los datos.

• En el modelo relacional es frecuente llamar tabla a una relación, la cual tiene que cumplir con algunas restricciones:- Cada columna debe tener su nombre único. - No puede haber dos renglones iguales. No se permiten los

duplicados. - Todos los datos en una columna deben ser del mismo tipo.

Page 4: Clase 6  - Normalización

Teoría de la Normalización

• Técnica formal de análisis y organización de datos; trata de evitar la redundancia y anomalías de actualización.

• Introduce formalización en el diseño lógico de base de datos relacionales.

• Además permite mecanizar parte del proceso al disponer de instrumentos algorítmicos de ayuda al diseño.

• Proceso de normalización: disminuye las anomalías de actualización, pero penaliza las consultas (combinación consume muchos recursos, las consultas demoran más en dar resultados).

Page 5: Clase 6  - Normalización

Las Formas normales

• Un esquema de relación está en una determinada forma normal si satisface un determinado conjunto específico de restriccionesdefinidas sobre los atributos del esquema (dependencias).

– 1ª FN (Codd, 1970)• Concepto de relación normalizada.

– 2ª, 3ª FN (Codd, 1970), FNBC (Boyce/Codd, 1974)• Basadas en análisis de dependencias funcionales.

– 4ª FN. Fagin, 1977• Basada en análisis de dependencias multivaluadas.

– 5ª FN. Fagin, 1979• Basada en análisis de dependencias de proyección /

combinación.

Page 6: Clase 6  - Normalización

Relaciones en 5ªFN

Relaciones en 4ªFN

Relaciones en FNBC

Relaciones en 3ªFN

Relaciones en 2ªFN

Relaciones normalizadas

Relaciones

Formas normales

Page 7: Clase 6  - Normalización

Normalización de un esquema de BD

Page 8: Clase 6  - Normalización

Ejemplo 1

• Estamos en un servicio de biblioteca y queremos llevar el control del préstamo que incluya los siguientes datos:

• Información sobre el usuario del servicio, datos del libro y la información sobre el préstamos que se realiza.

Page 9: Clase 6  - Normalización

Diagrama E-R para el ejemplo

• Estamos en un servicio de biblioteca y queremos llevar el control del préstamo que incluya los siguientes datos:

• Información sobre el usuario del servicio, datos del libro y la información sobre el préstamos que se realiza.

usuario libro

Existe una relación muchos a muchos que hay que romper.

Page 10: Clase 6  - Normalización

Primera Forma Normal

• En una relación (tabla) no pueden existir grupos de repetición, es decir, un atributo no puede tomar más de un valor del dominio subyacente:

• Considerando la entidad usuario, sus atributos son:i_usuario#, n_usuario, i_libro, d_prestamo, d_entrega

• Y considerando la entidad libro, sus atributos son:i_libro#, n_título, n_editorial, n_país, d_año

• La entidad usuario, presenta el siguiente problema: cada vez que un usuario pida un libro hay que escribir su número de usuario (i_usuario) y su nombre (n_usuario), además en la realidad se tendrán muchos datos más de los usuarios de la biblioteca.

• ¿Qué problemas puede traer esto?• Hacer una tabla con datos y ver que pasa

Page 11: Clase 6  - Normalización

3/V/072/IV/07Qa76.9A. Ramírez5678

13/III/073/III/07Qa76.893J. Perez3435

13/X/075/X/07Qa76.9J. Perez3435

13/V/0725/IV/07Qa76.9J. Perez3435

d_entregad_prestamoi_libron_usuarioi_usuario

La Tablita

Page 12: Clase 6  - Normalización

Aplicando la Primera Forma Normal

1. Identificar “grupos de repetición”. En el ejemplo el “grupo de repetición” es lo que está en rojo: i_usuario#, n_usuario, i_libro, d_prestamo, d_entrega

2. Eliminar “grupos de repetición”. Para poderlos eliminar se crea una nueva tabla con una llave primaria compuesta, una parte es la llave primaria de la tabla original (i_usuario) y la otra parte es la llave primaria del grupo de repetición (i_libro), las entidades quedan así:

usuario (i_usuario#, n_usuario)prestamo (i_usuario#, i_libro#, d_prestamo, d_entrega)– De una entidad se crearon 2 entidades– La entidad libro queda iguallibro(i_libro#, n_título, n_editorial, n_país, d_año)

Page 13: Clase 6  - Normalización

Segunda Forma Normal

• Establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas.

• Una dependencia parcial es un atributo que no depende completamente de la llave primaria. Normalmente se presenta cuando la llave primaria es compuesta, es decir, que está formada por dos atributos.

• Analizando la entidad préstamo que es la que tiene la llave primaria compuesta:prestamo (i_usuario#, i_libro#, d_prestamo, d_entrega)

• En este ejemplo todas las entidades se encuentran en 2 FN, ya que los atributos d_prestamo y d_entrega dependen completamente de la llave primaria compuesta y no de una parte de ésta.

Page 14: Clase 6  - Normalización

Aplicando la Segunda Forma Normal

• Cuando alguna entidad se encuentre en 2FN, seránecesario:

1. Determinar cuáles atributos no dependen de la llave primaria compuesta de la tabla.

2. Eliminar esas columnas de la tabla base. 3. Crear una segunda tabla con esos atributos cuya llave

primaria será el atributo del cual dependen.

Page 15: Clase 6  - Normalización

Tercera Forma Normal

• Una relación está en 3FN si no hay dependencias transitivas. Una dependencia transitiva es aquella en la cual existen columnas (atributos) que dependen de otras columnas (atributos) que tampoco son llave.

• En el ejemplo, estas dos entidades están en 3FN:usuario (i_usuario#, n_usuario)prestamo (i_usuario#, i_libro#, d_prestamo, d_entrega)

• Pero en esta entidad se puede aplicar la 3FNlibro(i_libro#, n_título, n_editorial, n_país, d_año)

Page 16: Clase 6  - Normalización

Aplicando la Tercera Forma Normal

Los pasos a seguir son:1. Determinar que columnas son dependientes de otra columna no

llave. - En el ejemplo el atributo n_pais y d_año dependen del atributo

no llave n_editorial, por lo tanto se puede sacar a otra entidad.2. Eliminar esas columnas de la tabla base3. Crear otra tabla con esas columnas y con la columna no llave de

la cual son dependientes, crear una llave primaria para esta tabla.- En el ejemplo, a partir de la entidad libro quedarían las siguientes dos entidades:

libro(i_libro#, n_título, n_editorial, n_país, d_año)editorial(i_editorial#, n_editorial, n_editorial, n_país, d_año)

Page 17: Clase 6  - Normalización

Ejemplo 2

• Se requiere tener la información sobre los alumnos de los distintos programas de postgrado de la UPCI. Sus datos generales. Que grado cursan (especialidad, maestría y/o doctorado) y el nombre del programa, que materias han cursado, que calificación llevan en cada una de ellas, en que período la cursaron y con que profesor. De cada materia se necesita saber clave, su área y el número de créditos.

Page 18: Clase 6  - Normalización

Metodología

• Identificar entidad(es): Definir objetos como personas, lugares o conceptos sobre los que se quiere tener información.

• Identificar atributos: Definir las “propiedades” de cada entidad

• Determinar llave primaria.

Page 19: Clase 6  - Normalización

Comencemos

• ENTIDADES: alumno• ATRIBUTOS: expediente, nombre, clave_mat, calificacion,

trimestre, creditos, materia• LLAVE PRIMARIA: expediente• La entidad resultante es:

alumno(expediente#, nombre, grado, programa clave_mat, materia, profesor, periodo_cursada, calificacion, creditos, área)

Page 20: Clase 6  - Normalización

Primera Forma Normal

• 1FN: Identificar “grupos de repetición” en cada entidad

• Cada grupo de repetición sacarlo a una nueva entidad. Su llave primaria será una llave primaria compuesta (2 atributos).

Page 21: Clase 6  - Normalización

Aplicación Primera Forma Normal

• IDENTIFICAR GRUPO(S) DE REPETICION: alumno(expediente#, nombre, grado, programa (clave_mat, materia, profesor, periodo_cursada, calificacion, creditos, área))

• SACAR GRUPO REPETICION A NUEVA ENTIDAD:alumno(expediente#, nombre, grado, programa)alumno-materia(expediente#, clave_mat#, materia, profesor, periodo_cursada, calificacion, creditos, área))

Page 22: Clase 6  - Normalización

Segunda Forma Normal

• Identificar atributos que no dependen completamente de la llave primaria compuesta

• Sacar a una nueva entidad los atributos que no dependen completamente de la llave primaria compuesta. La llave primaria de esta nueva entidad será la parte de la llave primaria compuesta de la cual dependen estos atributos.

Page 23: Clase 6  - Normalización

Aplicación Segunda Forma Normal

• IDENTIFICAR ATRIBUTOS QUE NO DEPENDEN COMPLETAMENTE DE expediente#-materia#: materia, créditos, área SACARLOS A OTRA ENTIDAD CON SU LLAVE PRIMARIAalumno(expediente#, nombre, grado, programa)alumno-materia(expediente#, clave_mat#,periodo_cursada#, profesor, calificacion,))materia(clave_mat#, materia, creditos, área)

Page 24: Clase 6  - Normalización

Tercera Forma Normal

• Identificar atributos no llave que dependan de otro atributo no llavealumno nombre

expediente# grado programa

alumno-materia profesor, expediente#, clave_mat#, periodo_cursada#,

calificacion

materia materiaclave_mat# creditos

área• Analizar: un alumno puede estar en más de un programa? ya sea

al mismo tiempo o al finalizar uno, iniciar otro?• ¿Conviene un catálogo de programas que se imparten en la UPCI?

Page 25: Clase 6  - Normalización

Ing. Eddie Malca [email protected]

[email protected]

@emalca

/iluminatic

Normalización de Base de

Datos