Normalizacion de base de datos

9
[Introducir aquí título de la entrada del blog] NORMALIZACIÓN DE BASE DE DATOS Escrito por Jllanosd el 20-03-2015 en Ingeniería de Sistemas. . Comentarios (0) ¿Qué aprenderé hoy? A conceptualizar términos relacionados a la normalización de base de datos A desarrollar el proceso de normalización de una base de datos. A resolver problemas que involucren la normalización de una base de datos. A valorar la importancia de aprender base de datos como parte de nuestra formación profesional. Cada punto mencionado es de suma importancia en el objetivo de realizar una adecuada normalización siguiendo las normas de estas. NORMALIZACIÓN Como es de conocimiento una base de datos tiene que ser diseñada antes de que pueda ser creada y usada. El

Transcript of Normalizacion de base de datos

Page 1: Normalizacion de base de datos

[Introducir aquí título de la entrada del blog]

NORMALIZACIÓN DE BASE DE DATOSEscrito por Jllanosd el 20-03-2015 en Ingeniería de Sistemas.. Comentarios   (0)

¿Qué aprenderé hoy?

A conceptualizar términos relacionados a la normalización de base de datos

A desarrollar el proceso de normalización de una base de datos.

A resolver problemas que involucren la normalización de una base de datos.

A valorar la importancia de aprender base de datos como parte de nuestra formación profesional.  Cada punto mencionado es de suma importancia en el objetivo de realizar una         adecuada normalización siguiendo las normas de estas. 

NORMALIZACIÓN

Como es de conocimiento una base de datos tiene que ser diseñada antes de que pueda ser creada y usada. El diseño debe ajustarse a estándares que permitan ahorro de memoria, acceso rápido, fácil mantenimiento, portabilidad, facilidad de futuros mejoramientos, buen desempeño y eficiencia de costos, entre muchos otros. 

El diseño lógico final de una base de datos debe ser tal que equilibre un desempeño óptimo junto con la

Page 2: Normalizacion de base de datos

integridad de la información. Esto puede ser logrado a través de un proceso conocido como Normalización. La base de datos debe estar en un estado de "Forma completamente normalizada". 

Entonces también podemos indicar que la normalización es una serie de reglas que involucran análisis y transformación únicas de consistencia, mínima redundancia y máxima estabilidad. 

Formas Normales

1. Primera Forma Normal: 

  Eliminar los grupos repetidos de las tablas individuales.

  Crear una tabla independiente para cada conjunto de datos relacionados.

  Identificar cada conjunto de datos relacionados con una clave principal. 2. Segunda Forma Normal:

  Crear tablas independientes para conjuntos de valores que se apliquen a varios registros.

  Relacionar estas tablas con una clave externa.  3. Tercer Forma Normal: 

  Eliminar los campos que no dependan de la clave.    4. Otras formas de normalización:

Page 3: Normalizacion de base de datos

 La cuarta forma normal, también llamada Forma Normal de Boyce Codd (BCNF, Boyce Codd  Normal Form). 

 La quinta forma normal existen, pero rara vez se consideran en un diseño real. Si no se aplican estas reglas, el diseño de la base de datos puede ser menos perfecto, pero no debería afectar a la funcionalidad.    Veamos un ejercicio de Normalización: 

1. Un dato sin normalizar no cumple con ninguna regla de normalización. Para explicar con un ejemplo en qué consiste cada una de las reglas, vamos a considerar los datos de la siguiente tabla. 

ordenes  (id_orden, fecha, id_cliente, nom_cliente, estado, num_art, cant, precio)

Ordenes

Id_orden  Fecha   Id_cliente  Nom_cliente  Ciudad Num_art  Nom_art  Cant   Precio

 1301    18/03/2015     201          John            Lima       3786     Teclado       3       35.00

  1301    18/03/2015     201          John            Lima     4011     Disco duro    6       65.00

  1301    18/03/2015     201          John            Lima       9132     Monitor 10"   8       4.75  

  1302    20/03/2015     207           Ida             Cuzco     5794     Monitor 15"   4       5.00

Page 4: Normalizacion de base de datos

  1303    22/03/2015     210          Delia           Pasco     4011     Disco duro    2       65.00

  1303    22/03/2015     210          Delia           Pasco     3141     Mouse         2       10.00

PRIMERA FORMA NORMAL (1FN)

Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para Num_art, Nom_art, Cant y Precio. La Primera forma Normal prohíbe que los grupos repetidos, por lo tanto tenemos que convertir a la primera forma normal. Los pasos a seguir son:

Tenemos que eliminar los grupos repetitivos Tenemos que crear una nueva tabla con la

PK (llave primaria) de la tabla base y el grupo repetido. Los registros quedan ahora conformados en dos tablas que llamaremos Ordenes y Articulos_ordenes.

Ordenes (id_orden, fecha, id_cliente, nom_cliente, ciudad)

Articulos_ordenes (id_orden, num_art, nom_art, cant, precio)

Ordenes

Id_orden  Fecha     Id_cliente  Nom_cliente  Ciudad 

1301    18/03/2015    201        John         Lima

1302    20/03/2015    207         Ida          Cuzco

1303    22/03/2015    210        Delia        Pasco

Articulos_ordenes

Page 5: Normalizacion de base de datos

Id_orden  Num_art  Nom_art     Cant  Precio

 1301        3786        Teclado         3       35.00

 1301        4011        Disco duro      6       65.00

 1301        9132        Monitor 10"     8       4.75

 1302        5794        Monitor 15"     4       5.00

 1303        4011        Disco duro      2       65.00

 1303        3141        Mouse           2       10.00

SEGUNDA FORMA NORMAL (2FN)

Ahora procederemos a aplicar la segunda forma normal, es decir, tenemos que eliminar cualquier columna no llave que no dependa de la llave primaria de la tabla. los pasos a seguir son:

Determinar cuáles columnas que no son llave no dependen de la llave primaria de la tabla.

Eliminar esas columnas de la tabla base. Crear una segunda tabla con esas columnas

y las columnas de la PK (llave primaria) de la cual dependen. La tabla Ordenes está en 2da Forma Normal. Cualquier valor único de Id_orden determina un sólo valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave primaria Id_orden.

Por su parte, la tabla Articulos_ordenes no se encuentra en 2da Forma Normal, ya que las columnas Precio y Nom_art son dependientes de Num_art, pero no son dependientes de Id_orden. Lo que haremos a

Page 6: Normalizacion de base de datos

continuación es eliminar estas columnas de la tabla Articulos_ordenes y crear una tabla Articulos con dichas columnas y la llave primaria de la que dependen. 

las tablas quedan ahora de la siguiente manera.

Articulos_ordenes  (id_orden, num_art, cant)

Articulos_ordenes

Id_orden    Num_art      Cant  

 1301        3786         3      

 1301        4011         6      

 1301        9132         8      

 1302        5794         4      

 1303        4011         2      

 1303        3141         2

Articulos  (num_art, nom_art, precio)

Articulos

Num_art     Nom_art          Precio

3786        Teclado          35.00

4011        Disco duro       65.00

9132        Monitor 10"      4.75

5794        Monitor 15"      5.00       

3141        Mouse            10.00

TERCERA FORMA NORMAL (3FN)

Page 7: Normalizacion de base de datos

La tercer forma normal nos dice que tenemos que eliminar cualquier columna no llave que sea dependiente de otra columna no llave. Los pasos a seguir son: 

 Determinar las columnas que son dependientes de otra columna no llave.

 Eliminar esas columnas de la tabla base.   Crear una segunda tabla con esas columnas

y con la columna no llave de la cual son dependientes. Al observar las tablas que hemos creado, nos damos cuenta que tanto la tabla Articulos, como la tabla Articulos_ordenes se encuentran en 3era forma normal. Sin embargo la tabla Ordenes no lo está, ya que Nom_cliente Y Ciudad son dependientes de Id_cliente, y esta columna no es la llave primaria. 

Para normalizar esta tabla, moveremos las columnas no llave y la columna llave de la cual dependen dentro de una nueva tabla Clientes. Las nuevas tablas Clientes y Ordenes se muestran a continuación. 

Ordenes

Id_orden  Fecha     Id_cliente  

1301    18/03/2015    201        

1302    20/03/2015    207        

1303    22/03/2015    210    

Cliente  (id_cliente, nom_cliente, Ciudad)

Ordenes 

Page 8: Normalizacion de base de datos

Id_cliente  Nom_cliente  Ciudad 

201        John         Lima

207         Ida          Cuzco

210        Delia        Pasco

Por lo tanto la base de datos quedará de la siguiente manera:

Ordenes  (id_orden, fecha, id_cliente)

Clientes (id_cliente, nom_cliente, ciudad)

Articulos  (num_art, nom_art, precio)

Articulos_ordenes  (id_orden, num_art, cant)