EJERCICIOS NORMALIZACION BASE DE DATOS
Short Description
EJERCICIOS SOBRE NORMALIZACION...
Description
EJERCICIOS DE NORMALIZACION
I.
EJERCICIOS DE NORMALIZACIÓN:
1. A través del siguiente ejercicio se intenta afirmar los conocimientos de normalización con un ejemplo simplificado de una base de datos para una pequeña biblioteca. CodLibro
Titulo
Autor
editorial
NombreLector
echaDev
1001
Variable Compleja
Murray Spiegel
McGraw Hill
Pérez Gómez, Juan
15/04/2014
1004
Visual Basic
E. Petroustsos
Anaya
Ríos Terán, Ana
17/04/2014
1005
Estadística
Murray Spiegel
McGraw Hill
Roca, René
16/04/2014
1006
Oracle University
Oracle Corp.
García Roque, Luis
20/04/2014
1007
Clipper 5.01
Nancy Greenberg y Priya Nathan Ramalho
McGraw Hill
Pérez Gómez, Juan
18/04/2014
Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo tener campos atómicos, pues el nombre del lector es un campo que puede (y conviene) descomponerse en apellido paterno, apellido materno y nombres. Tal como se muestra en la siguiente tabla.
CodLibro
Titulo
Autor
editorial
Paterno
Materno
Nombres
FechaDev
1001
Variable compleja
Murray Spiegel
McGraw Hill
Pérez
Gómez
Juan
15/04/2014
1004
Visual Basic 5
E. Petroustsos
Anaya
Ríos
Terán
Ana
17/04/2014
1005
Estadística
Murray Spiegel
McGraw Hill
Roca
René
16/04/2014
1006
Oracle University
NancyGreenberg NancyGreenberg
Oracle Corp.
García
Roque
Luis
20/04/2014
1006
Oracle University
Priya Nathan
Oracle Corp.
García
Roque
Luis
20/04/2014
1007
Clipper 5.01
Ramalho
McGraw Hill
Pérez
Gómez
Juan
18/04/2014
Como se puede ver, hay cierta redundancia característica de 1NF. La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra manera, todos los atributos no clave deben depender por completo de la clave primaria. Actualmente en nuestra tabla tenemos varias dependencias parciales si consideramos como atributo clave el código del libro. Por ejemplo, el título es completamente identificado por el código del libro, pero el nombre del lector en realidad no tiene dependencia de este código, por tanto estos datos deben ser trasladados a otra tabla.
4 1 0 2 1 1 2 1
1
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION
CodLibro
Titulo
Autor
Editorial
1001
Variable compleja
Murray Spiegel
McGraw Hil
1004
Visual Basic 5
E. Petroustsos
Anaya
1005
Estadística
Murray Spiegel
McGraw Hill
1006
Oracle University
NancyGreenberg NancyGreenberg
Oracle Corp
1006
Oracle University
Priya Nathan
Oracle Corp.
1007
Clipper 5.01
Ramalho
McGraw Hill
La nueva tabla sólo contendrá datos del lector. CodLector
Paterno
Materno
Nombres
501
Pérez
Gómez
Juan
502
Ríos
Terán
Ana
503
Roca
504
García
René Roque
Luis
Hemos creado una tabla para contener los datos del lector y también tuvimos que crear la columna CodLector para identificar unívocamente a cada uno. Sin embargo, esta nueva disposición de la base de datos necesita que exista otra tabla para mantener la información de qué libros están prestados a qué lectores. Esta tabla se muestra a continuación: CodLibro
CodLector
FechaDev
1001
501
15/04/2014
1004
502
17/04/2014
1005
503
16/04/2014
1006
504
20/04/2014
1007
501
18/04/2014
Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los atributos no clave deben ser mutuamente independientes y dependientes por completo de la clave primaria. También recordemos que dijimos que esto significa que las columnas en la tabla deben contener solamente información sobre la entidad definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca de una sola cosa. En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF.
CodLibro
Titulo
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION 1007
Clipper 5.01
CodAutor
Autor
801
Murray Spiegel
802
E. Petroustsos
803
Nancy Greenberg
804
Priya Nathan
806
Ramalho
CodEditorial
Editorial
901
McGraw Hill
902
Anaya
903
Oracle Corp
Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca de una entidad, también hemos perdido la información acerca de qué autor ha escrito qué libro y las editoriales correspondientes, por lo que debemos crear otras tablas que relacionen cada libro con sus autores y editoriales. CodLibro
codEditorial
1001
901
1004
902
1005
901
1006
903
1007
901
CodLibro
codAutor
1001
801
1004
802
1005
801
1006
803
1006
804
1007
806
Y el resto de las tablas no necesitan modificación. CodLector
Paterno
Materno
Nombres
501
Pérez
Gómez
Juan
502
Ríos
Terán
Ana
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION CodLibro
CodLector
FechaDev
1001
501
15/04/2014
1004
502
17/04/2014
1005
503
16/04/2014
1006
504
20/04/2014
1007
501
18/04/2014
2. 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
Provincia
Num_art
nom_art
cant
Precio
2301
23/02/14
101
Martin
Cajamarca
3786
Red
3
35,00
2301
23/02/14
101
Martin
Cajamarca
4011
Raqueta
6
65,00
2301
23/02/14
101
Martin
Cajamarca
9132
Paq-3
8
4,75
2302
25/02/14
107
Herman
Lima
5794
Paq-6
4
5,00
2303
27/02/14
110
Pedro
Piura
4011
Raqueta
2
65,00
2303
27/02/14
110
Pedro
Piura
3141
Funda
2
10,00
Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para NUM_ART, NOM_ART, CANT y PRECIO . La 1FN prohíbe los grupos repetidos, por lo tanto tenemos que convertir a la primera forma normal. Los pasos a seguir son: Tenemos que eliminar los grupos repetidos. Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido. Los registros quedan ahora conformados en dos tablas que llamaremos órdenes y
articulos_ordenes Ordenes Id_orden
Fecha
Id_cliente
Nom_cliente
Estado
2301
23/02/14
101
Martin
Caracas
2302
25/02/14
107
Herman
Coro
2303
27/02/14
110
Pedro
Maracay
Articulos_ordenes Id_orden
Num_art Num_art
nom_art
cant
Precio
2301
3786
Red
3
35,00
2301
4011
Raqueta
6
65,00
2301
9132
Paq-3
8
4,75
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION
Ahora procederemos a aplicar la segunda formal 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 la(s) columna(s) de la PK de la cual dependen. La tabla órdenes está en 2FN. 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 2FN ya que las columnas PRECIO y NOM_ART son dependientes de NUM_ART, pero no son dependientes de ID_ORDEN. Lo que haremos a continuación es eliminar estas columnas de la tabla articulos_ordenes y crear una tabla artículos 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
2301
3786
3
2301
4011
6
2301
9132
8
2302
5794
4
2303
4011
2
2303
3141
2
A r tícul cu l os Num_art
nom_art
Precio
3786
Red
35,00
4011
Raqueta
65,00
9132
Paq-3
4,75
5794
Paq-6
5,00
3141
Funda
10,00
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION La tercera 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 3FN. Sin embargo la tabla ordenes no lo está, ya que NOM_CLIENTE y PROVINCIA 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 órdenes se muestran a continuación.
Ordenes Id_orden
Fecha
Id_cliente
2301
23/02/11
101
2302
25/02/11
107
2303
27/02/11
110
Clientes Id_cliente
Nom_cliente
Provincia
101
Martin
Cajamarca
107
Herman
Lima
110
Pedro
Piura
Por lo tanto la base de datos queda de la siguiente manera: Ordenes (id_orden, fecha, id_cliente) Clientes (id_cliente, nom_cliente, estado) Artículos ( num_art, nom_art, precio) Articulos_ordenes (id_orden, num_art, cant)
3. Normalización de la tabla de estudiantes:
N° Alumno
Nombre del Titular
Salón
Clase1
Clase2
Clase3
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION Las tablas deben tener solo dos dimensiones. Dado que los estudiantes tienen varias clases, estas clases deben ser listadas en una tabla separada. Los campos Clase1, Clase2, Clase3 en los registros anteriores son indicios de problemas de diseño. Las hojas de cálculo suelen usar la tercera dimensión, pero las tablas no deben. Otra forma de ver este problema es con uno-a-muchos. Creamos otra tabla en la primera forma normal eliminando el grupo de repetición (clase) como se muestra en lo siguiente:
N° Alumno
Nombre del Titular
Salón
N° Clase
1022
Sr. Llamoctanta
1A-201
Arquitectura
1022
Sr. Llamoctanta
1A-201
Gestión
1022
Sr. Llamoctanta
1A-201
Economía
4123
Sr. Rodríguez
1B-202
Dibujo
4123
Sr. Rodríguez
1B-202
Base de Datos
4123
Sr. Rodríguez
1B-202
An. Matemático
Tomamos en cuenta los múltiples valores para el campo Clase por cada estudiante en la tabla anterior. N° Alumno
Nombre del Titular
Salón
1022
Sr. Llamoctanta
1A-201
4123
Sr. Rodríguez
1B-202
N° Alumno
N° Clase
1022
Arquitectura
1022
Gestión
1022
Economía
4123
Dibujo
4123
Base de Datos
4123
An. Matemático
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Titles you can't find anywhere else
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
EJERCICIOS DE NORMALIZACION
II.
CONCLUSION
La normalización es una técnica que se ha desarrollado para obtener estructuras de datos eficientes, garantizando un buen diseño lógico de la base de datos. Es decir, se utiliza para mejorar el esquema, de modo que éste satisfaga ciertas restricciones que eviten la duplicidad de datos, y garantiza que el esquema resultante esté más próximo al modelo de la empresa, sea consistente, con la mínima redundancia y la máxima estabilidad. La normalización es una ayuda muy útil en el proceso de diseño de las bases de datos, pero conviene señalar que no es una panacea. Hay que tener en cuenta que las formas normales no son prescripciones para la creación de un modelo de datos “correcto”. Un modelo de datos podría llegar a estar perfectamente normalizado, pero podría proporcionar las respuestas tan despacio y de forma tan complicada que el sistema de base de datos construido sobre él resulte inoperativo. No hay que olvidar que al descomponer una relación penalizamos las consultas, provocando una pérdida de eficiencia en las mismas. Aunque, en general, se aconseja llevar los esquemas relacionales al menos a 3FN, existen ciertos casos en los que, una vez realizada la descomposición, exigencias de eficiencia muy estrictas obligan a llevar a cabo el proceso inverso, es decir, una desnormalización, combinando las relaciones hasta dejarlas en formas normales anteriores. Por lo tanto, hay que poner en la balanza hasta dónde conviene normalizar para que el resultado sea un modelo de datos eficiente y efectivo, aunque no cabe duda que con las tres primeras formas normales las probabilidades de obtener este resultado son muy altas.
III.
BIBLIOGRAFIA
Estos ejercicios se han elaborado elaborado tomando como principales principales referencias los textos siguientes. https://prezi.com/omjlhd66hrf5/normalizacion-de-base-de-datos/ http://cvb.ehu.es/open_course_ware/castellano/social_juri/herrami_gestion/ normalizacion.pdf
View more...
Comments