Normalizacion Base de Datos
Normalizacion Base de Datos
BASE DE DATOS
COLUMNAS(atributos)
Pgina 1 de 23
FILAS(ocurrencias)
En el modelo relacional, tanto los objetos o entidades, como las relaciones que se
establecen entre ellos, se representan a travs de "tablas", que en la terminologa
relacional se denominan relaciones.
Cada relacin est compuesta de filas (las ocurrencias de los objetos) y se les
denomina, en la terminologa relacional, como tuplos, tuplas o uplos, uplas (en
realidad, n-tuplos, pero en muchos casos se suprime la n cuando no existe posibilidad
de confusin).
Tambin la relacin est compuesta por columnas (los atributos o campos que toman
valores en sus respectivos dominios).
Es importante lo siguiente:
1. No hay dos filas (tuplas) iguales.
2. El orden de las filas no es significativo.
(1 y 2 se deben a que la relacin es un conjunto)
Siendo rigurosos, el orden de las columnas s es significativo, pues representa el
orden de los dominios implicados, pero como siempre nos referimos a una columna
por su nombre y nunca por su posicin relativa:
3. El orden de las columnas no es significativo.
4. Cada valor dentro de la relacin (cada valor de un atributo) es un dato atmico(o
elemental), es decir, no descomponible; por ejemplo: un nmero, una cadena de
caracteres. En otras palabras, en cada posicin fila, columna existe un solo valor,
nunca un conjunto de valores.
Una relacin que satisface este ltimo punto se denomina "normalizada", aunque
veremos ms adelante que, en realidad, lo que ocurre es que est en Primera Forma
Normal.
La teora de la normalizacin se basa en la necesidad de encontrar una representacin
del conjunto de relaciones que en el proceso de actualizacin sea ms adecuada.
Llevar una relacin no normalizada a normalizada es muy simple.
Existen diferentes niveles de normalizacin que se llaman formas normales que
veremos ms adelante.
Pgina 2 de 23
Ejemplo:
Veamos cmo nuestro ejemplo de suministrador y producto se puede representar fcil
y claramente mediante el modelo relacional.
Los atributos de estas dos entidades son:
Suministrador: Nmero, que lo identifica, Nombre, Tipo y Distrito donde radica.
Producto: Nmero, que lo identifica, Nombre, Precio unitario y Peso.
Adems, un suministrador puede suministrar muchos productos y un producto puede
ser suministrado por varios suministradores. Se conoce la cantidad de un determinado
producto que suministra un suministrador dado.
Las diversas formas de expresar las recuperaciones dan lugar a los lenguajes
relacionales cuyas formas ms representativas son:
Pgina 3 de 23
Pgina 4 de 23
NORMALIZACIN
La teora de la normalizacin se ha desarrollado para obtener estructuras de datos
eficientes que eviten las anomalas de actualizacin. El concepto de normalizacin fue
introducido por E.D. Codd y fue pensado para aplicarse a sistemas relacionales. Sin
embargo, tiene aplicaciones ms amplias.
La normalizacin es la expresin formal del modo de realizar un buen diseo.
Provee los medios necesarios para describir la estructura lgica de los datos en un
sistema de informacin.
Ventajas de la normalizacin:
Evita anomalas en la actualizacin.
Mejora la independencia de los datos, permitiendo realizar extensiones de la
base de datos, afectando muy poco, o nada, a los programas de aplicacin
existentes que accedan la base de datos.
La normalizacin involucra varias fases que se realizan en orden. La realizacin de la
2da. fase supone que se ha concluido la 1ra. y as sucesivamente. Tras completar
cada fase se dice que la relacin est en:
Primera Forma Normal (1FN)
Segunda Forma Normal (2FN)
Tercera Forma Normal (3FN)
Forma Normal de Boyce-Codd (FNBC)
Existen, adems, la Cuarta (4FN) y la Quinta (5FN) Formas Normales.
Las relaciones en 1FN son un subconjunto del universo de todas las relaciones
posibles. Las relaciones en 2FN son un subconjunto de las que estn en 1FN y as
sucesivamente.
Pgina 5 de 23
El anlisis de este modelo de pedido de productos muestra que los atributos que
se listan a continuacin son de inters:
NUM_PED
FEC_PED
NUM_PROV
NOM_PROV
DIR_PROV
NUM_PROD
DES_PROD
PR_UN_PROD
PR_PED
Pgina 6 de 23
b.
c.
NUM_PROD
DES_PROD
PR_UN_PROD
d.
e.
Otra definicin: toda relacin normalizada, o sea, con valores atmicos de los
atributos, est en 1FN.
Otra definicin: una relacin est en 1FN si no incluye ningn grupo repetitivo.
(Un grupo repetitivo es un atributo que contiene un conjunto de valores y no un
nico valor)
Pgina 7 de 23
1. Una relacin para los campos que sean nicos, es decir, se dejan en la relacin
original slo los atributos que no son repetitivos:
PEDIDO (NUM_PED, FEC_PED, NUM_PROV, NOM_PROV, DIR_PROV,
PR_PED)
2. Se crea una relacin para los grupos repetitivos. Adems, se crea una llave
compuesta formada por la llave primaria de la relacin original (NUM_PED) y el
atributo del cual dependen los dems atributos repetidos total o parcialmente, en
este caso es NUM_PROD.
PED-PROD(NUM_PED,
NUM_PROD,
CANT_PROD_PED, PR_PROD_PED)
Pgina 8 de 23
DES_PROD,
PR_UN_PROD,
Pgina 9 de 23
2.
Pgina 10 de 23
Llave
Al hablar de entidad en el modelo entidad - relacin, se asumi que existe una llave
para cada entidad, formada por un conjunto de atributos que definen de forma nica la
entidad. Un concepto anlogo se define para las relaciones o tablas en el modelo
relacional.
Definicin: Llave
Sean:
R una relacin con atributos A1, A2, ...., An y
X un subconjunto de A1, A2, ..., An
Se dice que X es una llave de R si:
a) XA1, A2, ..., An
O sea, todos los atributos de la relacin dependen funcionalmente de X
b)
Y X | Y A1, A2, , An
Lo planteado en el punto 2. es una condicin de minimalidad que no se
requera para el concepto de llave en el modelo entidad - relacin.
Pgina 11 de 23
Una relacin puede tener varias llaves. Una de ellas se nombra "llave primaria" (la
que se escoja para trabajar) y las restantes se nombran "llaves candidatas".
Una superllave ser cualquier superconjunto de una llave. Entonces, una llave es un
caso especial de superllave.
DEFINICIN: SEGUNDA FORMA NORMAL (2FN)
Una relacin R se dice que est en 2FN si est en 1FN y si, y slo si, los atributos no
llaves (ni primarias, ni candidatas) de R, si los hubiese, son funcional y completamente
dependientes de la llave primaria de R.
Entonces, se aplica slo a relaciones con llaves compuestas, pues no es posible
que en una relacin cuya llave primaria sea simple (compuesta por un solo atributo)
haya atributos que dependan de parte de la llave primaria. Una relacin que est en
1FN y que tenga una llave primaria simple, est en 2FN.
Continuando con el ejemplo de los pedidos de productos, habamos visto que en
la relacin PED-PROD subsistan problemas de actualizacin. Analicemos las
Dependencia funcionales que existen en dicha relacin:
1. Se crea una relacin para todos los atributos que dependen funcional y
completamente de la llave (y los atributos que no se analizan por ser atributos
llaves, pertenecientes a claves candidatas).
Pgina 12 de 23
3.
Pgina 13 de 23
Este paso se ejecuta examinando todas las relaciones para ver si hay atributos no
llaves que dependan unos de otros. Si se encuentran, se forma una nueva relacin
para ellos.
Analicemos las dependencias funcionales que existen en la relacin PEDIDO:
Se crea una relacin para los atributos no llaves que no dependen transitivamente
de la llave primaria (y los atributos que no se analizan por ser atributos llaves,
pertenecientes a claves candidatas).
PEDIDO (NUM_PED, FEC_PED, NUM_PROV, PR_PED)
Se crea una relacin para los atributos no llaves que dependen transitivamente de
la llave primaria a travs de otro atributo o conjunto de atributos no llave primaria
(que no son parte de la llave primaria.) La llave primaria de la relacin as formada
ser el atributo o conjunto de atributos a travs de los cuales existe la
dependencia transitiva.
PROVEEDOR (NUM_PROV, NOM_PROV, DIR_PROV)
Pgina 14 de 23
Es necesario analizar las otras relaciones. Puede comprobarse que en las otras
relaciones no hay dependencia entre atributos no llaves, por lo que estn en 3FN.
Entonces el modelo de datos relacional en 3FN que representa el de los pedidos de
productos est formado por las siguientes relaciones:
PEDIDO (NUM_PED, FEC_PED, PR_PED, NUM_PROV)
PED-PROD (NUM_PED, NUM_PROD, CANT_PROD_PED, PR_PROD_PED)
PRODUCTO (NUM_PROD, DES_PROD, PR_UN_PROD)
PROVEEDOR (NUM_PROV, NOM_PROV, DIR_PROV)
La 3FN ha eliminado los problemas asociados con la informacin sobre el proveedor
en la 2FN. Veamos:
Creacin: se puede insertar la informacin de un proveedor, aunque no haya un
pedido para l.
Eliminacin: al borrar un pedido que era el nico que se le haca a un proveedor, no
se perder la informacin sobre el proveedor
Modificacin: la informacin sobre un proveedor est en una sola ocurrencia, por lo
que, para cambiar cierta informacin de ste, slo hay que hacerlo en dicha
ocurrencia.
Ya en esta etapa se puede optimizar la 3FN. Puede haber relaciones degeneradas
que contengan slo la clave y que la informacin que aportan est considerada en otra
relacin, por lo que se pueden eliminar. Puede que varias relaciones tengan la misma
clave, por lo que se pueden combinar en una sola, siempre que el resultado sea lgico
y tenga sentido.
Los analistas y diseadores con experiencia producen relaciones en 3FN casi sin
saber o preocuparse de esto y es que utilizan el sentido comn y la experiencia para
escribir relaciones normalizadas. No obstante, no siempre la intuicin es suficiente y la
metodologa para normalizar las bases de datos se convierte en una herramienta
imprescindible, que garantiza un diseo idneo de los datos.
Merece la pena destacar en este momento algunas otras cuestiones que, aunque no
estn relacionadas directamente con la teora de la normalizacin, s propician tambin
la realizacin de un buen diseo de la base de datos:
4.
Es decir, para una relacin donde no tengan lugar las tres condiciones anteriores, la
FNBC es idntica a la 3FN. Esas tres condiciones son necesarias, pero no suficientes,
para que la relacin no est en FNBC.
Definicin: Forma Normal de Boyce-Codd (FNBC)
Una relacin R est en FNBC si, y slo si, cada determinante es una superllave
(candidata o primaria).
Obsrvese que se habla en trminos de llaves candidatas y no slo de la llave
primaria, ya que una llave es un caso especial de superllave y la llave puede ser
candidata o primaria.
Adems, la definicin de FNBC es conceptualmente ms simple, aunque es una
FN ms "fuerte". Una relacin que est en FNBC est tambin en 1FN, 2FN y 3FN.
atributo multivaluado es aquel que tiene varios posibles valores para una sola
instancia de la entidad.
Por ejemplo: tenemos una entidad Cliente, cada uno de los clientes registrados
puede tener varios telfonos y email alternativos, entonces estamos ante una
dependencia multivaluada entre ambos atributos y el atributo no clave NOM_CLI.
CLIENTE (NUM_CLI, NOM_CLI, DIR_CLI, RUC_CLI, TEL_CLI, EMAIL_CLI)
Debemos resolver creando dos nuevas relaciones con los atributos multivaluados
para evitar as la redundancia de datos.
CLI-TEL (NUM_CLI, TEL_FIJO,TEL_CEL)
CLI-EMAIL (NUM_CLI, EMAIL_CLI1, EMAIL_CLI2)
6.
La Quinta Forma Normal (5FN) trata con casos donde la informacin puede ser
reconstruida de muchas piezas de informacin las cuales pueden ser mantenidas con
poca redundancia.
La Segunda, Tercera y Cuarta Formas Normales tambin sirven a este propsito pero
la Quinta Forma Normal generaliza los casos no cubiertos por ellas. No intentaremos
una exposicin amplia de la Quinta Forma Normal pero ilustraremos el concepto
central con un ejemplo, a saber:
Esta forma es necesaria en el caso general. Ahora bien, aunque el agente PARRA
vende autos hechos por FORD y camiones hechos por GENERAL MOTORS; l no
vende camiones FORD ni autos GM. Esto es, necesitamos la combinacin de los tres
campos para saber cules combinaciones son vlidas y cules no.
Pgina 18 de 23
En este caso, resulta que podemos reconstruir todos los datos reales de una forma
normalizada consistente de tres tipos de registros separados, cada uno conteniendo
dos campos:
Estos tres registros estn en la Quinta Forma Normal, puesto que el correspondiente
registro de tres campos presentado previamente no lo est.
Pgina 19 de 23
Ejercicios:
1.
Pgina 20 de 23
2.
2.1
Pgina 21 de 23
2.2
Pgina 22 de 23
Referencias
http://www.scourdesign.com/articulos/BD-FN.php
http://bulma.net/body.phtml?nIdNoticia=483
Concepcin y diseo de bases de datos,Adoracin de Miguel, Mario
Piattini, RA-MA Editorial (1993)
http://www.inf.udec.cl/~mvaras/modulo30/04-norma.html
Pgina 23 de 23