En el área de la informática conocida como teoría de la dependencia , una dependencia de unión es una restricción en el conjunto de relaciones legales sobre un esquema de base de datos. Una mesaestá sujeto a una dependencia de combinación sisiempre se puede recrear uniendo varias tablas, cada una con un subconjunto de los atributos de. Si una de las tablas de la combinación tiene todos los atributos de la tabla, la dependencia de unión se denomina trivial.
La dependencia de unión juega un papel importante en la Quinta forma normal , también conocida como forma normal de unión de proyecto , porque se puede probar que si un esquema se descompone en tablas a , la descomposición será una descomposición de combinación sin pérdidas si las relaciones legales en están restringidos a una dependencia de unión en llamada .
Otra forma de describir una dependencia de combinación es decir que las relaciones en la dependencia de combinación son independientes entre sí.
A diferencia del caso de las dependencias funcionales , no existe una axiomatización sólida y completa para las dependencias de unión, [1] aunque existe axiomatización para lenguajes de dependencia más expresivos como las dependencias de tipo completo . [2] : Capítulo 8 Sin embargo, la implicación de las dependencias de unión es decidible. [2] : Teorema 8.4.12
Definicion formal
Dejar ser un esquema de relación y dejar ser una descomposición de .
La relación satisface la dependencia de unión
- Si
Una dependencia de unión es trivial si uno de los es sí mismo. [3]
Las dependencias de unión bidireccional se denominan dependencia multivalor como un artefacto histórico del hecho de que se estudiaron antes que el caso general. Más específicamente, si U es un conjunto de atributos y R una relación sobre él, entonces R satisface si y solo si R satisface
Ejemplo
Dada una cadena de pizzas que modela las compras en la tabla Customer = {order-number, customer-name, pizza-name, courier}. Se pueden derivar las siguientes relaciones:
- el nombre del cliente depende del número de pedido
- el nombre de la pizza depende del número de pedido
- el servicio de mensajería depende del número de pedido
Dado que las relaciones son independientes, existe una dependencia de unión de la siguiente manera: * ((número de pedido, nombre del cliente), (número de pedido, nombre de la pizza), (número de pedido, mensajería)).
Sin embargo, si cada cliente tiene su propio mensajero, puede haber una dependencia de unión como esta: * ((número de pedido, nombre del cliente), (número de pedido, nombre de la pizza), (número de pedido, mensajero), ( customer-name, courier)), pero * ((order-number, customer-name, courier), (order-number, pizza-name)) también sería válido. Esto hace que sea obvio que tener una dependencia de combinación no es suficiente para normalizar un esquema de base de datos.
Ver también
Referencias
- ^ Petrov, SV (1989). "Axiomatización finita de lenguajes para la representación de propiedades del sistema". Ciencias de la información . 47 : 339–372. doi : 10.1016 / 0020-0255 (89) 90006-6 .
- ^ a b Abiteboul; Cáscara; Vianu. Fundamentos de bases de datos .
- ^ Silberschatz, Korth. Conceptos del sistema de base de datos (1ª ed.).