You are on page 1of 11

24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709

http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 1/11
jakelin2709
A great WordPress.com site
NORMALIZACIN DE BASES DE DATOS
noviembre 30, 2012
Fundamentos de la normalizacin
La normalizacin es el proceso de organizar los datos de una base de datos. Se incluye la creacin de
tablas y el establecimiento de relaciones entre ellas segn reglas diseadas tanto para proteger los datos
como para hacer que la base de datos sea ms flexible al eliminar la redundancia y las dependencias
incoherentes.
Los datos redundantes desperdician el espacio de disco y crean problemas de mantenimiento. Si hay
que cambiar datos que existen en ms de un lugar, se deben cambiar de la misma forma exactamente
en todas sus ubicaciones. Un cambio en la direccin de un cliente es mucho ms fcil de implementar si
los datos slo se almacenan en la tabla Clientes y no en algn otro lugar de la base de datos.
Qu es una dependencia incoherente? Aunque es intuitivo para un usuario mirar en la tabla Clientes
para buscar la direccin de un cliente en particular, puede no tener sentido mirar all el salario del
empleado que llama a ese cliente. El salario del empleado est relacionado con el empleado, o depende
de l, y por lo tanto se debera pasar a la tabla Empleados. Las dependencias incoherentes pueden
dificultar el acceso porque la ruta para encontrar los datos puede no estar o estar
interrumpida.
Hay algunas reglas en la normalizacin de una base de datos. Cada regla se denomina una forma
normal. Si se cumple la primera regla, se dice que la base de datos est en la primera forma normal.
Si se cumplen las tres primeras reglas, la base de datos se considera que est en la tercera forma
normal. Aunque son posibles otros niveles de normalizacin, la tercera forma normal se considera el
mximo nivel necesario para la mayor parte de las aplicaciones.
Primera forma normal
Elimine los grupos repetidos de las tablas individuales.
Cree una tabla independiente para cada conjunto de datos relacionados.
Identifique cada conjunto de datos relacionados con una clave principal.
No use varios campos en una sola tabla para almacenar datos similares. Por ejemplo, para realizar el
seguimiento de un elemento del inventario que proviene de dos orgenes posibles, un registro del
inventario puede contener campos para el Cdigo de proveedor 1 y para el Cdigo de proveedor 2.
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 2/11
Qu ocurre cuando se agrega un tercer proveedor? Agregar un campo no es la respuesta, requiere
modificaciones en las tablas y el programa, y no admite fcilmente un nmero variable de proveedores.
En su lugar, coloque toda la informacin de los proveedores en una tabla independiente denominada
Proveedores y despus vincule el inventario a los proveedores con el nmero de elemento como clave, o
los proveedores al inventario con el cdigo de proveedor como clave.
Al igual que con otras muchas reglas y especificaciones formales, en los escenarios reales no siempre se
cumplen los estndares de forma perfecta. En general, la normalizacin requiere tablas adicionales y
algunos clientes consideran ste un trabajo considerable. Si decide infringir una de las tres primeras
reglas de la normalizacin, asegrese de que su aplicacin se anticipa a los problemas que puedan
aparecer, como la existencia de datos redundantes y de dependencias incoherentes.
En las descripciones siguientes se incluyen ejemplos.

Segunda forma normal
Cree tablas independientes para conjuntos de valores que se apliquen a varios registros.
Relacione estas tablas con una clave externa.
Los registros no deben depender de nada que no sea una clave principal de una tabla, una clave
compuesta si es necesario. Por ejemplo, considere la direccin de un cliente en un sistema de
contabilidad. La direccin se necesita en la tabla Clientes, pero tambin en las tablas Pedidos, Envos,
Facturas, Cuentas por cobrar y Colecciones. En lugar de almacenar la direccin de un cliente como una
entrada independiente en cada una de estas tablas, almacnela en un lugar, ya sea en la tabla Clientes o
en una tabla Direcciones independiente.
Tercera forma normal
Elimine los campos que no dependan de la clave.
Los valores de un registro que no sean parte de la clave de ese registro no pertenecen a la tabla. En
general, siempre que el contenido de un grupo de campos pueda aplicarse a ms de un nico registro
de la tabla, considere colocar estos campos en una tabla independiente. Por ejemplo, en una tabla
Contratacin de empleados, puede incluirse el nombre de la universidad y la direccin de un candidato.
Pero necesita una lista completa de universidades para enviar mensajes de correo electrnico en grupo.
Si la informacin de las universidades se almacena en la tabla Candidatos, no hay forma de enumerar
las universidades que no tengan candidatos en ese momento. Cree una tabla Universidades
independiente y vinclela a la tabla Candidatos con el cdigo de universidad como clave.
EXCEPCIN: cumplir la tercera forma normal, aunque en teora es deseable, no siempre es prctico. Si
tiene una tabla Clientes y desea eliminar todas las dependencias posibles entre los campos, debe crear
tablas independientes para las ciudades, cdigos postales, representantes de venta, clases de clientes y
cualquier otro factor que pueda estar duplicado en varios registros. En teora, la normalizacin merece
el trabajo que supone. Sin embargo, muchas tablas pequeas pueden degradar el rendimiento o
superar la capacidad de memoria o de archivos abiertos.
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 3/11
Puede ser ms factible aplicar la tercera forma normal slo a los datos que cambian con frecuencia. Si
quedan algunos campos dependientes, disee la aplicacin para que pida al usuario que compruebe
todos los campos relacionados cuando cambie alguno.
Otras formas de normalizacin
La cuarta forma normal, tambin llamada Forma normal de BoyceCodd (BCNF, BoyceCodd Normal
Form), y la quinta forma normal existen, pero rara vez se consideran en un diseo real. Si no se aplican
estas reglas, el diseo de la base de datos puede ser menos perfecto, pero no debera afectar a la
funcionalidad.
Normalizar una tabla de ejemplo
Estos pasos demuestran el proceso de normalizacin de una tabla de alumnos ficticia.
1. Tabla sin normalizar:
N alumno Tutor Despacho-Tut Clase1 Clase2 Clase3
1022 Garca 412 101-07 143-01 159-02
4123 Daz 216 201-01 211-02 214-01
1. Primera forma normal: no hay grupos repetidos
Las tablas slo deben tener dos dimensiones. Puesto que un alumno tiene varias clases, estas clases
deben aparecer en una tabla independiente. Los campos Clase1, Clase2 y Clase3 de los registros
anteriores son indicativos de un problema de diseo.
Las hojas de clculo suelen usar la tercera dimensin, pero las tablas no deberan hacerlo. Otra
forma de considerar ese problema es con una relacin de uno a varios y poner el lado de uno y el
lado de varios en tablas distintas. En su lugar, cree otra tabla en la primera forma normal
eliminando el grupo repetido (N clase), segn se muestra a continuacin:
N alumno Tutor Despacho-Tut N clase
1022 Garca 412 101-07
1022 Garca 412 143-01
1022 Garca 412 159-02
4123 Daz 216 201-01
4123 Daz 216 211-02
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 4/11
4123 Daz 216 214-01
1. Segunda forma normal: eliminar los datos redundantes
Observe los diversos valores de N clase para cada valor de N alumno en la tabla anterior. N clase
no depende funcionalmente de N alumno (la clave principal), de modo que la relacin no cumple
la segunda forma normal.
Las dos tablas siguientes demuestran la segunda forma normal:
Alumnos:
N alumno Tutor Despacho-Tut
1022 Garca 412
4123 Daz 216
1. Registro:
N alumno N clase
1022 101-07
1022 143-01
1022 159-02
4123 201-01
4123 211-02
4123 214-01
1. Tercera forma normal: eliminar los datos no dependientes de la clave
En el ltimo ejemplo, Despacho-Tut (el nmero de despacho del tutor) es funcionalmente
dependiente del atributo Tutor. La solucin es pasar ese atributo de la tabla Alumnos a la tabla
Personal, segn se muestra a continuacin:
Alumnos:
N alumno Tutor
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 5/11
1022 Garca
4123 Daz
1. Personal:
Nombre Habitacin Dept
Garca 412 42
Daz 216 42

NORMALIZACIN DE BASES DE DATOS
CASOS PRCTICOS CON SOLUCIN
EJERCICIO1: PRSTAMO LIBROS
Dada la siguiente relacin PRSTAMO_LIBROS (Colegio, ProfesorInfantil,
Asignatura_Habilidades, Aula, Curso, Libro, Editorial, Fecha_Prstamo) que contiene
Informacin relativa a los prstamos que realizan las editoriales a los profesores de primaria de
los colegios para su evaluacin en alguna de las asignaturas/habilidades que imparten. Se pide:
Colegio Profesor
Infantil
Asignatura
/Habilidades
Aula Curso Libro Editorial Fecha
Prstamo
C.P. Cervantes Juan Prez Pensamiento
Lgico
1.A01 1 Aprender y Ensear
en Educacin Infantil
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 6/11
Gra 09/09/2006
C.P. Cervantes Juan Prez Escritura 1.A01 1 Preescolar Rubio, N6 Tcnicas
Rubio
05/05/2005
C.P. Cervantes Juan Prez Pensamiento
Numrico
1.A01 1 Aprender y Ensear
en Educacin Infantil
Gra 05/05/2005
C.P. Cervantes Alicia
Garca
Pensamiento
Espacial,
Temporal y
Causal
1.B01 1 Educacin Infantil N9 Prentice
Hall
06/05/2005
C.P. Cervantes Alicia
Garca
Pensamiento
Numrico
1.B01 1 Aprender y Ensear
en Educacin Infantil
Gra 06/05/2005
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 7/11
C.P. Cervantes Andrs
Fernndez
Escritura 1.A01 2 Aprender y ensear en
Educacin Infantil
Gra 09/09/2006
C.P. Cervantes Andrs
Fernndez
Ingls 1.A01 2 Saber Educar: Gua
para Padres y
Profesores
Temas de
Hoy
05/05/2005
C.P. Quevedo Juan
Mndez
Pensamiento
Lgico
2.B01 1 Saber Educar: Gua
para Padres y
Profesores
Temas de
Hoy
18/12/2006
C.P. Quevedo Juan
Mndez
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 8/11
Pensamiento
Numrico
2.B01 1 Aprender y Ensear
en Educacin Infantil
Gra 06/05/2005
Se pide responder a los siguientes apartados, considerando las tuplas relacin
PRSTAMO_LIBRO mostradas en la tabla anterior, que a un profesor no se le puede prestar
ms de un libro de la misma editorial en el mismo da y que a un profesor no se le puede prestar
ms de una vez un mismo libro:
a) Indicar un ejemplo de anomala de modificacin
PARA MODIFICAR UN PROFESOR HAY QUE MODIFICAR TANTAS TUPLAS
COMO LIBROS LE HAYAN PRESTADO EN CADA ASIGNATURA.
b) Indicar las dependencias funcionales utilizando las siguientes abreviaturas: Colegio (C),
ProfesorInfantil (P), Asignatura_Habilidades (H), Aula (A), Curso (Cu), Libro (L),
Editorial (E) y Fecha_Prstamo (F)
SOLUCIN:
P C
P A
A Cu y transitivamente P Cu
L E
H Cu
P, F, E L L, P, H F
TAMBIN SE HA TOMADO COMO BUENA:
A C
IMPOSIBLES (por ejemplo):
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 9/11
P -/-> H
Cu -/-> P
A -/-> P
C, Cu -/-> A
C, A -/-> Cu
C, H, Cu -/-> A
C, H, A -/-> Cu
E -/-> L
L -/-> F
E -/-> F
E, P -/-> F
c) Cules son sus claves? Cules son los atributos principales? Y los atributos no
principales?
Claves: {PHFE} y {PHL}
AP: {PHFEL}
ANP: {ACCu}
d) En qu forma normal se encuentra la relacin? Explicar por qu.
La relacin est en 1FN porque en la tabla no existen grupos repetitivos y no est en
2FN, porque existen atributos no principales que dependen de forma no-total de las
claves (por ejemplo: PC).EJERCICIO2: GASTOS DE EMPLEADOS
Dada la relacin GASTOS_EMPLEADO(Cod_empleado, Cod_viaje, Destino, Gasto_total) en
la que se cumplen las siguientes dependencias funcionales:
Cod_empleado Gasto_total
Cod_viaje Destino
Se pide:
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 10/11
I. En qu Forma Normal se encuentra la relacin?Por qu?
Clave: [Cod_empleado, Cod_viaje]
ANP: [Gasto_total, Destino]
1FN porque se trata de una relacin y no est en 2FN (los ANP no dependen
totalmente de la clave p.e. Gasto_total depende de Cod_empleado -parte de la
clave-)
II. En caso de que la relacin no est en FNBC, cules son los problemas que tiene la
relacin GASTOS_EMPLEADO?
Redundancias y anomalas de actualizacin (borrado, insercin, modificacin). P.e.
Siempre que se tenga el mismo empleado, el gasto_total ser el mismo.

From Uncategorized
Dejar un comentario
Crea un blog o un sitio web gratuitos con WordPress.com. | El tema Titan.
Seguir
Seguir jakelin2709
You May Like
1.
About these ads (http://wordpress.com/about-these-ads/)
24/9/2014 NORMALIZACIN DE BASES DE DATOS | jakelin2709
http://jakelin2709.wordpress.com/2012/11/30/normalizacion-de-bases-de-datos/ 11/11
Ofrecido por WordPress.com

You might also like