Está en la página 1de 2

A travs del siguiente ejercicio se intenta afirmar los conocimientos de normalizacin con un ejemplo simplificado de una base de datos

para una pequea biblioteca.

CodLibro 1007

Titulo Clipper 5.01

Autor Ramalho

Editorial McGraw Hill

CodLibro 1001 1004 1005 1006 1007

Titulo Variable compleja Visual Basic 5 Estadstica Oracle University Clipper 5.01

Autor Murray Spiegel E. Petroustsos Murray Spiegel Nancy Greenberg y Priya Nathan Ramalho

Editorial

NombreLector

FechaDev

McGraw Hill tabla slo contendr datos del lector. Prez Gmez, Juan 15/04/2005 La nueva Anaya McGraw Hill CodLector Oracle Corp. 501 502 McGraw Hill 503 Ros Tern, Ana Roca, Ren Paterno Materno Garca Prez Roque, Luis Gmez Ros Gmez, Juan Tern Prez Roca Garca Roque 17/04/2005 16/04/2005 Nombres 20/04/2005 Juan Ana 18/04/2005 Ren Luis

Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de slo tener campos atmicos, 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. 1NF CodLibro 1001 1004 1005 1006 1006 1007 Titulo Variable compleja Visual Basic 5 Estadstica Oracle University Oracle University Clipper 5.01 Autor Murray Spiegel E. Petroustsos Murray Spiegel Nancy Greenberg Priya Nathan Ramalho

504

Hemos creado una tabla para contener los datos del lector y tambin tuvimos que crear la columna CodLector para identificar unvocamente a cada uno. Sin embargo, esta nueva disposicin de la base de datos necesita que exista otra tabla para Editorial mantener la informacin de qu libros estn prestados a Paterno Materno Nombres FechaDev qu lectores. Esta tabla se muestra a continuacin: McGraw Hill Prez Gmez Juan 15/04/2005 Anaya McGraw Hill Oracle Corp. Oracle Corp. McGraw Hill Ros Tern Ana CodLibro CodLector Roca Ren 1001 501 Garca Roque Luis Garca Prez 1004 Roque 1005 Gmez 1006 502 Luis 503 Juan 504 501 17/04/2005 FechaDev 16/04/2005 15/04/2005 20/04/2005 17/04/2005 20/04/2005 16/04/2005 18/04/2005 20/04/2005 18/04/2005

Como se puede ver, hay cierta redundancia caracterstica 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 cdigo del libro. Por ejemplo, el ttulo es completamente identificado por el cdigo del libro, pero el nombre del lector en realidad no tiene dependencia de este cdigo, por tanto estos datos deben ser trasladados a otra tabla. 2NF CodLibro 1001 1004 1005 1006 1006 Titulo Variable compleja Visual Basic 5 Estadstica Oracle University Oracle University Autor Murray Spiegel E. Petroustsos Murray Spiegel Nancy Greenberg Priya Nathan

1007

Para la Tercera Forma Normal (3NF) la relacin debe estar en 2NF y adems los atributos no clave deben ser mutuamente independientes y dependientes por completo de la clave primaria. Tambin recordemos que dijimos que esto significa que las columnas en la tabla deben contener solamente informacin 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 informacin acerca del libro, los autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF. Editorial 3NF McGraw Hill CodLibro Anaya 1001 Titulo Variable compleja Visual Basic 5 Estadstica Oracle University

McGraw Hill 1004 Oracle Corp. 1005 Oracle Corp. 1006

CodLibro 1007 CodAutor 801 802 803 804 806

Titulo Clipper 5.01 Autor Murray Spiegel E. Petroustsos Nancy Greenberg Priya Nathan

CodLector 501 502 503 504

Paterno Prez Ros Roca Garca

Materno Gmez Tern

Nombres Juan Ana Ren

Roque

Luis

CodLibro Ramalho 1001 1004 CodEditorial 901 902 903 Editorial McGraw Hill Anaya Oracle Corp. 1005 1006 1007

CodLector 501 502 503 504 501

FechaDev 15/04/2005 17/04/2005 16/04/2005 20/04/2005 18/04/2005

Aunque hemos creado nuevas tablas para que cada una tenga slo informacin acerca de una entidad, tambin hemos perdido la informacin 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 1001 1004 1005 1006 1006 1007

codAutor 801 802 801 803 804 806

CodLibro 1001 1004 1005 1006 1007

codEditorial 901 902 901 903 901

Y el resto de las tablas no necesitan modificacin.

CodLector

Paterno

Materno

Nombres

También podría gustarte