NORMALIZACION DE BASES DE DATOS Veamos el siguiente ejemplo de una base de datos de una biblioteca Cod_Libr o 101 105
•
Titulo
Autor
Fisica II
Custodi o Garcia Matematic Ramhal a para la o computaci ón
Editorial Nombre_Lec tor Bruño Andrea Ruiz Mendoza Oracle Kathy Narro Mendez
Fecha_Devolu cion 17/06/2009 22/06/2009
Primera Forma Normal.- 1FN
Esta tabla no cumple con la Primera Forma Normal, pues no cumple con el requisito de tener solo campos atomicos , el Nombre_Lector puede descomponerse en otros campos como Nombre_Lector, Apellido_Paterno, Apellido_Materno, como se mostrara en la siguiente tabla
Cod_Lib ro 101
Titulo
Autor
Editori al Bruño
Fisica II
Garcia
105
Matema ti
Ramhal Oracle
Nom_Lecto Apel_Ma r rt Andrea Ruiz Kathy
Narro
Apel_Pat e Mendoz a Mendez
Fech_De v 17/06/2 009 22/06/2 009
•
Segunda Forma Normal._ 2FN
La Segunda Forma Normal 2FN, 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. TABLA LIBRO Cod_Li bro 101
Titulo
Autor
Fisica II
Editor ial Garcia Bruño
105
Matema ti
Ramh al
Oracl e
La nueva tabla sólo contendrá datos del lector. TABLA LECTOR Cod_Lect or 10 17
Nom_Lector Andrea Kathy
Apel_Ma rt Ruiz Narro
Apel_Pater Mendoza Mendez
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: TABLA PRESTAMO Cod_Libr o 101
Cod_Lect or 10
Fecha_Dev ol 17/06/200
105
•
17
9 22/06/200 9
Tercera Forma Normal._ 3FN
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. TABLA LIBRO Cod_Libro 101
Titulo Fisica II
105
Matematic
TABLA AUTOR Cod_Auto r 1
Autor
2
Ramh al
Garcia
TABLA EDITORIAL Cod_Editor Editorial ial 1 Bruño 4
Oracle
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.
Cod_Libro 101
Cod_Autor 1
105
2
Cod_Libro 101
Cod_Editor ial 1
105
4
Y el resto de las tablas no necesitan modificación. Cod_Lect or 10 17
Nom_Lector
Cod_Libr o 101
Cod_Lect or 10
105
17
Andrea Kathy
Apel_Ma rt Ruiz Narro
Fecha_Dev ol 17/06/200 9 22/06/200 9
Apel_Pate r Mendoza Mendez