Sie sind auf Seite 1von 17

EJEMPLO APLICANDO LOS PASOS DE NORMALIZACION DE LA 1FN HASTA LA 4FN

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 1001 1004 1005 Titulo Variable compleja Visual Basic 5 Estadstica Autor Murray Spiegel E. Petroustsos Murray Spiegel Nancy Greenberg y Priya Nathan Ramalho Editorial McGraw Hill Anaya McGraw Hill NombreLector Prez Gmez, Juan Ros Tern, Ana Roca, Ren FechaDev 15/04/2005 17/04/2005 16/04/2005

1006

Oracle University

Oracle Corp.

Garca Roque, Luis

20/04/2005

1007

Clipper 5.01

McGraw Hill

Prez Gmez, Juan

18/04/2005

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.
CodLibro 1001 1004 1005 1006 1006 1007 Titulo Variable compleja Visual Basic 5 Estadstica OracleUniversity OracleUniversity Clipper 5.01 Autor Murray Spiegel E. Petroustsos Murray Spiegel NancyGreenberg Priya Nathan Ramalho Editorial McGraw Hill Anaya McGraw Hill Oracle Corp. Oracle Corp. McGraw Hill Paterno Prez Ros Roca Garca Garca Prez Roque Roque Gmez Materno Gmez Tern Nombres Juan Ana Ren Luis Luis Juan

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

1NF 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 1007

Titulo Variable compleja Visual Basic 5 Estadstica Oracle University Oracle University Clipper 5.01

Autor Murray Spiegel E. Petroustsos Murray Spiegel NancyGreenberg Priya Nathan Ramalho

Editorial McGraw Hill Anaya McGraw Hill Oracle Corp. Oracle Corp. McGraw Hill

La nueva tabla slo contendr datos del lector.


CodLector 501 502 503 504 Paterno Prez Ros Roca Garca Roque Materno Gmez Tern Nombres Juan Ana Ren Luis

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 mantener la informacin de qu libros estn prestados a qu lectores. Esta tabla se muestra a continuacin:
CodLibro 1001 1004 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

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. 3NF
CodLibro Titulo

1001 Variable compleja 1004 Visual Basic 5 1005 Estadstica 1006 Oracle University 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 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

codEditorial 901 902

CodLibro 1005 1006 1007

codEditorial 901 903 901

Y el resto de las tablas no necesitan modificacin.


CodLector Paterno Materno Gmez Tern Nombres Juan Ana Ren Roque Luis

501 Prez 502 Ros 503 Roca 504 Garca

CodLibro 1001 1004 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

EXPLICACION DE LA 2FN - EJEMPLOS Y FALLAS


SEGUNDA FORMA NORMAL (2FN). Conceptos previos
Se denomina clave o llave primaria al subconjunto mnimo y no vaco de atributos que permiten identificar en forma unvoca una tpla dentro de la relacin. Si existen varios conjuntos que cumplan esta condicin se denominan claves o llaves candidatas. Los atributos que conforman parte de la clave primaria o candidata se denominan atributos primos, los atributos que no forman parte de ninguna de estas claves se denominan atributos no primos.

Se define Dependencia Funcional, AB, si para cualquier valor de A le corresponde un nico valor de B. Ejemplo: Si A es el D.N.I., y B: Nombre, est claro que a cualquier D.N.I, le corresponde un nico nombre de titular. Dependencia funcional Completa, si B depende de A en su totalidad. Adquiere sentido plantearse este tipo de dependencia cuando A est compuesto por ms de un atributo. Sea A correspondiente a un atributo compuesto(D.N.I_Empleado y Cod._Dpto) y sea B correspondiente a un nico atributo(Nombre_Dpto). Ocurre en este ejemplo que B depende de Cod_Dpto., pero no de D.N.I._Empleado, por lo tanto no habra dependencia funcional completa. Mediante el diagrama de dependencias funcionales, que permite una representacin grfica de las dependencias funcionales facilitando su estudio. Se representan las dependencias funcionales y la clave primaria de la relacin se marca introducindola dentro de un cuadrado. Por ejemplo, para la relacin R(A,B,C,D), en la que se cumplen las siguientes dependencias: AC; A,BD. El grafo de dependencias quedara tal que as:

La dependencia AC es una dependencia funcional incompleta respecto a la clave y la dependencia A,B D es dependencia funcional completa respecto a la clave principal.
DESCOMPOSICIN DE DEPENDENCIAS

Para conseguir una descomposicin sin prdidas, lo que hacemos es ir rompiendo o descomponiendo las relaciones por las dependencias que no cumplen las restricciones de las formas normales para obtener otras relaciones ms pequeas que s cumplan dichas restricciones y a la misma vez impedir que se pierdan dependencias funcionales en estas descomposiciones. Para conseguirlo aplicamos la siguiente regla: Sea la relacin R(a,b,c,d,e,f) y la dependencias funcional ab que queremos descomponer, para ello se crean dos relaciones tal que as: R1(a,b) R2(a, TODOS_ATRIBUTOS {a,b}); Segunda Forma Normal (2FN) Una relacin R est en 2FN si cumple que : est en 1FN y todos sus atributos no-primos dependen funcionalmente de forma completa de la clave primaria. Ejemplo:

Sea la relacin R(Codigo_Empleado,Cdigo_Dpto,Nombre,Departamento,Aos) con la consiguiente tabla:


Cdigo_Empleado 1 2 3 4 2 Cdigo_Dpto 6 3 2 3 6 Nombre Juan Pedro Sonia Vernica Pedro Departamento Contabilidad Sistemas I+D Sistemas Contabilidad Aos 6 3 1 10 5

Sea la clave primaria de esta tabla la formada por los campos Cdigo_Empleado y Cdigo_dpto, podemos decir que la tabla se encuentra en primera forma normal, por tanto vamos a estudiar la segunda., para ello sabemos que las dependencias funcionales de la relacin son las siguientes: Codigo_EmpleadoNombre; Codigo_DptoDepartamento; Codigo_Empleado,Codigo_DptoAos Realizamos su grafo de dependencia:

Por tanto, al no existir dependencia funcionales totales respecto a la clave de todos los campos de la relacin no est en segunda forma normal, por ello debemos proceder a normalizarla, se aplica la descomposicin de dependencia slo a aquellas que no se encuentran en segunda forma normal: 1.- Codigo_EmpleadoNombre Por la descomposicin de perdidas obtenemos que la relacin R queda dividida en dos relaciones: R1(Codigo_Empleado,Nombre);

R2(Codigo_Empleado,Cdigo_Dpto,Departamento,Aos)

2.-Realizamos le grafo de dependencias de cada relacin obtenida y comprobamos que R1 se encuentra en 2FN y R2 no se encuentra en 2FN , luego debemos obtener la 2FN de esta relacin procediendo a la descomposin de la dependencia funcional que lo impide. Obteniendo dos relaciones ms: R21(Codigo_dpto,Departamento)

R22(Codigo_Empleado,Codigo_dpto,Aos)

3.-Determinamos que estas dos nuevas relaciones se encuentran en 2FN y finalizamos la descomposicin comprobando que no se ocasion ninguna prdida, es decir, todas las dependencias de la relacin original R permanecen en las relaciones R1,R21 y R22. En su representacin en tablas quedara por ejemplo tal que as:
TABLA R1
Cdigo Empleado Nombre 1 Juan 2 Pedro 3 Sonia 4 Vernica

Tabla R21
Cdigo Departamento Dpto. 2 I+D 3 Sistemas 6 Contabilidad Tabla R22

Cdigo Empleado Cdigo Departamento Aos


1 2 3 4 2 6 3 2 3 6 6 3 1 10 5

EXPLICACION DE LA 3FN - EJEMPLOS


Dependencia transitiva Dada la relacin R(x, y, z) en la que existen las siguientes dependencias funcionales: X y y z se dice que z tiene una dependencia transitiva respecto a x a travs de y. Mediante el grafo de dependencias podemos encontrar de forma fcil las dependencias transitivas

Tercera Forma Normal (3FN) Una relacin R est en 3FN si verifica que: Est en 2FN Ningn atributo no principal depende transitivamente de las claves (no existen dependencias entre atributos no principales) Informalmente podemos decir que una relacin est en 3FN si y solo si los atributos de la relacin dependen nicamente de la clave. Otra forma de indicarlo es que los atributos de la relacin no dependen unos de otros. Ejemplo: Sea la relacin R(codigo_alumno,nombre,curso,aula), dependencias funcionales: Codigo_alumnonombre,curso; Cursoaula; Con la consiguiente tabla: R Cdigo_alumno con las siguientes

1 2 3

Nombre Marcos Lucas Marta

Curso Informtica Ingls Contabilidad

Aula Aula A Aula B Aula C

Realizamos su grafo de dependencias que es tal que as:

1.-Suponemos que la tabla est en 1FN (por los datos de la tabla lo est) y comprobamos que esta en 2FN. Pero existe dependencia funcional transitiva por lo cual no est en 3FN. D 2.-Aplicamos descomposicin sin prdidas para la dependencia que impide la 3FN. Obtenemos: R1(curso,aula)

R2(codigo_alumno,nombre,curso)

Estas dos relaciones se encuentran en 3FN y se conservan las dependencias funcionales de la relacin original R, pues en R2 se mantiene Codigo_alumnonombre y con la unin de las dependencias de R2 Codigo_alumnocurso y R1 cursoaula se mantienen la dependencia Codigo_alumnocursoaula. Quedndonos las tablas normalizadas hasta 3FN:

TABLA R1
Curso Informtica Ingls Contabilidad Aula Aula A Aula B Aula C

TABLA R2
Cdigo Nombre Curso 1 Marcos Informtica 2 Lucas Ingls 3 Marta Contabilidad

EXPLICACION DE LA FNBC y 4FN - EJEMPLOS Y FALLAS


Una tabla est en Forma Normal de Boyce-Codd (FNBC) si ningn atributo no primo determina a un subconjunto de la clave primaria. Informalmente podemos decir que una relacin est en FNBC cuando no existen dependencias funcionales transitivas entre los atributos no primos y los atributos primos. Siendo los atributos primos todos aquellos que forman parte de una clave primaria o clave candidata, y los atributos no primos aquellos que no forman parte de estas claves. Sea por ejemplo la relacin R(a,b,c) con las siguientes dependencias a,bc; cb, siendo c atributo no primo. Tenemos el grafo de dependencias siguiente:

Est relacin no est en FNBC porque existe una dependencia transitiva entre la clave primaria, un atributo no primo (forma parte de la clave) y un atributo primo (forma parte de la clave). Para la misma relacin R pero con las dependencias siguientes a,b c; cb,a obtenemos el grafo de dependencias:

En el grafo de dependencias podemos determinar que c es llave candidata de la relacin al determinar las dos claves primarias, luego la relacin se encuentra en FNBC. Ejemplo: Sea la relacin CURSO (Estudiante, Asignatura, Profesor) en la que un profesor solo imparte una nica asignatura. Con la dependencias funcionales siguientes: Estudiante, Asignatura Profesor; Profesorasignatura Realizamos su grafo de dependencias correspondiente obteniendo:

Sea, por ejemplo, la tabla de la relacin CURSO como la que sigue:

Del grafo de dependencias deducimos que no se encuentra en FNBC, procedemos a su normalizacin hasta FNBC. Aplicamos la regla de descomposicin sin prdidas a la dependencia que impide la restriccin en FNBC, Asignatura Profesor: PROFE_ASIG(profesor,asignatura)

ESTU_PROFE(estudiante,profesor) Quedndonos las tablas:

Si realizamos los grafos de dependencias de las relaciones obtenidas : PROFE_ASIG(profesor,asignatura)

ESTU_PROFE(estudiante,profesor)

Podemos ver que las dependencias funcionales de la relacin original no se conservan.

Slo podemos asegurar una descomposicin sin prdidas para una normalizacin hasta 3FN, a partir de ella no podemos asegurar que no se pierdan dependencias. Si se llega a FNBC y se pierde una dependencia entonces podemos proceder de dos maneras posibles: 1.-Dejamos la normalizacin hasta 3FN. 2.-Rediseamos el entidad-relacin.

9.2.5.- CUARTA FORMA NORMAL (4FN) La cuarta forma normal se ve afectada por la existencias de las denominadas dependencias multivaluadas. Una tabla est en cuarta forma normal si y slo si para cualquier combinacin clave - campo no existen valores duplicados. Sea la relacin GEOMETRA(figura,color,tamao)

GEOMETRIA
Figura Color Cuadrado Rojo Cuadrado Azul Cuadrado Azul Crculo Blanco Crculo Azul Crculo Azul Tamao Grande Grande Mediano Mediano Pequeo Mediano

Vemos que ocurre que cuadrado grande est repetido; de igual forma que lo est crculo azul, entre otras cuantas ms Son estas repeticiones las que se deben evitar para obtenerse una relacin en 4NF.

La solucin en este caso sera descomponer en dos relaciones: TAMAO(figura,tamao) COLOR(figura,color)


TAMAO
Figura Cuadrado Cuadrado Crculo Crculo Tamao Grande Pequeo Mediano Pequeo

COLOR
Figura Color Cuadrado Rojo Cuadrado Azul Crculo Blanco Crculo Azul

Ahora si tenemos nuestra base de datos en 4NF.

Das könnte Ihnen auch gefallen