dependencia multivaluada

11
2.3 NORMALIZACION ADICIONAL 2.3.1 DEPENDENCIA MULTIVALUADA Y 4FN Según Ponniah (2007) la dependencia multivaluada que existe en una relación consiste de que al menos tres atributos A, B, C, tal que para cada valor de A, hay un grupo de valores definidos para B, y otro grupo definido de valores para C, el grupo para B es independiente del grupo de valores para C. (pág. 286) Figure 1 Fuente: Ricardo (2004). Dependencia multivaluada: en una relación con los atributos X, Y y Z existe una dependencia multivaluada de Y con respecto a X si los posibles valores de Y para un par de valores de X y Z dependen únicamente del valor de X. Supongamos que en la relación de Agenda añadimos otro atributo para guardar direcciones de correo electrónico. Se trata, por supuesto, de otro atributo multivaluado, ya que cada persona puede tener más de una dirección de correo, y este atributo es independiente del número de teléfono: Agenda(nombre, fecha_nacimiento, estado_civil, teléfono, correo) Ahora surgen los problemas, supongamos que nuestro amigo "Fulano", además de los tres números de teléfono, dispone de dos direcciones de

Transcript of dependencia multivaluada

Page 1: dependencia multivaluada

2.3 NORMALIZACION ADICIONAL

2.3.1 DEPENDENCIA MULTIVALUADA Y 4FN

Según Ponniah (2007) la dependencia multivaluada que existe en una relación consiste de que al menos tres atributos A, B, C, tal que para cada valor de A, hay un grupo de valores definidos para B, y otro grupo definido de valores para C, el grupo para B es independiente del grupo de valores para C. (pág. 286)

Figure 1 Fuente: Ricardo (2004).

Dependencia multivaluada: en una relación con los atributos X, Y y Z existe una dependencia multivaluada de Y con respecto a X si los posibles valores de Y para un par de valores de X y Z dependen únicamente del valor de X.

Supongamos que en la relación de Agenda añadimos otro atributo para guardar direcciones de correo electrónico. Se trata, por supuesto, de otro atributo multivaluado, ya que cada persona puede tener más de una dirección de correo, y este atributo es independiente del número de teléfono:Agenda(nombre, fecha_nacimiento, estado_civil, teléfono, correo)

Ahora surgen los problemas, supongamos que nuestro amigo "Fulano", además de los tres números de teléfono, dispone de dos direcciones de correo. ¿Cómo almacenaremos la información relativa a estos datos? Tenemos muchas opciones:

Agendanombre fecha_nacimiento estado_civil teléfono correoFulano 13/02/1960 casado 13321232 [email protected] 13/02/1960 casado 25565445 [email protected] 13/02/1960 casado 36635363 [email protected]

Page 2: dependencia multivaluada

Si optamos por crear tres tuplas, ya que hay tres teléfonos, y emparejar cada dirección con un teléfono, en la tercera tupla estaremos obligados a repetir una dirección. Otra opción sería usar un NULL en esa tercera tupla.

Agendanombre fecha_nacimiento estado_civil teléfono correoFulano 13/02/1960 casado 13321232 [email protected] 13/02/1960 casado 25565445 [email protected] 13/02/1960 casado 36635363 NULL

Pero estas opciones ocultan el hecho de que ambos atributos son multivaluados e independientes entre si. Podría parecer que existe una relación entre los números y las direcciones de correo.

Intentemos pensar en otras soluciones:

Agendanombre fecha_nacimiento estado_civil teléfono correoFulano 13/02/1960 casado 13321232 [email protected] 13/02/1960 casado 25565445 [email protected] 13/02/1960 casado 36635363 [email protected] 13/02/1960 casado 13321232 [email protected] 13/02/1960 casado 25565445 [email protected] 13/02/1960 casado 36635363 [email protected]

Agendanombre fecha_nacimiento estado_civil teléfono correoFulano 13/02/1960 casado 13321232 NULLFulano 13/02/1960 casado 25565445 NULLFulano 13/02/1960 casado 36635363 NULLFulano 13/02/1960 casado NULL [email protected] 13/02/1960 casado NULL [email protected]

Ahora está claro que los atributos son independientes, pero el precio es crear más tuplas para guardar la misma información, es decir, mayor redundancia.

Pero no sólo eso. Las operaciones de inserción de nuevos datos, corrección o borrado se complican. Ninguna de esas operaciones se puede hacer modificando sólo una tupla, y cuando eso sucede es posible que se produzcan inconsistencias.(Con clase, 2004)

CUARTA FORMA NORMAL

Para estar en cuarta forma normal, una relación debe estar primero en la forma normal Boyce-Codd. Además, una relación dada no puede contener más de una dependencia multivaluada.

(Chapple, 2011)

La cuarta forma normal tiene por objetivo eliminar las dependencias multivaluadas.

Page 3: dependencia multivaluada

Definición: Una relación está en 4NF si y sólo si, en cada dependencia multivaluada X ->-> Y no trivial, X es clave candidata.

Una dependencia multivaluada A ->-> B es trivial cuando B es parte de A. Esto sucede cuando A es un conjunto de atributos, y B es un subconjunto de A.

Tomemos por ejemplo la tabla de Agenda, pero dejando sólo los atributos multivaluados:

Agenda(nombre, teléfono, correo)

Lo primero que debemos hacer es buscar las claves y las dependencias. Recordemos que las claves candidatas deben identificar de forma unívoca cada tupla. De modo que estamos obligados a usar los tres atributos para formar la clave candidata.

Pero las dependencias que tenemos son:

nombre ->-> teléfono nombre ->-> correo

Y nombre no es clave candidata de esta relación.

Resumiendo, debemos separar esta relación en varias (tantas como atributos multivaluados tenga).

Teléfonos(nombre, teléfono)Correos(nombre, correo)

Ahora en las dos relaciones se cumple la cuarta forma normal.

Las violaciones de esta forma normal son mucho menos frecuentes que los otros. Ocurre cuando hay repetición de grupos de datos. Antes normalizar una tabla a la cuarta forma normal, se debe entender la definición de dependencia multivaluada.

(Wikidot, 2008)

Tablas que están en 4NF

Tabla colores

Carro Color

Mustang

Red

Mustang

White

Mustang

Blue

Cirrus Red

Cirrus Green

Tabla motores

Carro motor

Mustang

F3.2L

Mustang

F4.5L

Cirrus C2.1L

Cirrus C3.0L

Tabla que esta en 3NF pero no esta 4NF

Carro Color

Motor

Mustang

Red F3.2L

Mustang

Red F4.5L

Mustang

White

F3.2L

Mustang

White

F4.5L

Mustang

Blue F3.2L

Mustang

Blue F4.5L

Cirrus Red C2.1L

Cirrus Red C3.0L

Cirrus Green

C2.1L

Cirrus Green

C3.0L

Page 4: dependencia multivaluada

Ahora veamos otro ejemplo que se cita en Ponniah (2007). Considere los siguientes supuestos acerca de las responsabilidades y participación de una compañía de ejecutivos:

Cada ejecutivo puede tener responsabilidades directas en muchos departamentos.

Cada ejecutivo puede ser un miembro en muchos comités de gestión. Los departamentos y los comités relacionados con un ejecutivo en particular

so n independientes de otro.

La primera tabla muestra la relación original y la segunda parte la tabla transformada.

Nótese que para cada valor del atributo ejecutivo hay múltiples valores para el atributo Departamento, y múltiples valores para el atributo Comité. También que los valores de departamento para un ejecutivo son valores independientes de

Page 5: dependencia multivaluada

comité. ESTE TIPO DE DEPENDENCIA ES CONOCIDA COMO dependencia multivaluada.(…)

Ahora observa que la relación muestra en la segunda parte de la figura 8.8. porque la relación indica que la relación entre los atributos solo contiene la llave primaria, la relación esta siempre en la forma normal Boyce –Codd . Aunque atraves de la filas de la relación, se puede ver fácilmente que los tres tipos de anomalías *actualización, eliminación e inserción* están presentes en la relación.

Este paso en la normalización trata con este tipo de problemas. Una vez que este tipo de problemas es resuelto, el modelo de datos es transformado a un modelo de datos en la cuarta forma normal. (pág. 286)

Otro ejemplo de la cuarta forma normal

Figure 2 Ambas tablas respetan la cuarta forma normal.

Page 6: dependencia multivaluada

1.3.2 DEPENDENCIA DE JUNTURA Y 5FN

Las anomalías de la dependencia multivaluada son eliminadas por la dependencia de juntura y la quinta forma normal.

Una dependencia de juntura es la unión de R1 y R2 sobre C es igual a la relación R. donde R1 y R2 son descomposiciones R1(A, B, C). O bien, R1 y R2 es una descomposición de R. (Singh, 2009)

Una tabla T está sujeta a una combinación de dependencia si T siempre puede ser recreado por unirse a varias tablas cada una con un subconjunto de los atributos de T. Si una de las tablas de la combinación tiene todos los atributos de la tabla T, la combinación de dependencia es llamada trivial.

Supóngase que una cadena de pizzas tiene una tabla Cliente = {número-pedido,

nombre- cliente, nombre-pizza, repartidor}. Es obvio que se pueden derivar las

siguientes relaciones:

nombre-cliente depende del número de pedido

nombre-pizza depende del número-orden

repartidor depende de la numero-orden

Dado que las relaciones son independientes puede decir que es una dependencia de

juntura de la siguiente manera: * ((número-pedido, nombre-cliente), (número-pedido,

nombre-pizza), (número-pedido, repartidor)).

Si cada cliente tiene su propia repartidor, sin embargo, se podría tener una dependencia

de juntura de esta manera: * ((número-pedido, nombre-cliente), (número- pedido,

repartidor), (nombre-cliente, repartidor), (número- pedido, nombre-pizza)), pero *

Page 7: dependencia multivaluada

((número-pedido, nombre-cliente, repartidor), (número-pedido, nombre-pizza))

sería válida también. Esto hace evidente que sólo con una de dependencia de juntura no es

suficiente para normalizar un sistema de base de datos

(Wikipedia, 2011)

Ejemplo 2.Si se considera una relación HIBILIDADES_PERSONAS_EN_TRABAJO. Como se muestra en la siguiente tabla. La relación puede ser descompuesta en tres relaciones, HAS_SKILLS [TIENE HABLIDAD], Y ASSIGNED_TO_JOB [ASIGNADO_AL_TRABAJO].se puede notar que ninguna de las dos descomposiciones son descomposiciones de PERSONS_ON_JOB_SKILLS. De hecho una unión de las tres relaciones descompuestas

cede una relación que tiene el mismo dato como la que tiene La relación original PERSONS_ON_JOB_SKILLS. Así, cada relación actúa como una restricción sobre la unión de otras dos relaciones.Ahora, si se une las relaciones descompuestas HAS_SKILLS y CAN_USE_JOB_SKILL es obtenido, como lo que se muestra en la última tabla. Esta relación almacena los datos sobre personas quienes tienen habilidades aplicables un trabajo en particular. Pero cada persona que tiene una habilidad requerida para un trabajo no necesita ser asignada al trabajo. El trabajo actual está fijado por la relación JOB_ASIGNED. CUANDO ESTA RELACION es unida con HAS_SKILL, una relación es obtenida que contendrá todos las posibles habilidades que pueden ser aplicadas a cada trabajo. Esto sucede porque las personas asignadas a dicho trabajo, poseen esas habilidades. Aunque, algunos de estos trabajos no requieren de todas las habilidades. Así, la tupla redundante(filas) que muestra la combinación innecesario SKILL_TYPE Y JOB son removidos por la unión con la relación NEEDS_SKILL.

Page 8: dependencia multivaluada

LA QUINTA FORMA NORMAL

Cuando una relación es descompuesta en muchas relaciones, y después las subrelaciones son juntadas o unidas otra vez, se supone que no se pierde ninguna tupla. Esta propiedad es definida como dependencia de juntura.

La quinta forma norma es definida como una relación que no tiene dependencia de juntura. Incluso si no se conoce mucho acerca de los conceptos de normalización de datos, y solo siguiendo un conjuntos de simples reglas, y con la ayuda de las herramientas del modelo entidad-Relación. (Alapati, 2008)

Page 9: dependencia multivaluada

BibliographyAlapati, S. (2008). Expert Oracle Database 11g Administration. Apress.

Chapple, M. (2011). About.com. Retrieved 11 mayo, 2011, from http://databases.about.com/cs/specificproducts/g/4nf.htm

Con clase. (2004, diciembre). Retrieved mayo 11, 2011, from http://www.conclase.net/mysql/curso/?cap=004c

Krishna, S. (1992). Introduction to database and knowledge-base systems. World Scientific.

Ponniah, P. (2007). Data modeling fundamentals: a practical guide for IT professionals. (M. Morales Gomez, Trans.) Wiley-Interscience.

Ricardo, C. (2004). Databases illuminated. (M. T. Morales Gomez, Trans.) Jones & Bartlett Learning.

Singh, S. (2009). Database Systems: Concepts, Design and Applications. Pearson Education India.

Wikidot. (2008, AGOSTO 11). Db4u. Retrieved mayo 11, 2011, from http://db4u.wikidot.com/fourth-normal-form

Wikipedia. (2011, abril 7). Retrieved mayo 11, 2011, from http://translate.google.com.mx/translate?hl=es&sl=en&u=http://en.wikipedia.org/wiki/Join_dependency&ei=Q4_LTdjBJMW1twfNldHlBw&sa=X&oi=translate&ct=result&resnum=1&ved=0CBkQ7gEwAA&prev=/search%3Fq%3Djoin%2Bdependency%26hl%3Des%26sa%3DX%26biw%3D1639%26bih%3