Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DJCV | UPAGU 27
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
Los costes de extracción de datos se minimizan cuando se optimiza la localidad de referencia o cuando
cada nodo dispone de su propia copia de los datos. Sin embargo, cuando se actualizan los datos
replicados, la actualización debe llevarse a cabo en todos los nodos que mantengan una copia duplicada,
incrementándose así los costes de comunicaciones.
¿POR QUÉ FRAGMENTAR?
Antes de hablar en detalle de la fragmentación, indiquemos cuatro razones para fragmentar una
relación:
• Utilización. En general, las aplicaciones funcionan con vistas, en lugar de con relaciones
completas. Por tanto, para la distribución de datos, parece apropiado trabajar con subconjuntos
de las relaciones como unidad de distribución.
• Eficiencia. Los datos se almacenan cerca del lugar donde se los utiliza más frecuentemente.
Además, los datos que las aplicaciones locales no necesitan no se almacenan en ese nodo.
• Paralelismo. Utilizando el fragmento como unidad de distribución, una transacción puede
dividirse en varias sub consultas que operan sobre distintos fragmentos. Esto debería permitir
incrementar el grado de concurrencia o paralelismo en el sistema, permitiendo así que se
ejecuten en paralelo aquellas transacciones que puedan paralelizarse con seguridad.
• Seguridad. Los datos no requeridos por las aplicaciones locales no se almacenan en ese nodo y,
consecuentemente, no están disponibles para los usuarios no autorizados.
La fragmentación tiene dos desventajas principales, que ya hemos mencionado antes:
• Rendimiento. El rendimiento de las aplicaciones globales que requieren datos de diversos
fragmentos ubicados en diferentes nodos puede ser menor.
• Integridad. El control de integridad puede ser más difícil si los datos y las dependencias
funcionales están fragmentados y ubicados en nadas distintos.
CORRECCIÓN DE LA FRAGMENTACIÓN
La fragmentación no puede llevarse a cabo descuidadamente. Hay tres reglas que es preciso respetar
durante la fragmentación:
(1) Completud. Si una instancia R de una relación se descompone en fragmentos R¡, Rz, ... ,
Rm cada elemento de datos que aparezca en R debe aparecer al menos en un fragmento.
Esta regla es necesaria para garantizar que no haya pérdida de datos durante la
fragmentación.
(2) Reconstrucción. Debe ser posible definir una operación relacional que permita
reconstruir la relación R a partir de los fragmentos. Esta regla garantiza que se
preserven las dependencias funcionales.
DJCV | UPAGU 28
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
DJCV | UPAGU 29
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
Esto genera dos fragmentos (P1 y P2), uno compuesto por aquellas tuplas para las que el valor
del atributo type es 'House' y el otro compuesto por aquellas tuplas para las que el valor del
atributo type es 'Flat'. Esta estrategia de fragmentación concreta puede ser ventajosa si se
utilizan aplicaciones distintas para gestionar las casas y los apartamentos. El esquema de
fragmentación satisface las reglas de corrección:
DJCV | UPAGU 30
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
DJCV | UPAGU 31
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
Observe que ambos fragmentos contienen la clave principal, staffNo, para permitir
reconstruir la relación original. La ventaja de la fragmentación vertical es que los
fragmentos pueden almacenarse en los nodos que los necesitan. Además, las
prestaciones se mejoran, ya que el fragmento es más pequeño que la relación base
original. Este esquema de fragmentación satisface las reglas de corrección:
• Completud. Cada atributo de la relación Staff aparece en el fragmento S 1 o S2·
• Reconstrucción. La relación Staff puede reconstruirse a partir de dos
fragmentos utilizando la operación de combinación natural:
=
DJCV | UPAGU 32
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
• Disyunción. Los fragmentos son disjuntos, salvo por la clave principal, que es
necesaria para la reconstrucción.
Los fragmentos verticales se determinan estableciendo la afinidad de un atributo con otro. Una
forma de hacer esto es crear una matriz que muestre el número de acceso que se refiere a cada
pareja de atributos. Por ejemplo, una transacción que acceda a los atributos a1, a2 y a4 de la
relación R con atributos (al, a2, a3, a4) puede representarse mediante la siguiente matriz:
1 2 3 4
1 1 0 1
2 0 1
3 0
4
La matriz es triangular; no es necesario rellenar la diagonal, ya que la mitad inferior es una
imagen especular de la superior. Los unos representan un acceso que implica la correspondiente
pareja de atributos, y se los puede reemplazar por números que representen la frecuencia de la
transacción. Hay que crear una matriz para cada transacción y luego generar una matriz global
que muestre la suma de todos los accesos para cada pareja de atributos. Las parejas con una alta
afinidad deben aparecer en el mismo fragmento vertical; las parejas con baja afinidad pueden
separarse. Claramente, si trabajamos con atributos individuales y con todas las transacciones
principales, los cálculos pueden ser muy engorrosos. Por tanto, si se conoce que algunos
atributos están relacionados, puede que sea mejor trabajar con grupos de atributos.
Esta técnica se conoce con el nombre de división y fue propuesta por primera vez por Navathe
et al. (1984). Genera un conjunto de fragmentos no solapados, lo que garantiza el cumplimiento
de la regla de disfunción anteriormente definida. De hecho, la característica de no solapamiento
se aplica únicamente a los atributos que no forman parte de la clave principal. Los campos de la
clave principal aparecen en todos los fragmentos, por lo que pueden omitirse del análisis. Para
obtener información adicional sobre esta técnica, el lector puede consultar Ozsu y Valduriez
(1999).
DJCV | UPAGU 33
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
DJCV | UPAGU 34
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
Esto produce tres fragmentos (S21, S22 y S23), uno de ellos compuesto por tuplas para las
que el número de sucursal es B003 (S21), otro compuesto de aquellas tuplas en las que el
número de sucursal es B005 (S22) Y el otro compuesto de aquellas tuplas en las que el
número de sucursal es B007 (S23)' como muestra la Figura anterior. El esquema de
fragmentación satisface las reglas de corrección:
• Completud. Cada atributo de la relación Staff aparece en los fragmentos S 1 o en
los fragmentos S2; cada tupla aparece (parcialmente) en el fragmento S 1 y en uno
de los fragmentos S21, S22 o S23'
DJCV | UPAGU 35
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
INSERT INTO
[10.0.2.2].[EJEMPLOM].DBO.PROVEEDOR(proveedorid,nomprov,country)
SELECT SupplierID, CompanyName, Country
FROM Northwind.DBO.Suppliers
WHERE Country='USA'
DJCV | UPAGU 36
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
DJCV | UPAGU 37
MATERIAL DE APOYO [BASE DE DATOS DISTRIBUIDAS]
L ABORATORIO DIRIGIDO
1. Aplicar los fundamentos teóricos de fragmentación horizontal, vertical y mixta. Utilizando las tablas
PRODUCTO y PROVEEDOR de la base de datos NORTHWIND.
DJCV | UPAGU 38