Normalizacion
Upcoming SlideShare
Loading in...5
×
 

Normalizacion

on

  • 3,603 views

 

Statistics

Views

Total Views
3,603
Views on SlideShare
902
Embed Views
2,701

Actions

Likes
2
Downloads
92
Comments
0

1 Embed 2,701

http://fundamentosbd.wordpress.com 2701

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Normalizacion Normalizacion Presentation Transcript

    • NormalizaciónL.I. María Luisa Velasco Ramírez
    • • La teoría de la Normalización es un método objetivo y riguroso que se aplica en el diseño de bases de datos relacionales.
    • • El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo E-R (entidad- relación) al modelo relacional. 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.
    • • Dependencias: – Funcional: dado un atributo B de una entidad o relación, este es funcionalmente dependiente de otro A, si para cualquier valor dado del atributo A existe un valor simple asociado en el atributo B. • Siempre existe entre los atributos no clave respecto del clave • Que es clave? – Un Identificador único – Claves, son: » primaria » candidatas
    • Ejemplos:• Matrícula -> Nombre_alumno• Un valor único de matrícula determina un solo valor para Nombre_alumno• ISBN-> Título, igualmente un valor único de ISBN determina un solo valor de Título de libro.
    • – Parcial: un atributo B (no clave) depende de un subconjunto A (clave)– Transitiva: un atributo B (no clave) depende de un atributo C no clave– Boyce Codd: un atributo B (Clave o parte de clave) depende de un atributo que no es clave. Todo determinante es clave.
    • • Formas normales – Primera Forma: todos los atributos tiene cardinalidad 0 o 1. Evitar grupos repetidos. – Segunda Forma: una tabla está en 2NF si está en 1NF y no existen dependencias parciales. – Tercer Forma: una tabla está en 3NF si está en 2NF y no existen dependencias transitivas – Boyce Codd Forma: una tabla está en BCNF si está en 3NF y no existen dependencias de B-C.
    • Por ejemplo, dada la siguiente relación:Id_orden Fecha Id_cliente Nom_cliente Estado Num_Item Desc_Item Cant Precio 2301 23/03/11 101 Martí VE 3786 Red 3 100 2301 23/03/11 101 Martí VE 4011 Raqueta 6 700 2301 23/03/11 101 Martí VE 9132 Paq-3 8 25 2302 25/03/11 102 Sports NL 5794 Paq-6 4 55 2303 27/03/11 103 Mr. Tenis VE 4011 Raqueta 2 700 2303 27/03/11 103 Mr. Tenis VE 3141 Funda 2 125 Observen bien las tuplas de la relación, ¿Qué observan en los campos Id_Orden, Fecha, Id_Cliente, Nom_Cliente, Estado?
    • • La relación no cumple con la 1FN, ya que existen grupos repetidos, qué se debe hacer:• Eliminar los grupos repetidos• Crear una nueva relación con el grupo repetido y la llave que lo identifica
    • Se tienen ahora 2 relaciones:OrdenId_orden Fecha Id_cliente Nom_cliente Estado Item_Orden 2301 23/03/11 101 Martí VE Id_Orden Num_Item Desc_Item Cant Precio 2302 25/03/11 102 Sports NL 2303 27/03/11 103 Mr. Tenis VE 2301 3786 Red 3 100 2301 4011 Raqueta 6 700 ¿Qué atributo tienen en común las 2 2301 9132 Paq-3 8 25 relaciones? 2302 5794 Paq-6 4 55 2303 4011 Raqueta 2 700 2303 3141 Funda 2 125
    • Ahora hay que aplicar la 2FN a las relaciones resultantes• Determinar cuáles columnas que no son llave dependen parcialmente de la llave primaria de la tabla.• Eliminar esas columnas de la tabla base, para lo cual se debe:• Crear una segunda tabla con esas columnas y la PK de la cual dependen.• Analizar la relación Artículos_Ordenes• Observar que las columnas PRECIO y DESC_ITEM son dependientes de NUM_ITEM ( un subconjunto de la llave primaria), pero no son dependientes de ID_ORDEN. CANT sin embargo, si depende de la PK, ya que se refiere a la cantidad de artículos que lleva la orden. Item_Orden Id_Orden Num_Item Desc_Item Cant Precio ¡Observar que la llave primaria 2301 3786 Red 3 100 (PK) de esta 2301 4011 Raqueta 6 700 relación es compuesta! 2301 9132 Paq-3 8 25 2302 5794 Paq-6 4 55 2303 4011 Raqueta 2 700 2303 3141 Funda 2 125
    • Las relaciones resultantes son:ItemNum_Item Desc_Item Precio Item_Orden Id_Orden Num_Item Cant 3786 Red 100 2301 3786 3 4011 Raqueta 700 2301 4011 6 9132 Paq-3 25 2301 9132 8 5794 Paq-6 55 2302 5794 4 4011 Raqueta 700 2303 4011 2 3141 Funda 125 2303 3141 2¿Qué representa Num_Item, en la relación Artículos_Ordenes?¿La llave primaria de la relación Artículos_Ordenes escompuesta?
    • Analizar la relación Ordenes Orden Id_orden Fecha Id_cliente Nom_cliente Estado ¿Cumple la 2FN? Si, porque cualquier valor único de 2301 23/03/11 101 Martí VE ID_ORDEN determina un sólo 2302 25/03/11 102 Sports NL valor para 2303 27/03/11 103 Mr. Tenis VE cada columna. Por lo tanto, todas las columnas son dependientes de la llave primaria ID_ORDEN.
    • ¿Cumple la 3FN? Orden Observar que las columnas Id_orden Fecha Id_cliente Nom_cliente Estado Nom_cliente y Estado son dependientes de ID_cliente, que es una columna no clave o no llave 2301 23/03/11 101 Martí VE 2302 25/03/11 102 Sports NL 2303 27/03/11 103 Mr. Tenis VELa tercera forma normal indica que se debe eliminar cualquier columna nollave que sea dependiente de otra columna no llave (dependencia transitiva).Los pasos a seguir son:» Determinar las columnas que son dependientes de otra columna no llave.» Eliminar esas columnas de la tabla base.» Crear otra tabla con esas columnas y con la columna de la cual sondependientes.
    • Al crear otra relación o tabla seobtiene: Llave foránea Orden Cliente Id_orden Fecha Id_cliente Id_cliente Nom_cliente Estado 2301 23/03/11 101 101 Martí VE 2302 25/03/11 102 102 Sports NL 2303 27/03/11 103 103 Mr. Tenis VE ¿La llave foránea Id_cliente, en dónde es primaria?
    • Las relaciones resultantes son:Item Item_Orden OrdenNum_Item Desc_Item Precio Id_Orden Num_Item Cant Id_orden Fecha Id_cliente 3786 Red 100 2301 3786 3 2301 23/03/11 101 4011 Raqueta 700 2301 4011 6 2302 25/03/11 102 9132 Paq-3 25 2301 9132 8 2303 27/03/11 103 5794 Paq-6 55 2302 5794 4 Cliente 4011 Raqueta 700 2303 4011 2 Id_cliente Nom_cliente Estado 3141 Funda 125 2303 3141 2 101 Martí VE 102 Sports NL 103 Mr. Tenis VE
    • Analizar ahora la siguienterelación Préstamo La relación PRESTAMO( num_socio, nombre_socio, cod_libro, fec_prest, editorial, país_edit ) las claves candidatas son: (num_socio, cod_libro) y (nombre_socio, cod_libro) La combinación de num_socio y cod_libro son las ideales para formar la llave primaria, sin embargo la combinación nombre_socio y cod_libro también es una clave candidata. ¿La relación está en primera forma normal? –Primera Forma: todos los atributos tiene cardinalidad 0 ó 1. Si está en 1FN, todos los atributos tienen cardinalidad 0 ó 1
    • Segunda Forma: una tabla está en 2NF si está en 1NF yno existen dependencias parciales.• PRESTAMO( num_socio, nombre_socio, cod_libro, fec_prest, editorial, país_edit )• Se puede observar que ciertos atributos que no forman parte de las claves candidatas, tales como editorial y país editorial, constituye información acerca del libro, pero no acerca de las claves candidatas (que son compuestas). Por lo tanto, la relación préstamo no se encuentra en 2FN.• La solución es descomponer esta relación en las siguientes:
    • • PRESTAMO1( num_socio, nombre_socio, cod_libro, fec_prest )• LIBRO( cod_libro, editorial, país_edit )
    • • En la relación PRESTAMO1, el único atributo que no forma parte de las claves candidatas es fec_prest, pero es determinado funcionalmente por la clave completa. Por lo que está en 2FN.• La relación LIBRO, la clave es cod_libro, y los dos atributos: editorial y país son determinados funcionalmente por la clave completa. Por lo tanto, está en 2FN.
    • Tercer Forma: una tabla está en 3NF si está en 2NF yno existen dependencias transitivas• Tercera Forma Normal (3FN), propuesta por Codd. Una relación está en 3FN, si además de estar en 2FN, los atributos que no forman parte de ninguna clave candidata facilitan información sólo acerca de la(s) clave(s) y no acerca de otros atributos.• En la relación PRESTAMO1, el atributo fec_prest es determinado por la clave, ya que no existen más atributos. Por lo que está en 3FN.• En la relación LIBRO, el atributo país entrega información acerca de la editorial que publica el libro, por lo que no está en 3FN, país es una columna no clave que es determinado por otra columna no clave que es editorial .
    • • La solución es descomponerla en:• LIBRO1( cod_libro, editorial )• EDITORIAL( editorial, país ),• que están en 3FN, ya que todo atributo no clave facilita información acerca de la clave.
    • Boyce Codd: un atributo B (Clave o parte de clave)depende de un atributo que no es clave. Tododeterminante es clave.• Forma Normal de Boycce y Codd (FNBC). La relación PRESTAMO1, que está en 3FN, todavía presenta anomalías, ya que num_socio y nombre_socio, se repiten innecesariamente por cada cod_libro.• Una relación no cumple con la FNBC si un atributo B (clave o parte de clave) depende de un atributo que no es clave. Todo determinante es clave.
    • • En la relación PRESTAMO1, num_socio es información acerca de nombre_socio y viceversa. Ninguno de estos atributos son clave (aunque formen parte de la clave).• Es decir• num_socio -> nombre_socio• nombre_socio->num_socio• Un atributo no clave determina a otro que es clave o parte de ella
    • La solución es:• SOCIO( num_socio, nombre_socio )• PRESTAMO2( num_socio, cod_libro, fec_prest ), que están en FNBC
    • Esquema relacional resultante:• LIBRO1( cod_libro, editorial )• EDITORIAL( editorial, país )• SOCIO( num_socio, nombre_socio )• PRESTAMO2( num_socio, cod_libro, fec_prest )
    • • Consultar en Mysql-hispano.org el artículo Normalización de bases de datos, del cual se tomaron algunos conceptos y el primer ejemplo.