Está en la página 1de 28

NORMALIZACION

Introduccin
El diseo tiene como objetivo obtener una serie
de esquemas que permitan almacenar
informacin, sin redundancia y de fcil acceso.
Las formas normales permiten lograr un buen
diseo.
Para esto se necesita informacin acerca del
problema que se est modelando. Parte de
esta informacin se encuentra en un diagrama
E-R, pero se necesita informacin adicional.

NORMALIZACION
El proceso de normalizacin de una base de datos
consiste en aplicar una serie de reglas a las relaciones
obtenidas en el modelo E-R (entidad-relacin).
Las bases de datos relacionales se normalizan para:
Evitar la redundancia de los datos.
Evitar problemas de actualizacin de los datos en las tablas.
Proteger la integridad de los datos.

En el modelo relacional es frecuente llamar tabla a una


relacin, la cual tiene que cumplir con algunas
restricciones:
Cada columna debe tener su nombre nico.
No puede haber dos renglones iguales. No se permiten los
duplicados.
Todos los datos en una columna deben ser del mismo tipo

Ejemplo
Estamos en un servicio de biblioteca y queremos
llevar el control del prstamo que incluya los
siguientes datos:
Informacin sobre el usuario del servicio, datos del
libro y la informacin sobre el prstamos que se
realiza.

Diagrama E-R para el ejemplo


Estamos en un servicio de biblioteca y queremos llevar el
control del prstamo que incluya los siguientes datos:
Informacin sobre el usuario del servicio, datos del libro y
la informacin sobre el prstamos que se realiza.
usuario

libro

Existe una relacin muchos a muchos que hay que romper.

Primera Forma Normal

En una relacin (tabla) no pueden existir grupos de repeticin, es


decir, un atributo no puede tomar ms de un valor del dominio
subyacente:
Considerando la entidad usuario, sus atributos son:
i_usuario#, n_usuario, i_libro, d_prestamo, d_entrega
Y considerando la entidad libro, sus atributos son:
i_libro#, n_ttulo, n_editorial, n_pas, d_ao

La entidad usuario, presenta el siguiente problema: cada vez que un


usuario pida un libro hay que escribir su nmero de usuario
(i_usuario) y su nombre (n_usuario), adems en la realidad se
tendrn muchos datos ms de los usuarios de la biblioteca.
Qu problemas puede traer esto?
Hacer una tabla con datos y ver que pasa

i_usuario

n_usuario

i_libro

d_prestamo d_entrega

3435

J. Perez

Qa76.9

25/IV/07

13/V/07

3435

J. Perez

Qa76.9

5/X/07

13/X/07

3435

J. Perez

Qa76.893

3/III/07

13/III/07

5678

A. Ramrez

Qa76.9

2/IV/07

3/V/07

Aplicando la Primera Forma


Normal
1.

Identificar grupos de repeticin. En el ejemplo el


grupo de repeticin es lo que est en rojo: i_usuario#,
n_usuario, i_libro, d_prestamo, d_entrega
2. Eliminar grupos de repeticin. Para poderlos eliminar
se crea una nueva tabla con una llave primaria
compuesta, una parte es la llave primaria de la tabla
original (i_usuario) y la otra parte es la llave primaria del
grupo de repeticin (i_libro), las entidades quedan as:
usuario (i_usuario#, n_usuario)
prestamo (i_usuario#, i_libro#, d_prestamo, d_entrega)

De una entidad se crearon 2 entidades

La entidad libro queda igual


libro(i_libro#, n_ttulo, n_editorial, n_pas, d_ao)

Segunda Forma Normal

Establece que todas las dependencias parciales se deben eliminar y


separar dentro de sus propias tablas. Una dependencia parcial es un
atributo que no depende completamente de la llave primaria. Normalmente
se presenta cuando la llave primaria es compuesta, es decir, que est
formada por dos atributos.
Analizando la entidad prstamo que es la que tiene la llave primaria
compuesta:

prestamo (i_usuario#, i_libro#, d_prestamo, d_entrega)


En este ejemplo todas las entidades se encuentran en 2
FN, ya que los atributos d_prestamo y d_entrega
dependen completamente de la llave primaria
compuesta y no de una parte de sta.

Aplicando la Segunda Forma


Normal

Cuando alguna entidad se encuentre en


2fn, ser necesario:

1.
2.

Determinar cules atributos no dependen de la llave


primaria compuesta de la tabla.
Eliminar esas columnas de la tabla base.

3.

Crear una segunda tabla con esos atributos cuya llave


primaria ser el atributo del cual dependen.

Tercera Forma Normal


Una relacin est en 3FN si no hay dependencias
transitivas. Una dependencia transitiva es aquella en la
cual existen columnas (atributos) que dependen de otras
columnas (atributos) que tampoco son llave.
En el ejemplo, estas dos entidades estn en 3FN:

usuario (i_usuario#, n_usuario)


prestamo (i_usuario#, i_libro#, d_prestamo,
d_entrega)
Pero en esta entidad se puede aplicar la 3FN
libro(i_libro#, n_ttulo, n_editorial, n_pas,
d_ao)

Aplicando la Tercera Forma Normal

1.

Los pasos a seguir son:


Determinar que columnas son dependientes de otra columna no
llave.

2.
3.

En el ejemplo el atributo n_pais y d_ao dependen del atributo no


llave n_editorial, por lo tanto se puede sacar a otra entidad.

Eliminar esas columnas de la tabla base


Crear otra tabla con esas columnas y con la columna no llave de
la cual son dependientes, crear una llave primaria para esta
tabla.
- En el ejemplo, a partir de la entidad libro quedaran las
siguientes dos entidades:
libro(i_libro#, n_ttulo, n_editorial, n_pas, d_ao)
editorial(i_editorial#, n_editorial, n_editorial, n_pas, d_ao)

Ejercicio
Crear el diagrama entidad relacin para el
ejemplo del prstamo de la biblioteca
Incluir atributos y cardinalidad.

Estamos en un servicio de biblioteca y queremos llevar el


control del prstamo que incluya los siguientes datos:
Informacin sobre el usuario del servicio, datos del libro y
la informacin sobre el prstamos que se realiza.
usuario

libro

Hay que romper la relacin muchos a muchos, creando una relacin intermedia

usuario

prestamo

libro

EJERCICIO
Se requiere tener la informacin sobre los alumnos
de los distintos programas de posgrado de la
universidad. Sus datos generales. Que grado
cursan (especialidad, maestra y/o doctorado) y el
nombre del programa, que materias han
cursado, que calificacin llevan en cada una de
ellas, en que perodo la cursaron y con que profesor.
De cada materia se necesita saber clave, su rea y el
nmero de crditos.

METODOLOGA
Identificar entidad(es): Definir objetos
como personas, lugares o conceptos
sobre los que se quiere tener informacin.
Identificar atributos: Definir las
propiedades de cada entidad
Determinar llave primaria

EJEMPLO
ENTIDADES: alumno
ATRIBUTOS: expediente, nombre, clave_mat,
calificacion, trimestre, creditos, materia
LLAVE PRIMARIA: expediente
La entidad resultante es:
alumno(expediente#, nombre, grado, programa
clave_mat, materia, profesor,
periodo_cursada, calificacion, creditos,
rea)

NORMALIZACION: 1FN
1FN: Identificar grupos de repeticin en cada
entidad
Cada grupo de repeticin sacarlo a una nueva
entidad. Su llave primaria ser una llave
primaria compuesta (2 atributos)

Aplicacin Primera Forma Normal


IDENTIFICAR GRUPO(S) DE REPETICION:
alumno(expediente#, nombre, grado, programa
(clave_mat, materia, profesor,
periodo_cursada, calificacion, creditos, rea))
SACAR GRUPO REPETICION A NUEVA
ENTIDAD:
alumno(expediente#, nombre, grado, programa)
alumno-materia(expediente#, clave_mat#,
materia, profesor, periodo_cursada,
calificacion, creditos, rea))

NORMALIZACION: 2FN
Identificar atributos que no dependen
completamente de la llave primaria
compuesta
Sacar a una nueva entidad los atributos
que no dependen completamente de la
llave primaria compuesta. La llave
primaria de esta nueva entidad ser la
parte de la llave primaria compuesta de
la cual dependen estos atributos.

Aplicacin Segunda Forma Normal


IDENTIFICAR ATRIBUTOS QUE NO DEPENDEN
COMPLETAMENTE DE expediente#-materia#:
materia, crditos, rea SACARLOS A OTRA
ENTIDAD CON SU LLAVE PRIMARIA
alumno(expediente#, nombre, grado, programa)
alumno-materia(expediente#, clave_mat#,
periodo_cursada#, profesor, calificacion,))
materia(clave_mat#, materia, creditos, rea)

NORMALIZACIN: 3FN
Identificar atributos no llave que dependan de otro atributo no llave
alumno
nombre
expediente# grado
programa
alumno-materia
expediente#, clave_mat#, periodo_cursada#,

profesor,
calificacion

materia

materia
clave_mat# creditos
rea
Analizar: un alumno puede estar en ms de un programa? ya sea al mismo
tiempo o al finalizar uno, iniciar otro?
Conviene un catlogo de programas que se imparten en el CADIT?

Ejercicio
Se desea llevar el control de los trabajos de
investigacin que estn realizando los investigadores de
un instituto. De cada investigador se requieren sus
datos generales, sus grados acadmicos, su experiencia
profesional, lugar de trabajo, etc. De los trabajos
realizados se requiere, ttulo, autor(es), tema, resumen,
revista en la que se public y/o congreso.
Disear la base de datos que puede guardar esta
informacin, siguiendo las reglas de la normalizacin.
Hay informacin adicional que se pueda requerir?

Ejercicio

Obtener las tablas y normalizar las tablas:


IDENTIFICACION DE LAS VISTAS DEL USUARIO
El equipo de diseo entrevist a los posibles usuarios del sistema
en el hospital, incluyendo enfermeras, doctores, administradores,
etc. Obtuvieron muestras de reportes existentes y otros documentos
para la operacin del hospital. A partir de lo anterior se identificaron
cuatro vistas de datos significativas para el hospital:

VISTA 1: FACTURA DEL PACIENTE


La primera vista es la de la factura del paciente. Los cargos de
cada paciente se acumulan durante su estancia en el hospital.
Una vez dado de alta se debern facturar los cargos correspondientes.
La factura contiene los siguientes datos
Nombre del paciente, nmero del paciente, direccin del paciente,
fecha de ingreso, fecha de salida.
En columnas aparecen la clave del servicio, su descripcibn
(cuarto, rayos X, televisin, pruebas de laboratorio, etc)
y el cargo por cada una.

VISTA 2: UTILIZACION DE CUARTOS


El reporte de utilizacin de cuartos es un reporte diario que muestra
el status de cada cuarto y cama en el hospital. Este reporte se usa
principalmente para la asignacin de camas y el control de la
utilizacin
de cuartos y camas.
El reporte que se utiliza para llevar el control de cuartos contiene
los
siguientes datos: Fecha en la que se hace el reporte, Nmero de
cuarto
Tipo de cuarto, Paciente_nmero, Paciente_nombre, Fecha de
entrada
Fecha de salida

La columna NUMERO DE CUARTO en el reporte indica


el nmero
de cuarto y el nmero de cama que ocupa el paciente,
por ejemplo
101-2 es el cuarto 101 y la cama 2. El tipo de cuarto
puede ser privado
(PR) y semiprivado (SP). Las columnas restantes
contienen informacin
acerca del paciente (si es que lo hay), asignado a esa
cama y a ese
cuarto en el momento de que se prepar el reporte.

VISTA 3: DATOS DEL PACIENTE


Los datos del paciente se presentan porque cualquier doctor,
enfermera o miembros del hospital pueden necesitarlos.
Suponemos que el usuario deber introducir el nmero del
paciente para desplegar los datos de un paciente (en la prctica,
el sistema probablemente soportar una bsqueda en funcin
del nombre)

El reporte del paciente recibe los siguientes datos:


nmero_paciente,
nombre_paciente, direccin_paciente, fecha_ingreso, fecha_salida,
nmero_cuarto, extensin.

VISTA 4: REPORTE MEDICO


El reporte mdico se prepara diario para cada mdico del grupo
del hospital, mostrando los pacientes que han sido tratado y el
nombre del tratamiento. Para simplificar el anlisis, suponemos
que cada paciente puede recibir solo un tratamiento de un mdico
cada da.

El reporte mdico tiene los siguientes datos: fecha del reporte


mdico encargado, telfono del mdico
y columnas con los siguientes datos: nmero_paciente,
nombre_paciente, nmero_cuarto,tratamiento

También podría gustarte