Normalizacion Bases de Datos
Normalizacion Bases de Datos
Normalizacion Bases de Datos
Base de Datos 1
Normalizacin
Dependencias transitivas
Dependencias funcionales
Dependencias triviales
Dependencia parcial
Qu es la normalizacin
La normalizacin es el proceso mediante el cual se transforman datos
complejos a un conjunto de estructuras de datos ms pequeas, que adems de
ser ms simples y ms estables, son ms fciles de mantener. Tambin se puede
entender la normalizacin como una serie de reglas que sirven para ayudar a los
diseadores de bases de datos a desarrollar un esquema que minimice los
problemas de lgica. Cada regla est basada en la que le antecede. La
normalizacin se adopt porque el viejo estilo de poner todos los datos en un solo
lugar, como un archivo o una tabla de la base de datos, era ineficiente y conduca
a errores de lgica cuando se trataban de manipular los datos.
La normalizacin tambin hace las cosas fciles de entender. Los seres
humanos tenemos la tendencia de simplificar las cosas al mximo. Lo hacemos
con casi todo, desde los animales hasta con los automviles. Vemos una imagen
de gran tamao y la hacemos ms simple agrupando cosas similares juntas. Las
guas que la normalizacin provee crean el marco de referencia para simplificar
una estructura de datos compleja.
Otra ventaja de la normalizacin de base de datos es el consumo de espacio.
Una base de datos normalizada ocupa menos espacio en disco que una no
normalizada. Hay menos repeticin de datos, lo que tiene como consecuencia un
mucho menor uso de espacio en disco. El proceso de normalizacin tiene un
nombre y una serie de reglas para cada fase. Esto puede parecer un poco confuso
al principio, pero poco a poco se va entendiendo el proceso, as como las razones
para hacerlo de esta manera.
Existen seis niveles formas de normalizacin: Primera Forma Normal (1NF),
Segunda Forma Normal (2NF), Tercera Forma Normal (3NF), Forma Normal
Boyce-Codd, Cuarta Forma Normal (4NF), Quinta Forma Normal (5NF) o Forma
Normal de Proyeccin-Unin, Forma Normal de Proyeccin-Unin Fuerte, Forma
Normal de Proyeccin-Unin Extra Fuerte y Forma Normal de Clave de Dominio.
Estas formas de normalizacin pueden llevar las cosas ms all de lo que
necesitamos. stas existen para hacer una base de datos realmente relacional.
Tienen que ver principalmente con dependencias mltiples y claves relacionales.
Una tabla est normalizada en esta forma si todas las columnas que no son
clave son funcionalmente dependientes por completo de la clave primaria y no hay
dependencias transitivas. Una dependencia transitiva es aquella en la cual las
columnas que no son clave son dependientes de otras columnas que tampoco son
clave
Es decir, sucede cuando una tabla est en 2FN y adems ningn atributo
que no sea clave depende transitivamente de las claves de la tabla, es por ello
que no ocurre cuando algn atributo depende funcionalmente de atributos que no
son clave.
Los Pasos a seguir son:
Determinar las columnas que son dependientes de otra columna no clave.
Eliminar esas columnas de la tabla base.
Crear una segunda tabla con esas columnas y con la columna no clave de
la cual son dependientes
Es una versin ligeramente ms fuerte de la 3FN. La forma normal de BoyceCodd requiere que no existan dependencias funcionales no triviales de los
atributos que no sean un conjunto de la clave candidata. En una tabla en 3FN,
todos los atributos dependen de una clave, de la clave completa y de ninguna otra
cosa excepto de la clave (excluyendo dependencias triviales).
Se dice que una tabla est en FNBC si y solo si est en 3FN y cada
dependencia funcional no trivial tiene una clave candidata como determinante. En
trminos menos formales, una tabla est en FNBC si est en 3FN y los nicos
determinantes son claves candidatas.
Ejemplos
1 Ejemplo
Fecha
Id_client
e
Nom_client
e
Estado
Num_art
nom_art
Precio
Red
Raqueta
Paq-3
can
t
3
6
8
2301
23/02/11
101
Martin
Caracas
3786
4011
9132
2302
25/02/11
107
Herman
Coro
5794
Paq-6
5,00
2303
27/02/11
110
Pedro
Maraca
y
4011
3141
Raqueta
Funda
2
2
65,00
10,00
35,00
65,00
4,75
9132
5794
Id_clien
te
101
Nom_clien
te
Martin
107
Herman
110
Pedro
nom_ar
t
Red
Raquet
a
Paq-3
Paq-6
cant
Estad
o
Caraca
s
Coro
Marac
ay
3
6
Preci
o
35,00
65,00
8
4
4,75
5,00
2303
4011
2303
3141
Raquet
a
Funda
65,00
10,00
Nom_cliente,
estado)
9132
5794
3141
a
Paq-3
Paq-6
Funda
4,75
5,00
10,00
La 3FN nos dice que tenemos que eliminar cualquier columna no clave que sea
dependiente de otra columna no clave.
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 ESTADO 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 ORDENES se muestran a continuacin.
Articulos_ordenes (id_orden, num_art, cant)
Articulos_ordenes
Id_orde Num_a cant
n
rt
2301
3786
3
2301
4011
6
2301
9132
8
2302
5794
4
2303
4011
2
2303
3141
2
Articulos ( num_art, nom_art, precio)
Articulos
Num_ar nom_ar Preci
t
t
o
3786
Red
35,00
4011
Raquet 65,00
a
9132
Paq-3
4,75
5794
Paq-6
5,00
3141
Funda
10,00
ordenes (id_orden, fecha, id_cliente)
Ordenes
Id_orde Fecha Id_clien
n
te
2301
23/02/1 101
1
2302
25/02/1 107
2303
1
27/02/1 110
1
3 Ejemplo
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
Titulo
Autor
Editorial
NombreLector
FechaDev
1001
Variable
compleja
Murray Spiegel
McGraw Hill
Prez
Juan
15/04/2005
1004
Visual Basic 5
E. Petroustsos
Anaya
17/04/2005
1005
Estadstica
Murray Spiegel
McGraw Hill
Roca, Ren
16/04/2005
1006
Nancy
Oracle University Greenberg
Priya Nathan
Garca
Luis
Roque,
20/04/2005
1007
Clipper 5.01
Prez
Juan
Gmez,
Ramalho
y Oracle Corp.
McGraw Hill
Gmez,
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)
Autor
Editorial
1001
Variable
compleja
Murray Spiegel
McGraw Hill
Prez
Gmez
Juan
15/04/2005
1004
Visual Basic 5
E. Petroustsos
Anaya
Ros
Tern
Ana
17/04/2005
1005
Estadstica
Murray Spiegel
McGraw Hill
Roca
Ren
16/04/2005
1006
Roque
Luis
20/04/2005
1006
Roque
Luis
20/04/2005
1007
Clipper 5.01
McGraw Hill
Gmez
Juan
18/04/2005
Ramalho
Prez
Autor
Editorial
McGraw H
ill
1001
Variable
compleja
Murray Spieg
el
1004
Visual Basic 5
E. Petroustso
Anaya
s
1005
Estadstica
Murray Spieg
el
1006
1006
Oracle Univer
Priya Nathan
sity
Oracle Cor
p.
1007
Clipper 5.01
McGraw H
ill
Ramalho
McGraw H
ill
Prez
Gme
Juan
z
502
Ros
Tern
503
Roca
504
Garc
Roque Luis
a
Ana
Ren
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:
CodLi
bro
CodLec FechaD
tor
ev
1001
501
15/04/2
005
502
17/04/2
005
1005
503
16/04/2
005
1006
504
20/04/2
005
1007
501
18/04/2
005
1004
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
CodLibr Titulo
o
1001
Variable
compleja
1004
Visual Basic 5
1005
Estadstica
1006
Oracle Univers
ity
1007
Clipper 5.01
CodAut Autor
or
801
Murray Spiegel
802
E. Petroustsos
803
Nancy Greenb
erg
804
Priya Nathan
806
Ramalho
CodEditori Editorial
al
901
McGraw Hi
ll
902
Anaya
903
Oracle Cor
p.
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.
CodLibr codAut
o
or
1001
801
1004
802
1005
801
1006
803
1006
804
1007
806
CodLibr codEditori
o
al
1001
901
1004
902
1005
901
1006
903
1007
901
501
502
Ros
503
Roca
504
Tern
Ana
Ren
501
15/04/2005
1004
502
17/04/2005
503
16/04/2005
1006
504
20/04/2005
1007
501
18/04/2005
4 Ejemplo
Aplique la forma Boyce Codd
Esa tabla est en tercera forma normal (no hay dependencias transitivas), pero no
en forma de Boyce - Codd, ya que (DNI, Asignatura) Tutor y TutorAsignatura.
En este caso la redundancia ocurre por mala seleccin de clave. La redundancia
de la asignatura es completamente evitable. La solucin sera:
Especialidad
Curso
S01
Sistemas
Natacin
S01
Bioqumica
Danza
S01
Sistemas
Natacin
B01
Bioqumica
Guitarra
C03
Civil
Natacin
En esta tabla existen dependencias de valores mltiples
Las dependencias de valores mltiples se definen de la siguiente manera: Clave
->->Especialidad y Clave->->Curso; Esto se lee "Clave multidetErmina a
Especialidad, y clave multidetermina a Curso"
Para nuestro ejemplo, las tablas correspondientes son:
Tabla Especialidad
Clave Especialidad
S01
B01
C03
Sistemas
Bioqumica
Civil
Tabla Curso
Clave Curso
S01
Natacin
S01
Danza
B01
Guitarra
C03
Natacin
7 Ejemplo
En la siguiente tabla aplique la 4FN
8 Ejemplo
Ejercicios Propuestos
1. FACTURA DE COMPRA VENTA: La empresa COLOMBIAN SYSTEMS lo ha
contratado como el Ingeniero Encargado para sistematizar la facturacin. En la
siguiente FACTURA DE COMPRA VENTA, usted debe analizar toda la informacin
disponible y aplique el proceso de normalizacin, hasta llegar a la Tercera Forma
Normal.
Se pide realizar la respectiva justificacin detallada de cada uno de los pasos que
conduzcan al resultado final.
Factura(NUM_FAC,
FECHA_FAC,
NOM_CLIENTE,
DIR_CLIENTE,
RIF_CLIENTE,
CIUDAD_CLIENTE,
TELEF_CLIENTE,
CATEGORIA,
COD_PROD, DESP_PROD, VAL_UNIT, CANT_PROD)
Donde:
NUM_FAC: Nmero de la factura de compra venta
FECHA_FAC: Fecha de la factura de compra venta
NOM_CLIENTE: Nombre del cliente
DIR_CLIENTE: Direccin del cliente
RIF_CLIENTE: Rif del cliente
CIUDAD_CLIENTE: Ciudad del cliente
TELEF_CLIENTE: Telfono del cliente
CATEGORIA: Categora del producto
COD_PROD: Cdigo del producto
DESCRIPCION: Descripcin del producto
VAL_UNIT: Valor unitario del producto
CANT_PROD: Cantidad de productos q compra el cliente
La llave primaria es Nmero de Factura de venta: NUM_FAC
2. EMPRESA DE ENVIO DE MERCANCIA: a continuacin se agrupan todos los
atributos que hacen parte de la base de datos para aplicarle las reglas de
normalizacin. Donde se incluyen los nombres de los atributos con su significado
* GUIA_NO = Numero de Guia
* GUIA_FECHA= Fecha de la Guia
* GUIA_HORA= Hora de la Guia
* ORGN_RIF = Identificacion de Empresa Origen
* ORGN_NOM = Nombre de Empresa Origen
* ORGN_ACT = Actividad Comercial de Empresa Origen
* ORGN_CIUDAD= Ciudad de Empresa Origen
* ORGN_DIR = Direccion de Empresa Origen
* ORGN_TEL = Telefono de Empresa Origen
Donde:
cod_alquiler = Codigo del alquiler
num_membresia = Numero de membresia
cod_cliente = cdigo del cliente
nom_cliente = nombre del cliente
dir_cliente = direccin del cliente
telef_cliente = telfono del cliente
cod_cassette = cdigo del cassette
fecha_alquiler = fecha del alquiler del al pelcula
fecha_dev = fecha de devolucin de la pelicula
valor_alquiler = valor del alquiler de la pelcula
cantidad = cantidad de pelcula alquilada
num_copias = nmeros de copias de cassette
formato = formato del cassette
titulo = nombre de la pelcula
categora = categora de la pelcula
cod_actor = cdigo del actor
nom_actor = nombre del actor
fechanac_actor = fecha de nacimiento del actor
cod_tipo = cdigo del tipo de pelcula.
4. Dada la siguiente relacin PRESTAMO_LIBROS (Colegio, profesor,
asignatura_habilidad, aula, curso, libro, editorial, fecha_prestamo) que contiene
informacin relativa a los prestamos 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 aplicar las reglas de normalizacin
y obtener su modelo relacional, indicar sus claves, atributos principales.
Colegio
Profesor
Asignatura/
habilidad
Aula
Curs
o
C.P
Cervante
s
Juan
Prez
Pensamient
o Lgico
1.A0
1
1er
Grado
C.P
Cervante
s
Juan
Prez
Escritura
1.A0
1
1er
Grado
C.P
Cervante
s
Juan
Prez
Pensamient
o Numrico
1.A0
1
1er
Grado
C.P
Cervante
Alicia
Garca
Pensamient
o Espacial,
1.B0
1
1er
Grado
Libro
Aprender
y ensear
en
educacin
infantil
Preescola
r
Rubio,N5
6
Aprender
y Ensear
en
educacin
infantil
Educacin
Infantil N9
Editoria
l
Fecha_prestam
o
Gra
09/09/2010
Tcnica
s Rubio
05/05/2010
Gra
05/05/2010
Prentice
Hall
06/05/2010
Temporal y
causal
s
C.P
Cervante
s
Alicia
Garca
Pensamient
o Numrico
1.B0
1
1er
Grado
C.P
Cervante
s
Andrs
Fernnde
z
Escritura
1.A0
1
2do
Grado
C.P
Cervante
s
Andrs
Fernnde
z
Ingles
1.A0
1
2do
Grado
C.P
Quevedo
Juan
Mndez
Pensamient
o Lgico
2.B0
1
1er
Grado
C.P
Quevedo
Juan
Mndez
Pensamient
o Numrico
2.B0
1
1er
Grado
Aprender
y ensear
en
educacin
infantil
Aprender
y ensear
en
educacin
infantil
Saber
educar:
gua para
Padres y
Profesore
s
Saber
educar:
gua para
Padres y
Profesore
s
Aprender
y ensear
en
educacin
infantil
Gra
06/05/2010
Gra
09/09/2010
Temas
de Hoy
05/05/2010
Temas
de Hoy
18/12/2010
Gra
06/05/2010
Nombre/
alumno
Luis
Zuloaga
Luis
Zuloaga
Luis
Zuloaga
Especialid
ad
Cdigo/
curso
Nombre_curs
o
Industrial
MA123
Matemtica 2
Industrial
QU514
Fsica Qumica
Industrial
AU521
Descriptiva
Ral Rojas
Sistemas
PA714
Investigacin 1
Ral Rojas
Sistemas
MA123
Matemtica 2
Ral Rojas
Sistemas
AU511
Dibujo
Nombre/
docente
Carlos
Arambulo
Petra
Rondinel
Vctor
Moncada
Cesar
Fernadez
Carlos
Arambulo
Vctor
Oficina
curs
o
CB-214
CB-110
CB-120
SC-220
CB-214
CB-120
Moncada
Titulo
Autor
Editorial
nombreLector
Fechadev
Variable
compleja
Murray Spiegel
McGraw Hill
Prez Gmez,
Juan
15/04/2005
1004
Visual Basic 5
E. Petroustsos
Anaya
17/04/2005
1005
Estadstica
Murray Spiegel
McGraw Hill
Roca, Ren
16/04/2005
1006
Oracle
University
Oracle Corp.
Garca Roque,
Luis
20/04/2005
1007
Clipper 5.01
Ramalho
McGraw Hill
Prez Gmez,
Juan
18/04/2005
1001
Nombre_Prof
P. Martnez
L. Moreno
P. Martnez
E. Castro
D. Cuadra
P. Martnez
F. Calle
P. Martnez
Despacho_Prof
2.2.B05
2.2.A10
2.2.B05
2.2.B23
2.1.B23
2.2.B05
2.1.C11
2.2.B05
Recurso
R122
R100
R200
R122
R200
R300
R300
R122
Descripcin
Tablet PC
Impresora
Porttil
Tablet PC
Porttil
Scaner
Scaner
Tablet PC
Fecha_inicio
1-1-2007
1-1-2007
12-1-2007
16-1-2007
23-1-2007
1-1-2007
1-2-2007
1-2-2007
Fecha_fin
15-1-2007
15-1-2007
22-1-2007
31-1-2007
26-1-2007
15-1-2007
6-2-2007
6-2-2007
Nombre
P. Martn
L. Sanz
D. Daz
P. Martn
E. Lpez
Cdigo_Tienda
100A
100A
100A
200B
300C
Direccin _Tienda
Avd. Mayor, 23, Alcorcn
Avd. Mayor, 23, Alcorcn
Avd. Mayor, 23, Alcorcn
C/ Sur 13, Alcorcn
Pl. Central, Getafe
Turno
M
M
T
T
M
Fecha
2/9/06
2/9/06
2/9/06
3/9/06
3/9/06
99887766
11223344
99887766
44556689
33456456
F. Monte
E. Lpez
F. Monte
L. Sanz
P. Martn
200B
300C
100A
100A
200B
M
M
M
T
M
3/9/06
4/9/06
4/9/06
4/9/06
5/9/06
9. ACTIVIDADES
DEPORTIVAS:
Dada
la
siguiente
relacin
SE
REALIZA(Cod_Actividad, Nombre_Actividad, DNI_Monitor, Nombre_monitor, Sala,
Fecha, Hora_I, Hora_F) utilizada para almacenar informacin sobre la fecha y
duracin de las actividades deportivas que se organizan en un colegio Se pide: