Beruflich Dokumente
Kultur Dokumente
Normalizacin
El proceso de normalizacin consiste en
verificar el cumplimiento de ciertas reglas
que aseguran la eliminacin de redundancias e
inconsistencias.
NORMALIZACIN
normales
o correctas.
Relaciones
Normalizacin
Las relaciones resultantes deben cumplir
ciertas caractersticas:
Se debe conservar la informacin:
Conservacin de los atributos.
Conservacin de las tuplas, evitando la aparicin
de tuplas que no estaban en las relaciones
originales.
EJEMPLO APLICANDO LA
NORMALIZACIN
Guardar datos relacionados con la
administracin de un hotel.
BD
1FN
Para que una base de datos sea 1FN,
es decir, que cumpla la primera
forma normal, cada columna debe
ser atmica.
Atmica significa "indivisible", es
decir, cada atributo debe contener
un nico valor del dominio.
1 FN
Aplicar la primera forma normal es muy simple, bastar
con dividir cada columna no atmica en tantas
columnas atmicas como sea necesario y definir
oscarsl@h
otmail.com
101
$1,200.00
sencilla
12/06/09
1FN
ap_pater
no
ap_mater
no
no_ha
b
precio_n
oche
tipo_ha
bitacio
n
fecha_e
ntrada
Oscar
Snchez
Lpez
oscarsl@hotm
ail.com
101
$1,200.00
sencilla
12/06/09
Primary Key
(No_habitacin, fecha_entrada)
Dos ocupaciones son diferentes si cambian
cualquiera de estos parmetros. La misma
persona puede reservar varias habitaciones al
mismo tiempo o la misma habitacin durante
varios das o en diferentes periodos de tiempo. Lo
que no es posible es que varias personas ocupen
la misma habitacin al mismo tiempo (salvo que se
trate de un acompaante, pero en ese caso, slo
una de las personas es la titular de la ocupacin).
2 FN
Para que una base de datos sea 2FN
primero debe ser 1FN y
los
atributos que no aporten informacin
directa sobre la clave principal deben
almacenarse en una relacin (tabla)
separada.
Si no existe un candidato claro para
la clave principal, se crear una
columna
especfica
con
ese
propsito.
2 FN
EJEMPLO:
Ocupacin (nombre_cliente, ap_paterno, ap_materno, e-mail,
no_hab, precio_noche, tipo_habitacin, fecha_entrada)
El siguiente paso consiste en buscar columnas que no
aporten informacin directa sobre la clave completa. En
este caso el precio por noche de la habitacin y el tipo de
habitacin (es decir, si es doble o sencilla), no aportan
informacin sobre la clave principal. En realidad, estos datos no
son atributos de la ocupacin de la habitacin, sino de la propia
habitacin.
nombr ap_pater ap_mater
e-mail
no_ha precio_noch tipo_ha fecha_e
e_clien
te
no
no
Oscar
Snchez
Lpez
oscarsl@hotm
ail.com
bitacio
n
ntrada
101
$1,200.00
sencilla
12/06/09
2 FN
El siguiente paso consiste en extraer esos
atributos que no forman parte de la clave a
otra relacin. En nuestro ejemplo tendremos
dos relaciones: una para las ocupaciones y
otra para las habitaciones:
Ocupacin (nombre_cliente, ap_paterno,
ap_materno, e-mail, no_hab, fecha_entrada (PK))
nombr
e_clien
te
ap_pater
no
ap_mater
no
no_ha
b
fecha_e
ntrada
Oscar
Snchez
Lpez
oscarsl@hotm
ail.com
101
12/06/09
2FN
Habitacin(no_hab(PK),
precio_noche, tipo_habitacin)
no_hab
precio_noche
tipo_habitacion
101
1,200
sencilla
3 FN
Est en 3FN si est en 2FN y adems todas las columnas que
no sean claves dependen de la clave primaria de forma no
transitiva.
nombr
e_clien
te
ap_pater
no
ap_mater
no
no_ha
b
fecha_e
ntrada
Oscar
Snchez
Lpez
oscarsl@hotm
ail.com
101
12/06/09
no_hab
cve_habitacion
101
T1
cve_habita
cion
descripc
ion
precio
T1
Sencilla
1,200
T2
Doble
1,800
T3
Triple
2,000
CONCLUSIONES
Se trata de facilitar el trabajo y
evitar problemas de redundancia e
integridad, y no de lo contrario.
Debemos considerar las ventajas o
necesidades de aplicar cada norma
en cada caso, y no excedernos por
intentar
aplicar
las
normas
demasiado al pi de la letra.