EJERCICIOS NORMALIZACION BASE DE DATOS

May 2, 2019 | Author: Imer Rodriguez | Category: Table (Database), Databases, Areas Of Computer Science, Software, Computer Data
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF