Está en la página 1de 11

Bases de Datos

Modelo Relacional: Normalizacin

CONTENIDO
1. Definicin Normalizacin
2. Proceso de normalizacin
3. DEFINICIONES BSICAS
a. Dependencia Funcional (d.f.)
b. Definicin de Dependencia Funcional Completa
c. Teorema de descomposicin
4. Formas normales
a. Definicin de la primera forma normal (1nf)
b. Definicin de la Segunda Forma Normal (2NF)
c. Definicin de la Tercera Forma Normal (3NF)
d. Forma Normal de Boyce-Codd
5. Introduccin a la teora relacional de bases de datos
a. Cerraduras y coberturas mnimas
b. Axiomas de inferencia de armstrong:
c. Saturacin:
d. Cobertura mnima
NORMALIZACIN
La normalizacin es una tcnica para disear la estructura lgica de los datos de un
sistema de informacin en el modelo relacional, desarrollada por E. F. Codd en 1972. Esta es
una etapa posterior a la correspondencia entre el esquema conceptual y el esquema lgico, que
elimina las dependencias entre atributos no deseadas. Las ventajas de la normalizacin son las
siguientes:
Evita anomalas en inserciones, modificaciones y borrados.
Mejora la independencia de datos.
No establece restricciones artificiales en la estructura de los datos.
El diseo de bases de datos conceptual proporciona el esquema de relaciones y sus
restricciones de integridad que sirve como punto inicial para el proceso de implementacin de
la base de datos.
El proceso de normalizacin es un estndar que consiste, bsicamente, en un proceso de
conversin de las relaciones, evitando:
La redundancia de los datos: repeticin de datos en un sistema.
Anomalas de actualizacin: inconsistencias de los datos como resultado de datos
redundantes y actualizaciones parciales.
Anomalas de borrado: prdidas no intencionadas de datos debido a que se han borrado
otros datos.
Anomalas de insercin: imposibilidad de adicionar datos en la base de datos debido a la
ausencia de otros datos.
Ejemplo: Analicemos la siguiente relacin: ESCRIBE

Bases de Datos
AUTOR
Date, C.
Date, C.
Date, C.
Codd,E.
Gardarin
Gardarin
Valduriez
Kim,W.
Lochovsky

NACIONALIDAD
Norteamericana
Norteamericana
Norteamericana
Norteamericana
Francesa
Francesa
Francesa
Norteamericana
Canadiense

Modelo Relacional: Normalizacin


COD_LIBRO
98987
97777
98987
7890
12345
67890
67890
11223
11223

TITULO
Database
SQL Stan
Guide for
Relational
Basi Dati
Comp BD
Comp BD
BD OO
BD OO

EDITORIAL
Addison
Addison, W.
Addison, W.
Addison,W.
Paraninfo
Eyrolles
Eyrolles
ACM
ACM

AO
1990
1986
1988
1990
1986
1984
1984
1989
1989

Esta relacin almacena datos de autores y de libros.


Algunos problemas son:
Redundancia, ya que la nacionalidad del autor se repite por cada ocurrencia del mismo.
Lo mismo sucede cuando un libro tiene ms de un autor, se repite la editorial y el ao
de publicacin.
Anomalas de modificacin, es fcil cambiar el nombre de una editorial en una tupla sin
modificar el resto de las que corresponden al mismo libro, lo que da lugar a
incoherencias.
Anomalas de insercin, ya que si queremos ingresar informacin de algn autor, del que
no hubiera ningn libro en la base datos, no sera posible, ya que cod_libro es parte de
la clave primaria de la relacin (regla de integridad de la entidad). La insercin de un
libro, que tiene dos autores obliga a insertar dos tuplas en la relacin.
Anomalas de borrado, ya que si queremos eliminar un cierto libro, deberamos perder
los datos de su autor y viceversa.

En los casos anteriores, se deja en manos del usuario manejar la integridad de la base
de datos. Lo anterior sucede pues no se cumple un hecho bsico de todo diseo:

"hechos distintos, deben almacenarse en objetos distintos"

Una forma de evitar este tipo de problemas consiste en seguir la metodologa


propuesta en el curso, es decir, un riguroso diseo conceptual y un traspaso de ste al modelo
relacional. Sin embargo, ante posibles dudas respecto a si un esquema relacional est correcto,
aplicaremos a dicho esquema un mtodo formal de anlisis, que permita analizar errores y
generar esquemas correctos. Esta es la teora de la normalizacin.
En el ejemplo anterior, el conjunto de las siguientes relaciones no presenta estos
problemas:
LIBRO( cod_libro, titulo, editorial, ao )
AUTOR( nombre, nacionalidad )
ESCRIBE( cod_libro, nombre )
La normalizacin introduce una tcnica formal para disear bases de datos relacionales,
y permite mecanizar parte del proceso al disponer de algoritmos de normalizacin.
Una observacin importante, es que las anomalas antes descritas se producen en
procesos de actualizacin y no en procesos de consulta. La normalizacin penaliza las consultas,
al disminuir la eficiencia, ya que la normalizacin aumenta el nro. de relaciones presentes en la

Bases de Datos

Modelo Relacional: Normalizacin

base de datos, por lo que una determinada consulta puede llevar consigo el acceso a varias
tablas, lo que aumenta el costo de sta.

Proceso de normalizacin
El proceso de normalizacin va reduciendo un conjunto de relaciones dado, a una forma
ms deseable. En este contexto deseable significa ms sencilla, ms simple. Otra manera de
definirla es ir descomponiendo relaciones en otras relaciones mejores en trminos de las
operaciones que se ejecutan sobre ellas".
Existen varias formas normales para las relaciones 1NF, 2NF, 3NF, BCNF, 4NF y 5NF
(PJNF). Se dice que una relacin est en una determinada forma normal si satisface un cierto
conjunto de restricciones.
Para empezar a estudiar las tres primeras formas normales, adems de la de BoyceCodd, se debe introducir un concepto llamado dependencia funcional.
DEFINICIONES BSICAS
Dependencia Funcional (d.f.)
Intuitivamente, la redundancia surge cuando un esquema relacional es forzado a una
asociacin entre atributos que no es natural. Las dependencias funcionales pueden ser usadas
para identificar tales situaciones y sugerir refinamientos en el esquema. La idea esencial es
que muchos problemas que provienen de la redundancia se pueden solucionar reemplazando una
relacin por una coleccin de relaciones ms pequeas.
Formalmente podemos decir que: Dada una relacin R, el atributo Y de R depende
funcionalmente del atributo X de R si para una tupla dada el valor en X de R determina el valor
en Y de R, es decir, si
R(X)

R(Y)

X Se llama el determinante y a Y se le llama el dependiente.


Ejemplo 1: Sea el esquema de relacin:
CHOFER (Cdula, Nombre, Direccin, Fecha-ingreso, #Placa) y la relacin siguiente:
Cdula
23232255
54587487
54564564
545645646

Nombre
Juan Mora
Juan Mora
Mara Salas
Carlos Mata

Direccin
Valencia
Caracas
Valencia
Barquisimeto

Fecha-ingreso
12/06/91
10/12/87
10/12/87
12/11/86

#Placa
123456
103626
123456
67896

En este caso se pueden establecer varios hechos:

Para cada cdula existe un nico nombre asociado, es decir, se verifica la dependencia
funcional cdula -> nombre.

Bases de Datos

Modelo Relacional: Normalizacin

Puesto que un camin puede ser conducido por mas de un chofer no se verifica la d.f.
#placa -> cdula, esto se representa por #placa /-> cdula.
Se tiene nombre /-> #placa, puesto que dos personas distintas pueden tener el mismo
nombre, sin embargo {nombre, fecha-ingreso} -> #placa se verifica siempre que se est
seguro que dos personas con el mismo nombre no fueron contratadas el mismo da.

Es importante mencionar que la d.f. es un concepto que deriva del significado de los datos y no
del comportamiento de una relacin dada. As, por ejemplo en el esquema de la relacin
CHOFER, se tiene que la d.f. fecha-ingreso, direccin -> cdula, no se verifica debido a que dos
personas diferentes pudieron entrar el mismo da y vivir en la misma ciudad.
Ejemplo 2: Supongamos que tenemos un conjunto de relaciones:
Pieza (p#,nombre-p,color-p,peso-p,ciudad-alm)
Vendedor (v#,nombre-v,estatus,ciudad)
Venta (v#,p#,cantidad)
En estas relaciones se dan ciertas dependencias funcionales, tales como:
Pieza (p#)
Pieza(nombre-p)
Pieza (p#)
Pieza(color-p)
Pieza (p#)
Pieza(peso-p)
Pieza (p#)
Pieza(ciudad-alm)
Vendedor (v#)
Vendedor(nombre-v)
Vendedor (v#)
Vendedor(estatus)
Vendedor (v#)
Vendedor(ciudad)
Venta (s#,p#)
Venta(cantidad)
No necesariamente, la dependencia funcional de Y respecto de X viene dada porque el hecho de
que X es una clave candidata. De manera que una definicin que abarque ese punto se puede
escribir como:
Definicin de Dependencia Funcional
Dada una relacin R, el atributo Y de R depende funcionalmente del atributo X de R sii
siempre que dos tuplas de R concuerden en su valor de X, deben por fuerza, concordar en su
valor de Y.
Ejemplo: Supongamos que existiese una relacin

Venta(v#,p#,cantidad, ciudad)

en la relacin Venta v# no es clave candidata, sin embargo,


Venta(v#)

Venta(ciudad)

Por esa misma razn ciudad no depende completamente de la clave primaria (v#,p#)

Bases de Datos

Modelo Relacional: Normalizacin

Se dice, entonces que ciudad tiene dependencia funcional no completa de la clave


primaria.
Definicin de Dependencia Funcional Completa
Se dice que el atributo Y de R depende funcionalmente por completo del atributo X
de R, si depende funcionalmente de X y no depende funcionalmente de ningn subconjunto de
X
Dicho en otras palabras, no existe un subconjunto Z de atributos componentes de X de
los cuales Y dependa funcionalmente.
TEOREMA

DE DESCOMPOSICIN:

Sea un esquema de relacin R(X, Y, Z), con X, Y y Z conjuntos de atributos de R, tal que la
dependencia funcional X Y se verifica en R. Entonces, la relacin R se descompone en las
relaciones R1 = R[X,Y] y R2 = R[X,Z], es decir, R = R1 x R2

Bases de Datos

Modelo Relacional: Normalizacin


FORMAS NORMALES

DEFINICIN

DE LA

PRIMERA FORMA NORMAL (1NF)

Una relacin est en 1NF sii todos los dominios simples subyacentes contienen slo
valores atmicos
Ejemplo de relacin No Normalizada
V#
01
02

DEFINICIN

Ejemplo de relacin Normalizada

Pedido
p#
cantidad
p1
100
p2
150
p3
200

DE LA

v#
01
01
02

p#
p1
p2
p3

cantidad
100
150
200

SEGUNDA FORMA NORMAL (2NF)

Una relacin est en 2NF sii est en 1NF y todos los atributos no clave (o que no
formen parte de la clave) dependen por completo de la clave primaria.
Supongamos que existiese la relacin M:
V#

estatus

ciudad

p#

cantidad

01
01
02
03
03
04

10
10
20
30
30
10

ccs
ccs
vcia
b/to
b/to
ccs

p1
p2
p3
p4
p5
p4

100
150
200
50
100
50

M(estatus)
M(v#)
M(v#)

M(ciudad)
M(estatus)
M(ciudad)

es decir, no dependen por completo de la clave primaria


(v#,p#)

Diagrama de dependencias funcionales

V#
cantidad
p#

estatus

ciudad

Bases de Datos

Modelo Relacional: Normalizacin

Problemas que presenta la relacin M:


Hay redundancias: todas las tuplas donde aparece ccs tiene el estatus 10. Si hubieran 1000
tuplas con ccs se repetira 1000 que su estatus es 10. De igual forma, todas las tuplas donde
aparece el vendedor tambin aparece la ciudad a donde est asignado
Esto presenta ciertas anomalas de actualizacin que justifican que se normalice a 2NF.
Insercin: si un vendedor v# no ha vendido piezas, aunque sepamos cul es la ciudad en donde
est asignado y su estatus, no se puede ingresar a la b/d.
Eliminar: si slo hay una tupla para un v# con la venta de un vendedor y se elimina la venta,
tambin se pierde la informacin de cul es la ciudad y el estatus que ese vendedor tiene.
Actualizacin: si v# se cambia de ciudad tenemos que buscar en todas las tuplas donde
aparece para actualizar su estatus y ciudad.
Solucin: Crear dos relaciones donde no ocurran estas anomalas.
L(v#,estatus,ciudad)

V(v#,p#,cantidad)

estatus

v#

V#
Ciudad

cantidad

p#

Ambas relaciones estn en 2NF (Ver cmo se eliminaron los problemas de actualizacin)
En general, el problema real de la relacin M era que se estaba mezclando informacin de
diferente tipo.
CONCEPTOS PRELIMINARES
Sea la relacin R donde X,Y y Z son un subconjunto de atributos de R, se dice que Z es
transitivamente dependiente de X si existe Y tal que:
R(X)
Entonces R(X)

R(Y)

R(Y)

R(Z)

R(Z)

Atributos No Claves: Cualquier atributo que no es clave o que no forma parte de la clave.
Atributos Independientes: Son atributos que no dependen funcionalmente de otros atributos.
Por ejemplo en la relacin Pieza, colo-p y peso-p son atributos independientes (entre s).

Bases de Datos
DEFINICIN

Modelo Relacional: Normalizacin

DE LA

TERCERA FORMA NORMAL (3NF)

Una relacin R est en 3NF sii est en 2NF y todos los atributos no clave dependen de
manera no transitiva de la clave primaria.
Ejemplo: L(v#, estatus,ciudad)
estatus

v#

ciudad
Qu problemas ocurren en La raz de la dependencia transitiva?
a.-Insertar: no se puede insertar el estatus de una ciudad mientras no halla un vendedor en esa
ciudad.
b.-Eliminar: si se elimina la nica tupla que contenga informacin del estatus de una ciudad, se
pierde esa informacin y no se puede volver a cargar como se dijo en "a".
c.-Actualizar: si se efecta un cambio de estatus para una ciudad dada hay que actualizar
varias veces segn hallan vendedores asociados a esa ciudad.
Solucin: Se descompone la relacin L en dos relaciones, a saber:
VC(v#,ciudad) y CS(ciudad,estatus)
FORMA NORMAL

DE

Ambas relaciones estn en 3NF.

BOYCE-CODD

Si tenemos la relacin: SSP(v#,p#,vnombre,cantidad)


Y vnombre es nico para cada vendedor. Entonces tenemos las siguientes claves candidatas en
la relacin SSP:
C.C = { (v#,p#), (vnombre,p#) }
El diagrama de dependencias funcionales de SSP es:

v#
vnombre

cantidad
p#

Bases de Datos

Modelo Relacional: Normalizacin

Existen dos claves candidatas: (vnombre,p#) y (v#,p#).


Esta relacin est en 3NF, sin embargo contiene gran cantidad de redundancia y, por
ende, tiene problemas potenciales para la actualizacin. Adems, que no se puede guardar la
informacin del nombre del vendedor hasta que l vende algo. Esto tambin acarrea problemas
en la eliminacin.
Para mejorar esta relacin se debe estudiar la forma normal de Boyce-Codd
Def: Una relacin est en la BCNF ssi todo determinante es una clave candidata.
Qu es un determinante?
Un atributo es un determinante si este determina por completo a algn otro atributo.
Para estar en la BCNF se requiere que todo determinante sea una clave candidata. As
se puede decir que SSP no est en la BCNF, aunque si est en 3NF.
Solucin: Crear dos relaciones:
SS(vnombre,v#)
SS(vnombre,v#)

y
O bien,
y

SP(vnombre,p#,cantidad)
SP(v#,p#,cantidad)

INTRODUCCION A LA TEORIA RELACIONAL DE BASES DE DATOS


A partir deL concepto de dependencia funcional, se ha generado una serie de
resultados tericos que dan origen a lo que actualmente se conoce como teora relacional de
bases de datos.
CERRADURAS

Y COBERTURAS MNIMAS.

Una vez obtenido un conjunto de dependencias funcionales que se verifican en un


esquema de relacin, es interesante preguntarse si, a partir de este conjunto de dependencias
se pueden inferir otro conjunto de dependencias funcionales.
Al conjunto de todas las dependencias funcionales implicadas en un conjunto de
dependencias funcionales inicial F se llama cerradura de F (F+)
La herramienta que se usa para inferir o calcular la cerradura de un conjunto de
dependencias funcionales de F se llama Axiomas de Inferencia de Armstrong, este conjunto de
reglas constituye un modelo que es completo. Esto significa que, si F es un conjunto de
dependencias funcionales, cualquier dependencia funcional que se infiere a partir de F, se hace
slo aplicando repetidamente las reglas a las dependencias funcionales de F.

Bases de Datos

Modelo Relacional: Normalizacin

AXIOMAS DE INFERENCIA DE ARMSTRONG:


Sean X, Y y Z subconjuntos de atributos de una relacin R, en donde se verifican las
dependencias funcionales X Y y Y Z, entonces las siguientes reglas se cumplen:
A1: Reflexividad: X X se verifica siempre.
A2: Aumento: X Y X Z Y Para cualquier Z
A3: Transitividad: {X Y, Y Z} X Z
A partir de este conjunto de regla se pueden inferir otras como las siguientes: Sean X,
Y, Z y W subconjunto de atributos de una relacin R. Entonces se verifican las siguientes
reglas:
A4: Unin: {X Y, X Z} X Y Z
A5: Descomposicin: X Y X Z con Z Y
A6: Pseudotransitividad: {X Y, Y Z W} X Z W
Por la definicin de cerradura, se puede ver que el conjunto de dependencias funcionales
siempre es subconjunto de su cerradura, es decir, F F+. Esto se da porque cualquier
dependencia funcional f deriva de F. Adems la cerradura de una cerradura es la propia
cerradura, es decir, (F+)+ = F+
SATURACIN:
Sea F un conjunto de dependencias funcionales, se llama la saturacin de un conjunto X con
respecto a F, y se denota por X+, al conjunto de atributos que son determinados por las
dependencias funcionales que se derivan de F, es decir, X+ = {A/ X A se deriva de F}.
As, para determinar la cerradura de un conjunto F de dependencias funcionales, es suficiente
establecer un algoritmo que genere la saturacin de un conjunto de atributos X. A continuacin
se muestra un ejemplo del algoritmo para calcular la saturacin de un conjunto X sobre un
conjunto F de dependencias funcionales.

Bases de Datos

Modelo Relacional: Normalizacin

Ejemplo: Sea F el siguiente conjunto de d.f.


{
nmero, direccin -> salario
salario, nmero -> telfono
salario -> direccin
direccin -> telfono
fecha-ingreso, direccin -> salario
}
Se desea encontrar {salario, fecha-ingreso}+. Entonces si aplica el algoritmo se obtiene:

As se obtiene que el XMAS = { salario, fecha-ingreso}+ = { salario, fecha-ingreso, direccin,


telfono}
Sean F y G dos conjuntos de d.f. Se dice que Fy G son equivalentes y se denota por F G, si
sus coberturas son iguales, es decir,
F G si F+ = G+, en este caso se dice que G es una cobertura de F.
Un conjunto de d.f. se dice no redundante, si no existe un subconjunto propio G de F, tal que F+
= G+.
Def. Sea F un conjunto de d.f.. Sea F* el conjunto de las d.f. de la cerradura de F, en donde el
determinante contiene solo un atributo, es decir son d.f. elementales, entonces (F*)+ = F+.
Cobertura mnima
Def. Una cobertura G de F se dice que es mnima si
1. Las d.f. de G son elementales
2. No existe un subconjunto propio H de G tal que H+ = F+.
Bibliografa
Carlos A. Gonzlez. Sistemas de Bases de Datos. Editorial Tecnolgica de Costa Rica. 1996