UNIVERSIDAD YACAMBU
ESPECIALIZACION EN GERENCIA
MENCION SISTEMAS DE INFORMACION
ANÁLISIS
Y DISEÑO DE SISTEMAS
Prof.: Yaros Pérez
Autor: Manuel Alvarez
C.I:
6.504.212
Investigación por Internet
1.
Descomposición y Normalización
2.
Dependencia
3.
Normalización
4.
Primera Forma Normal
5.
Segunda Forma Normal
6.
Tercera Forma Normal
7.
Cuarta Forma Normal
1. Descomposición y
Normalización
Siempre que un
analista de sistemas
de base de datos
arma una base de datos,
queda a su cargo descomponer dicha base en grupos
y segmentos de registros.
Este proceso
es la descomposición; el mismo es necesario independientemente de la arquitectura
de la base de datos
- relacional, red o
jerárquica-. Sin embargo, para la base de datos relacional, la acción
correspondiente puede dividirse y expresarse en términos formales y se denomina
normalización
a la misma.
La normalización
convierte una relación en varias sub-relaciones, cada
una de las cuales obedece a reglas. Estas reglas se describen en términos de
dependencia. Una vez que hayamos examinado las distintas formas de dependencia,
encontraremos procedimientos
a aplicar a las relaciones de modo tal que las mismas puedan descomponerse de
acuerdo a la dependencia que prevalece. Esto no llevará indefectiblemente a
formar varias subrelaciones a partir de la única
relación preexistente.
2. Dependencia
Significado :
Antes de entrar
en el tópico principal de dependencia, vamos a rever algunos conceptos acerca
de los individuos y acerca de las tuplas que los
describen en la base de datos relacional (BDR). Restringiremos la discusión a la BDR, si bien la misma se
aplica igualmente a las otras arquitecturas.
Los individuos
tienen muchos atributos que pueden ser de interés
a diferentes personas en diferentes momentos. Nuestro problema actual es con
una sola aplicación o conjunto de aplicaciones: solemne son de interés
algunos de los atributos.
Los símbolos
aplicables a la relación han sido introducidos previamente.
• R es una tupla
general o vector que describe a un individuo;
• R es una relación, una matriz
o un conjunto de vectores
que pertenecen la población
de interés.
• U es el universo
consistente en todas las posibles descripciones individuales, obtenido mediante
una combinación exhaustiva de los valores
a atributos.
La tupla general
toma la siguiente forma
R = (a, b, c, ....,
n) La pertenencia con respecto a relaciones, tuplas y
universos se indica mediante. Con respecto a los atributos:
• A es el símbolo del nombre de un atributo
• a es el símbolo
de un valor
del atributo.
Dominio
(A) es el dominio
para el atributo cuyo nombre es A.
Campo de aplicación
Estamos
interesados en relaciones dependientes entre atributos de los individuos en una
o varias poblaciones. Consideramos a los atributos D, E, y F. La dependencia es
una relación funcional tal que los valores
de una (o más de una) de las variables
determina y fija el valor
de las otras variables
en la relación dependiente. Consideramos el caso en el que E y F dependen de D.
Esto se describe más brevemente en forma simbólica:
e = e (d) f = f(d)
Existen tres tipos distintos de dependencia.
o
Total
uno-uno-sinónimo
o
Completa
- subtupla <
o
Transitiva
- múltiple.
La dependencia es
una relación funcional que penetra en el universo
de posibilidades. La dependencia no puede deducirse solamente de los datos de
nuestra, ya que éstos son necesariamente incompletos, sino que debe ser
inherente al comportamiento
del sistema.
Por ejemplo, si los datos revelan que cada uno de nuestros proveedores
tiene exactamente una planta y que todas estas plantas
están en diferentes ciudades, podemos asumir una dependencia total entre
proveedor, planta y ciudad. Es decir, dada una ciudad, la misma está asociada
con un proveedor; y dado este proveedor estará asociado con una ciudad. En la
práctica, solamente cuando un nuevo proveedor se incorpore con una planta en la
misma ciudad que uno de nuestro antiguos proveedores,
resultará claro que no existe dicha dependencia total, Esto no podría ser
deducido a partir de los datos previos.
Dependencia Total
Consideremos los
atributos x e y. Cada valor de x tiene uno y solo un valor de y asociados a el;
e inversamente, dado un valor de y existe solamente un valor de x asociado a
éste. Se trata de una función unitaria de una variable tanto en sentido directo
como inverso y por o tanto se denomina dependencia total. Otra forma de
expresar lo mismo es decir que x e y son sinónimos; ambas expresiones son
equivalentes.
Ejemplo con clave
Si una de las
variables es al mismo tiempo
la clave, como consecuencia todo valor de ambas variables es único en cualquier
tupla de la relación. Por ejemplo, consideremos un archivo
de personal
donde cada uno de los empleados es identificado de tres maneras.
• Su nombre
• Su número de seguridad
social
• Su número de empleado
Los tres pueden
representar una dependencia total. Tanto el número de seguridad social
como el número de empleado identifican al individuo en forma única. El número
de seguridad social
atañe a la población
completa de trabajadores de los Estados Unidos.
El número de empleado se aplica solamente al personal
de una empresa
en particular. El nombre puede no ser totalmente único y la dependencia total
existe solamente cuando cada empleado tiene un nombre único.
Si el número de
empleado es al clave de la relación, el número de seguridad
social es sinónimo de aquel. Podemos en consecuencia decir que el número de
seguridad social, el campo no clave, es totalmente dependiente de la clave, y
es una clave candidata.
Si los nombres de
todos nuestros empleados son únicos, también pueden, ser claves candidatas. Sin
embargo puede existir alguna duplicación, dos personas llamadas John Smith, por ejemplo. Dado que
esta es una posibilidad, no puede establecerse una dependencia total con
respecto total con respecto al nombre. Puede incorporarse a la firma un nuevo
empleado y este puede tener el mismo nombre que uno de nuestros empleados
actuales.
Ejemplo con estado
Consideremos una relación que contiene información
sobre estado
en dos formas :
• Una identificación de estado con dos
letras, tal como CA para California.
• Una designación con un número de dos
dígitos tal como 12 para California.
Estas dos formas
de información
sobre estado ilustran una dependencia total. Debe notarse sin embargo que
muchas tuplas pueden contener la misma identificación
de Estado, dado que muchos de nuestros clientes
pueden provenir de California. En consecuencia resulta claro que la dependencia
total no significa unicidad.
Dependencia Completa
El concepto
de dependencia completa se aplica solamente cuando:
• Tenemos más de dos variables, y
• Una variable dependiente depende de dos o
más variables
independientes.
Consideramos una
relación que abarca las variables P, Q y R. Supongamos que P es la variable
dependiente. Si el valor de P está determinado por una función de Q y R
combinados, se trata de una dependencia completa. Esto es, el valor de P no
depende únicamente ni de Q ni de R.
Vamos a repetir esto simbólicamente. El
valor de P es completamente dependiente de los valores
de q y r.
p = p (q,r)
Ejemplo con orden de compra
Como un ejemplo
de dependencia completa, consideremos el caso de una orden de compra.
Supongamos que esta orden de compra describe mediante tres variables que son de
interés para nosotros:
• El número de orden de compra (PON) designa
la orden completa;
• El número de parte de pieza designa una de
las partes ordenadas por el pedido;
• La cantidad de piezas es el número de
unidades de dicha pieza requerida para satisfacer el pedido.
Los pedidos
describen en consecuencia una orden por medio de varias partes diferentes, y
para cada una distinta asociada. El sistema
contable ve varios pedidos diferentes. La misma parte puede aparecer en
distintos pedidos y, cuando ello sucede, puede estar asociadas distintas
cantidades con la misma parte.
Un tupla de la base de datos relacional contendrá un PON un
número de parte y una cantidad. La cantidad es completamente dependiente del
PON y del número de parte. Resulta claro que el número de pedido no es
suficiente para determinar la cantidad todas las partes de un determinado
pedido no tiene la misma cantidad). Análogamente, un número de parte no es
suficiente para determinar la cantidad ordenada, dado que diferentes pedidos
pueden requerir distintas cantidades de dicha parte. Por lo tanto, es nuestro
ejemplo, la cantidad no es dependiente solamente del PON o del número de parte;
es completamente dependiente de ambos.
Puede imaginarse,
aunque no es muy probable el caso de que cada vez ordenados una parte la
ordenamos solamente por una cantidad como una docena, o tres gruesas o
cualquier otro valor fijo. Si esto ocurre para todas las partes y para todos
los pedidos de nuestro sistema, en consecuencia no existirá dependencia
completa. En efecto podemos decir que hay dependencia total entre cantidad y
número de partes - condición improbable-.
Hemos examinado
anteriormente un ejemplo académico y las variables profesor, clase y sección.
Tenemos en esta caso una dependencia completa de
profesor respecto de clase y sección. Si en nuestra facultad está establecido
existirá dependencia completa. Esto existiría que un profesor enseñe siempre a
todas las secciones de una clase particular - una condición no muy factible con
un curso de 20 secciones-.
Dependencia transitiva
La dependencia
transitiva se aplica o tres o más variables. Consideremos el caso de solo tres
variables y llamémoslas S, T y V.
Diremos que S es
la variable independiente si los valores
de S determinan tanto a T como a V, y se simbolizará así:
S ----> T; S ----> V
Sin embargo, sería deseable encontrar una
relación más restrictiva o definida.
Tenemos
dependencia transitiva cuando S determina a T y V, pero los valores de V pueden
considerarse siempre como dependiendo de los valores de T. Esto puede
escribirse como
S ----> T; T ---->
o alternativamente como
v = v(t); t = t(s) v = v(t(s))
Reducción
Si podemos
manejar las dependencias transitivas, podremos reducir el espacio total
requerido para almacenar los datos. Varios valores de S pueden generar un único
valor de T. De modo similar, pueden existir varios valores de T asociados
solamente con un valor de V. La separación de estas relaciones permite
conservar espacios. Esto puede observarse mejor con respecto al ejemplo que se
describe más abajo.
Ejemplo
Consideramos un
ejemplo que asocia cursos
con departamento y con escuela.
En consecuencia, canto será dictado por el departamento de música
en la escuela
de Artes y Ciencias;
hidráulica será dictada por ingeniería
civil en la Escuela
de Ingeniería;
impuestos
será dictado por el departamento contable en la Escuela de Administración.
Llamemos
• S al curso
• T al departamento
• V a la escuela
Por lo tanto
S ----> T ----> V
la descomposición consiste en la asociación de un curso
con un departamento en una relación. Otras relación
identifica a cada departamento con una escuela. Esta segunda relación es
necesariamente menor tanto en grado como en cardinalidad
y aquí reside el ahorro
de espacio.
3. Normalizacion
¿Qué es normalización?
Normalización es
un proceso
que clasifica relaciones, objetos, formas de relación y demás elementos en grupos,
en base a las características
que cada uno posee. Si se identifican ciertas reglas, se aplica un categoría; si se definen otras reglas, se aplicará otra
categoría.
Estamos
interesados en particular en la clasificación de las relaciones BDR. La forma
de efectuar esto es a través de los tipos de dependencias que podemos
determinar dentro de la relación. Cuando las reglas de clasificación sean más y
más restrictivas, diremos que la relación está en una forma normal más elevada.
La relación que está en la forma normal más elevada posible es que mejor se
adapta a nuestras necesidades debido a que optimiza las condiciones que son de
importancia para nosotros:
• La cantidad de espacio requerido para
almacenar los datos es la menor posible;
• La facilidad para actualizar la relación
es la mayor posible;
• La explicación de la base de datos es la
más sencilla posible.
4. Primera forma normal
Para que una
relación esté en primera forma normal (1 FN), debe ser solamente una relación
propia, una matríz m por n, donde:
• Ninguna celda de la matriz
está vacía;
• El valor
n cualquier columna está definido por el dominio
para dicho atributo.
• Cada tupla tiene
una clave que la identifica en forma unívoca, pero dicha clave no significa
orden.
La aplicación determina la relación
Para que una
relación sea normalizada en pasos adicionales, debe encontrarse en la primera
forma normal. Colocar los datos
en la primera forma normal está a cargo del diseñador de la aplicación. Estos datos
se encuentran disponibles de alguna manera inicialmente. Si la aplicación
existe en forma manual,
o ha sido anteriormente computarizada pero no todavía como relación, el
diseñador reorganiza los datos de modo de conformar una matríz
1FN.
La segunda
inicial más importante es la dimensión de la relación ¿cuántos componentes
existen en la tupla o cuántas columnas en la tabla?
¿De qué manera se compara esto con el número de campos en el documento fuente?.
En la figura se
puede observar un documento como muestra,
una factura
típica. Parte de la información
es fija y otra variable. La figura nos muestra
un formulario impreso dentro de l cual se ha agregado información.
La impresión puede dividirse en dos categorías.
• Información descriptiva para el usuario
• Nombres de atributos.
La información
impresa es necesariamente fija. Podemos observar el nombre de la compañía en la
figura, así como otras particularidades (tales como el número de teléfono que
no figura aquí). Otros nombres impresos corresponden a los atributos cuyos valores
se escriben en el momento en que el formulario es llenado. Estos nombres de
atributos son también los nombres de campos para almacenar los datos en el sistema.
Los que se escribe son los valores
de atributos.
La información
convertida queda formada en tuplas. La próxima
pregunta es cuantas tuplas representarán a la
formación en esta forma. Debe notarse que el número de partes ordenadas varía
de una factura
o pedido a otro.
Wetco factura no. 91529
23 river road fecha factura 3/19/77
saltsea texas
orden fecha
de cliente
vendedor de la orden via orden wetco
M0007 2-14 3/12/17 ups
1922447
Cliente no. 31-0285-fl
Venta a flores associates
expedido a
108 8 avenue el
mismo
brooklyn, n.y. 11215
cantidad precio
parte descripcion monto
Pen-
Orde-despa-dien-
Nada chada te
2 2 3.50 018719
camisa 7.00
2 2 .35 020428 guia .70
1 1 .70 020808
rodillo motor
.70
1 0 .25 020811 rodillo libre 0.00
1 1 6.00 020819 humidrum 8.00
Transporte
Y Seguro
.96
17.38
Dado que una tupla debe tener un número fijo de componentes, necesitamos
una tupla en primera forma normal para cada parte de
cada pedido. Sin embargo, la información que se encuentra en la parte superior
del formulario, y que se llena a máquina, es la misma para todas las partes
ordenadas más abajo. Por lo tanto cada tupla consiste
en una parte de datos que son variables
y datos del pedido que se duplican para cada parte ordenada.
Grafo de Dependencia
Una vez que los
datos han sido puestos en primera forma normal, resulta conveniente descomponer
la relación en un número de relaciones más pequeñas, cada una en forma normal
superior, de modo de optimizar el almacenamiento
y usar su funciones
. Para
esto resulta necesario reconocer las dependencias existentes. Un grafo exhibe
los distintos tipos de dependencias que existen, y enfatizan que hemos
investigado completamente cada dependencia.
El grafo
simple no está diseñado para mostrar dependencias. Para hacer utilizable a este
grafo, se agregan colores pueden expresarse en blanco y negro
mediante distintos tipos de líneas. Discutiremos estos tipos de líneas en
términos de la dependencia que cada uno representa. En las figuras que siguen
las formas gráficas aparecen a la izquierda y se utilizan para constituir un
grafo completo. A la derecha se puede observar una forma simbólica para
describir dependencias únicas.
Dependencia
única
En la figura
vemos un arco que conecta dos vértices A y B. A es la cola y B es la cabeza de
la "flecha". Esto significa que B depende de A. Es decir dado un valor de A podemos predecir de A. Es decir,
dado un valor de A podemos predecir cuál será el valor de B.
Dependencia
total
La
dependencia total se define como una dependencia bilateral o simétrica. Es
decir, si C depende de D, en consecuencia D será dependiente en forma similar
de C. Esto se expresa en la figura mediante una arista (sin una flecha) que une
C y D. Para enfatizar la dependencia total, se usa una línea doble o una línea
más gruesa. Esto representa una medida de seguridad para verificar que el usuario no
dibuje un arco e inadvertidamente omita la flecha. Simbólicamente se utiliza
una doble flecha.
Dependencia
completa
La variable G
depende en forma completa de otras dos variables E y F, lo cual puede ilustrarse
como se ve a la izquierda de la figura. Pero así no es representada
adecuadamente la dependencia completa, ya que el valor de G no depende de E o
F, independiente, sino que depende de ambos valores. Por lo tanto en el centro de la
figura A, vemos una forma mejor; la arista que une E y F no intenta demostrar
una dependencia entre E y F, por lo tanto se dibuja en líneas de trazos; a
partir del centro de esta línea de trazos, se dibuja un arco dirigido hacia G
para indica que G depende de ambas variables E y F.
Dependencia
transitiva
Supongamos
que dos variables, K y L, dependen de J. Si puede verificarse que L depende en
forma primaria de K, existiría una dependencia transitiva. Mostramos a la
izquierda de la figura B que L. depende de J o de K. Más apropiado s el grafo
del centro de la figura B, donde podemos ver que L está definida por K la cual,
a su vez, está determinada por los valores de J.
Simbólicamente
indicamos una dependencia transitiva de L respecto de J mediante una flecha de
trazos desde J a L, como puede verse a la derecha de la figura B.
Ejemplo
En la figura
B se presenta un grafo de dependencia hipotético. En el mismo se dibujan las
relaciones de dependencia entre atributos para una aplicación de remuneración.
EMPNO y DEPTNO están subrayadas en la figura para expresar que ambas son partes
de una clave compuesta para la relación. Una línea gruesa conecta EMPNO a
EMPNOM para indicar que si nombre de empleado y existe una dependencia total.
Varios
atributos dependen directamente del número de empleados:
• TITL es el
título de la tarea del empleado
• PAYLVL es
un carácter que indica el nivel de sueldo del empleado.
• HORAS
representa el número de horas que el empleado ha trabajado la presente semana.
• PAYRT está
apuntado a PAYLVL indicando que el régimen de pago es transitivamente
dependiente del nivel de pago.
La línea de
trazos que une PAYRT y HORAS indica que ambas participan en una dependencia
completa por la cual el receptor es PAYAMT, el valor pagado para esta semana.
A la derecha
de la figura, encontramos los atributos que dependen del número de
departamento. Obsérvense la dependencia total entre número y nombre del jefe
del mismo (MGRO y MGRNM).
Hay solamente
un atributo que es completamente dependiente de ambas partes de la clave
compuesta, es decir, el número de proyecto, PROJNO.
5. Segunda
Forma Normal
Una relación
está en segunda forma normal (2FN) solamente si todos los atributos son
dependientes en forma completa de la clave.
Descripcion De La Segunda Forma Normal (2 Fn)
Su nombre ya
nos indica el hecho de que la segunda forma normal es por lo general el próximo
paso de normalización y descomposición. Para ser
accesible a la normalización, y poder ser puesta en segunda forma normal,
la relación debe poseer las siguientes propiedades:
• Debe estar
en primera forma normal
• Debe tener
una clave compuesta.
La
consecuencia inmediata de los requerimientos expresados más arriba es que
cualquier relación en primera forma normal que tiene una clave simple, está
automáticamente en segunda forma normal. Comencemos con un ejemplo en forma de
tabla de una relación consistente en 17 atributos, que se presenta en la
figura. La misma se encuentra en primera forma normal y tiene una clave
compuesta que consiste en dos atributos P y Q. Estos están subrayados en la
figura para mostrar que sirven como clave. La tupla
de relación puede también escribirse linealmente en forma simbólicamente:
R = (A,B,C,D,E,F,G,H,I,L,M,N,O,P,Q)
El próximo
paso es crear un grafo de dependencia, presentando aquí como figura. Debe
notarse que este grafo se crea examinado con conocimientos y atributos para
determinar como participan y relacionan entre ellos.
No resulta
suficiente analizar la matríz de relación, la cual
puede hacernos creer que existe una dependencia debido a que la muestra de la
cual se ha extraído dicha relación es pequeña. Si somos inducidos a error por
los datos existentes y construimos una dependencia donde esta no existe, se
planteará un problema. Cuando lleguen nuevos datos que contradigan la
dependencia, deberá dejarse de lado el esquema completo.
Supongamos en
consecuencia que el grafo que se puede observar en la figura ha sido derivado
en forma funcional y que expresa correctamente las dependencias. Resulta claro
a partir de este grafo que los atributos que parten de P son dependientes
solamente de este. De un modo similar los que parten de Q dependen solamente de
este último. Solamente aquellos que parten de la línea de trazos que conecta a
P y Q tienen dependencia completa de ambos. Esta es la guía para la
descomposición.
Descomposición
La figura
contiene 3 sub-árboles, la base de nuestra
descomposición. Definimos una subtupla general en
base a cada sub-árbol y en consecuencia:
P' = (P,A,B,C,E,H,K)
Q' = (Q,F,G,J,N)
PQ = (P,Q,D,I,L,M,O)
Aquí la raíz
de los sub-árboles de la izquierda y la derecha. P y
Q, se convierte en la clave de sus respectivas subtuplas;
ambos. P y Q forman la clave compuesta para la subtupla
PQ.
Proyección
El próximo
paso es proyectar la relación R sobre cada una de estas subtuplas
para formar tres nuevas relaciones, y en consecuencia.
P' =
proyectar R(P')
Q' =
proyectar R(Q')
PQ =
proyectar R(PQ)
Las
relaciones así formadas nos dan tres nuevas sub-relaciones.
Una subrelación es la relación que deriva de una
relación mayor. Las subrelaciones ilustradas en la
figura están correlacionadas por medio de los componentes de sus claves. La
clave compuesta P y Q de la relación original R. es también la clave de la sub-relación PQ. P y Q tienen a P y Q respectivamente como
claves. La línea de trazos en la figura indica que Q está correlacionada con PQ
por medio de la componente Q y P está correlacionada con PQ por medio de P.
Para
restablecer la relación original R debemos juntar estas tres subrelaciones en algún orden, indicado simbólicamente como:
R = juntar P
[juntar PQ, (Q)] (P) = juntar Q[juntar PQ P(P)] (Q).
Grafos
La nueva sub-relación que se ve en la figura se presenta en forma de
grafo en la figura siguiente. Existe una considerable analogía entres estas
figuras y la figura anterior. Lo importante es la diferencia. En PQ existe una
línea de trazos que conecta los componentes de la clave compuesta P y Q en el
centro de la figura. Los arcos parten del centro de esta línea de trazos hacia
todos los componentes de P y Q, los cuales son dependientes en forma completa
de ambos, es decir de P y Q. Una línea de puntos conecta P en la relación PQ a
P de la relación P. Esto representa la correspondencia entre ambas veces P. Una
línea de puntos conecta de un modo similar Q en PQ a Q en Q para indicar una
correspondencia similar.
Efectos
El efecto de
esta descomposición puede no resultar inmediatamente claro. Debemos insistir en
que ninguna relación correcta debe contener tuplas
duplicadas. La relación original R contiene muchas subtuplas
duplicadas P' y Q'. Las mismas han sido eliminadas durante la descomposición.
Esto facilita en forma extraordinaria la actualización y otras importantes operaciones que afectan a estas relaciones,
las cuales serán aclaradas en los ejemplos que siguen.
Ejemplo de
inventario
Vamos a
utilizar ahora un ejemplo práctico para demostrar la normalización. En la
figura se observa una parte de la matríz de relación
PW.
Pueden verse
los nombres de los atributos simbólicos y sus significados, pero no sus
valores. Las columnas no aparecen en ningún orden en particular. Debe
observarse la clave compuesta que distingue cada tupla,
que abarca el número de pieza y el número de depósito PNO y WNO.
Arbol de
Dependencia
El medio para
descomponer la relación es el árbol de dependencia que se ve en la figura. Este
árbol ha sido construido solamente teniendo en cuenta la dependencia completa,
y no muestra las dependencias total o transitiva, que se describe más adelante,
si es que las mismas existen.
Como podíamos
esperar, aparecen tres sub-árboles. El sub-árbol de la izquierda, con raíz PNO, contiene los
atributos que se aplican solamente a la pieza o parte. El sub-árbol
de la derecha con raíz WNO describe cada depósito. EDl
sub-árbol del centro corresponde a las partes y al
depósito, y describe la cantidad de partes disponibles en el depósito, QOH, y
el número de cajón o estante, BIN (o algún otro parámetro de ubicación), donde
dichas partes pueden ser halladas.
El próximo
paso es definir tres tuplas generales para cada sub-árbol,
P = (PNO,
DESC, PR, UNIT)
W = (WNO,
WAD, FUE)
P/W = (PNO,
WNO, BIN, QOH)
La
descomposición consiste en proyectar la relación PW sobre cada una de estas tuplas para obtener tres nuevas sub-relaciones:
P = proyectar
PW(P)
W = proyectar
PW(W)
P/W =
proyectar PW(P/W)
La
descomposición en la figura muestra las tres relaciones como matrices; la línea de trazos indica como se
vinculan las relaciones.
Efecto
Discutiremos
ahora algunas de las ventajas obtenidas mediante la descomposición. Si estas
relaciones se utilizan para el control de inventario. nuestra
preocupación será cuantas piezas de cada tipo están disponibles en un depósito
en particular. Cuando se retiran piezas o se reciben nuevos envíos la cantidad
disponible, QOH será la variable de cambio. La actualización consiste en poner
al día sub-relación P/W la cual ahora contiene
solamente malos componentes en lugar de los nuevos P/W.
Existe una tupla P en la sub-relación de
pieza o parte, P, para cada parte y una tupla. W, en
la sub relación W, para cada depósito y estos últimos
probablemente no serán muchos. Consideremos la facilidad de efectuar cambios en
un depósito en particular. Si un atributo de uno de los depósitos varía entraremos
en W para efectuar el cambio solamente en una tupla.
En la primera forma normal para PW teníamos que encontrar todas las tuplas en las cuales el valor de WNO esta el
particularmente deseado, y efectuar el mismo cambio en cada una de ellas. Si
dicho depósito almacenaba 100 partes, como consecuencia debía variar 100 tuplas de PW. El procedimiento de actualización se aplica
también a las descripciones de partes. Si el precio de alguna parte o pieza cambia, este
cambio es independiente del depósito en el cual se almacena dicha parte.
Solamente se efectúa un cambio en P a diferencia de los muchos que hubieran sido requeridos para PW.
6. Tercera forma normal
Una relación
se encuentra en tercera forma normal (EFN) si no existen transitividades entre
sus atributos y si ya se encuentra en 2 FN.
Descripción
Una relación
R a poner en tercera forma normal debe estar en la segunda forma normal. Es muy
común que R sea una sub-relación; la relación
original estaba en primera forma normal (para ponerla en segunda forma normal
fue descompuesta en varias sub-relaciones). Estas son
ahora candidatas a una descomposición adicional.
Recordamos
que las propiedades de la segunda forma normal (2Fn) son:
• Tenemos una
matríz m x n con un valor determinado para cada componente
de cada tupla.
• Cada valor
es obtenido a partir de un dominio propiamente definimos
• Cada valor
contiene una clave, ya sea simple o compuesta
• Cada
componente no clave es dependiente en forma completa de su clave.
En
consecuencia es evidente que tenemos, o bien una clave simple, o una clave
compuesta de la cual todos los componentes no clave son dependientes en forma
completa.
El objeto de
esta fase es determinar todas las dependencias transitivas; la descomposición
producirá a continuación sub-relaciones para las
cuales no existirán dependencias transitivas -la definición de la tercera forma
normal (EFN)-.
Una
dependencia transitiva abarca como mínimo tres componentes. Si los componentes
fueran más, la dependencia múltiple puede derivarse en varias dependencias atransitivas de tres componentes solamente dada una. Por lo
tanto dirigiremos nuestra atención a una dependencia transitiva simple de tres
componentes. Tal dependencia puede expresarse como:
Q ---> A
----> B
>
En la cual se
dice que B depende de A y que A depende de Q. La transitividad existe debido a
que el valor de B depende en la última instancia del valor de Q.
La
dependencia transitiva es degenerada si cualquiera de las dependencias
anteriores es total. Esto es, podemos prever que la relación de Q a A es muchos-unos, donde varios valor único de A. Dado un
valor tal Q el valor de A queda determinado. La inversa no se aplica y en
consecuencia no existe una dependencia total: dado un valor de A el valor
correspondiente de Q no queda determinado a menos de que se trate de una
dependencia total.
El ahorro que surge de colocar la relación en
tercera forma normal aparece a raíz de la granularidad
del dominio involucrado. Se puede prever que:
num dominio (Q)> num
dominio (A) > num dominio (B)
Determinación
de al dependencia transitiva
Si el grafo
utilizado para llevar la relación a la segunda forma normal es completo en termino de las transitividades existentes, no resulta
necesario un grafo adicional. El grafo para convertir a la segunda forma normal
requiere solamente que todas las dependencias completas y parciales sean
conocidas. Supongamos que no hemos establecido todas las dependencias
transitivas. Se presenta una situación simple en la figura anterior donde A, B
y C son dependientes de Q. SI suponemos que existe una dependencia entre A, B y
C son dependientes de Q. Si suponemos que existe una dependencia entre a y B
debemos confirmarlo en forma funcional.
Una
dependencia total entre A y B en el grafo de la figura puede representarse como
se ve en la figura el arco desde A a B no muestra una
dependencia de B respecto de A inversamente el arco a partir de B hacia A
muestra una dependencia de A respecto de B; los arcos a partir de Q a A y a B nos muestra la dependencia de cada una de éstas
respecto de Q. Esto puede observarse nuevamente en la figura, donde una doble
arista entre A y B indica la bi-direccionalidad
de esta dependencia. El hecho de que Q apunte a esta arista nos muestra que
cada una de las variables A y B es claramente dependiente de aquella.
Como ejemplo
sea Q el número PO, A el número de parte o pieza y B
el nombre de parte, A y B son totalmente dependientes y cada uno dependen de Q.
Transitividad
simple
Para la
dependencia transitiva unilateral, la variable independiente apunta a la
variable dependiente, tal cual se presenta en el
figura donde B depende de A. El arco entre B y Q ha sido eliminando; la
dependencia implícita de B respecto de Q resulta obvia.
Si se
presenta la dependencia inversa, debe gratificarse como se ve en la figura.
Descomposición
Dada una sub-relación con una o más dependencias transitivas, la
descomposición consiste en partir la relación en una o más de una sub-relación, donde la variable intermedia aparezca como
variable dependiente en una y como variable independiente en la otra.
Caso simple
Tenemos:
Q ---> A
----> B
>
Q ---> C
Dado que
ambas, A y C dependen directamente de Q deben
conservarse en una sub-relación Q, con clave Q.:
Q ---> A;
Q ---> C
Debe
separarse la relación directa remanente, y colocarla en su propia sub-relación A' con la
A:
A ---> B
Los grados de
Q' y A'. Aquí la componente A relaciona Q' con A, a es la clave simple de A'.
Si bien A no es la clave de Q' es le medio de relacionar un valor de Q en Q'
con un valor de B en A' y se llama por lo tanto la clave externa de Q' . Para crear Q' y A' debemos
utilizar las subtuplas generales Q' y A' denifidas en consecuencia:
Q' = (Q,A,C)
A' = (A,B) donde el subrayado indica una
clave.
Este deben proyectarse sobre Q para obtener las sub-relaciones:
Q'= proyectar
Q(Q')
A'= proyectar
Q(A')
Caso
Compuesto
Las
dependientes transitivas múltiples han sido investigadas y exhibidas. Tenemos
en consecuencia.
Q --> C
Q --> A
--> B1
Q --> A
--> B2
Q --> A
--> B3
La
descomposición separa nuevamente todas estas variables directamente dependiente
de la clase original en una subtupla. Q'' = (Q, A, C)
Las variables
restantes son todas dependientes directa o totalmente de A o C y se reorganizan
de un modo similar. A'' = (A, B1, B2, B3); C'' = (C, D)
Deben
construirse tres sub-relaciones por proyección:
Q'' =
proyectar Q(Q'')
A'' =
proyectar Q(A'')
C'' =
proyectar Q(C'')
Aquí Q'', A''
y C'' aparecen como sub-árboles. Las mismas se
relacionan por medio de la clave externa de Q'' es decir A y C; esto se muestra
mediante la línea de puntos entre A y A y entre C y C. Nos podemos mover
directamente entre las dos figuras sin la intervención de pasos simbólicos,
utilizando solamente manipulaciones gráficas.
Descomposición
Gráfica
Hemos
discutido el enfoque simbólico. Dado un grafo 2FN. Debemos seleccionar en
primer término los nodos apuntados por la raíz que no sean hojas. Los mismos se
convierten en raíces de sus propios sub-árboles, A''
y C''. Estos sub-árboles son eliminados de Q dejando
en Q'' solamente los nodos A y C, que son las raíces de A;;
y C''.
Ejemplo de
orden de compra
Examinaremos
solamente una pequeña porción de la relación orden de compra que ha sido
convertida en un grafo de dependencia. Para esta porción de la relación compra
PP, tenemos:
• Las partes
se compran utilizando el número de parte, PNO;
• Un
vendedor, VNDR está asociado a cada parte;
• Cada
vendedor tiene una clasificación de forma de pago, PAYCLS.
Por lo tanto
PAYCLS representa si el vendedor debe cobrar dentro de los 10 días, 30 días, 60
días, etc. La acción para convertir la relación.
Tenemos aquí
una relación transitiva que puede ser representada en consecuencia:
PNO --->
PAYCLS
Sabemos que
la variable intermedia, el vendedor VNDR, es el que determina el tipo de pago
de modo tal que
PNO --->
VNDR --> PAYCLS
para poner esta relación en la tercera forma normal, la misma
se descompone en dos sub-relaciones. Las dos sub-relaciones PV y VP, se forman por proyección a partir
de la relación original PP de modo tal que:
PV =
proyectar PP (PNO, VNDR); PV = proyectar PP (VNDR, PAYCLS).
La relación
PV relaciona partes con vendedores.
La
identificación del vendedor, VNDR es la clave externa par PV. La misma se
utiliza para entrar en la relación VP, en la cual es la clave primaria.
Debe notarse
que, para el mantenimiento, si cambia la clase de pago
solamente cambiara una entrada o tupla en VP y
ninguna en PV. Para el caso de PP hubiera cambiado muchas tuplas.
Ejemplo de
inventario
Presentamos
ahora una porción de un ejemplo de inventario, al cual corresponde el grafo
parcial. Tenemos en este caso:
• PNO es un
número de parte
• PNM es el
nombre de parte y tiene dependencia total con el número de parte
• PREC es el costo de UNITS multiplicado por el número
de partes
• PCL es la
clase de parte, la cual da el tipo de parte en términos de su peso y de su
forma.
• WHN es el
número de depósito donde está almacenada la parte.
• WHLOC Es la
ubicación del deposito
• FUE es la
categoría de seguro de incendio del depósito.
Resulta claro
a partir del grafo que el número de parte determina la clasificación de la
parte, la cual a su vez determina parcialmente el deposito
donde está almacenada dicha parte. Usaremos esta dependencia transitiva, que
está circundada con línea de trazos gruesos, para descomponer la relación en su
tercera forma normal: PNO ---> WHN; PNO ---> PCL ---> WHN
La variable
intermedia, clase de parte, PCL, es el medio de que disponemos para descomponer
el grafo. Se deja como ejercicio hallar las proyecciones y la
relaciones resultantes.
Ejemplo
bancario
Consideremos
parte de un ejemplo de banco donde cada depositante tiene un
número de cuenta que lo identifica. El depositante recibe una línea de crédito. Puede extraer dinero hasta dicho valor. La parte no
utilizada de crédito puede ser retirada cuando lo desee.
Vemos que la línea de crédito LNCR es funcionalmente dependiente del número de
cuenta CUET; el valor ya extraído DEBIT es también dependiente del número de
cuenta. El valor de crédito disponible en este momento, DISP, es dependiente en
forma completa de ambos, LNCR y DEBIT.
Parecería que
lo lógico es descomponer el grafo y volver a presentarlo. En base a esto, P
tiene como clave el número de cuenta CUENT. Debemos entrar en P para obtener
LNCR y DEBIT. Estas son claves externas para P; las mismas forman la clave
compuesta para entrar en Q y hallar el valor de la variable completamente
dependiente DISP.
Esto
funcionaría, pero hay una forma más simple de resolver el problema. El valor de
crédito disponible en la actualidad es simplemente la diferencia entre la línea
de crédito y el debido corriente. Todo lo que tenemos que hacer es ejecutar una
sustracción. La relación original no necesita contener DISP. dado
que éste se calcula simplemente durante el procesamiento. Por lo tanto podemos
sencillamente omitir Q.
Transitivas
múltiples.
Establecemos
de entrada la condición simple de que Z sea dependiente en forma transitiva de
Q. Si existe más de una variable intermedia de dependencia, la transitiva no
será completa hasta que se especifiquen todas dichas variables. Es decir, si
bien empezamos con la condición de transitividad, Q ---> Z,
la condición completa podría ser, Q ---> X ---> Y
---> Z
>
Ninguna
condición intermedia Q ---> X ---> Z --->; Q ---> Y ----> Z
sería suficiente para descomponer la original de la figura.
7. Cuarta forma normal
Dependencias multivaluadas
La tercera
forma normal toma en cuenta la dependencia transitiva y provee una reducción
óptima universal, excepto para los casos infrecuentes de dependencia multivaluadas. Ha quedado claro en épocas recientes que es
posible una reducción adicional en este caso, y esto es lo que se lleva a cabo
mediante la cuarta forma normal.
Existe una
dependencia multivaluada cuando un valor de una
variable está siempre asociado con varios valores de otra u otras variables
dependientes que son siempre las mismas y están siempre presentes. Esto se
ilustra mejor con el ejemplo presentado en la figura. La relación FAB describe tejidos. La variable independiente (con
respecto a las dependencias (multivaluadas) es el
número de tejido FABNO. Con el se encuentra asociados un modelo (o patrón) y un color. En la figura, el tejido 345 vienen en dos modelos y entres combinaciones de modelo y color. En este caso se aplica el grafo de
dependencia. Para hacer mas clara que esta es una dependencia multivariable, una cabeza doble de flecha apunta desde
FABNO o PATRN y también desde FABNO a COLOR.
La
ineficiencia en el registro de información y se resulta clara
al examinar las dos nuevas relaciones. La primera de éstas,
FABPAT lista el número de tejido contra el modelo; en el segundo caso, FABCOL,
lista el número de tejido contra las combinaciones de color. Dado que la regla
es que todas las combinaciones de las variables dependientes multivaluadas deben prevalecer, resulta simple reconstruir
la relación FAB a partir de las dos sub-relaciones
que resultaron.
Descomposición
Para poner una relación o sub-relación en la cuarta
forma normal debe poder aplicarse lo siguiente:
• Debe estar
en la tercera forma normal.
• Deben
existir una o mas multidependencias.
Después de
construir el grafo de dependencia, el próximo paso es ejecutar proyecciones utilizando
la variable independiente y una de las variables multidependientes.
FABPAT =
proyectar FAB (FABNO, PATRN)
FABCOL =
proyectar FAB (FABNO, COLOR)
El resultado
son nuevas sub-relaciones que han sido utilizadas
para ahorra espacio y permitir una más fácil actualización.
Ejemplo de
profesor y texto
Consideremos
otro ejemplo. Los cursos dictados en una escuela corresponden a un número de curso.
Asociada a cada número de curso se encuentra la descripción del mismo. Para
cada curso existe una selección de textos y una selección de profesores. Puede
darse cualquier combinación de texto y profesor.
El grafo de
dependencia. El mismo nos muestra una dependencia total entre el número de
curso y la descripción del curso. Existe una multidependencia
entre texto y número de curso, y también entre
profesor y número de curso.
Para
descomponer la sub-relación en sus relaciones más
pequeñas, se efectúan tres proyecciones. Las sub-relaciones
resultantes.
Infografías:
http://www.trucostecnicos.com/trucos/ver.php?id_art=278
http://www.monografias.com/trabajos5/norbad/norbad.shtml
http://www.abcdatos.com/tutoriales/tutorial/l7052.html
http://www.microsoft.com/spanish/msdn/articulos/archivo/291102/voices/odc_FMSNormalization.asp
http://www.evidalia.com/trucos/index_v2-279-29.html