Está en la página 1de 43

Diseño de bdd.

Derived Horizontal
Fragmentation.
• Una fragmentación horizontal derivada se
define en una relación miembro de acuerdo
con una operación de selección especificada
en su propietario.
Diseño de bdd. Derived Horizontal
Fragmentation.
• Es importante recordar dos puntos. Primero,
el vínculo entre el propietario y las relaciones
con los miembros se define como una equi-
join. En segundo lugar, una equi-join se puede
implementar por medio de semijoins.
Diseño de bdd. Derived Horizontal
Fragmentation.
• Este segundo punto es especialmente
importante para nuestros propósitos, ya que
queremos particionar una relación de
miembro de acuerdo con la fragmentación de
su propietario, pero también queremos que el
fragmento resultante se defina solo en los
atributos de la relación de miembro.
Diseño de bdd. Derived Horizontal
Fragmentation.
• En consecuencia, dado un enlace L donde
propietario (L) = S y miembro (L) = R, los
fragmentos horizontales derivados de R se
definen como

Ri = R⋉Si,1 ≤ i ≤ w

donde w es el número máximo de fragmentos que


se definirán en R, y Si = ϬFi (S), donde Fi es la
fórmula según la cual se define el fragmento
horizontal primario Si.
Diseño de bdd. Derived Horizontal
Fragmentation.
• Ejemplo 3.12. Considere el enlace L1 en la Figura 3.7, donde
propietario (L1) = PAGO y miembro (L1) = EMP. Luego podemos
agrupar a los ingenieros en dos grupos según su salario: los que
ganan menos de $ 30,000 y los que ganan más de $ 30,000. Los dos
fragmentos EMP1 y EMP2 se definen de la siguiente manera:

EMP1 = EMP ⋉ PAY1


EMP2 = EMP ⋉ PAY2

donde

PAY1 = ϬSAL ≤ 30000(PAY)


PAY2 = ϬSAL > 30000(PAY)
El resultado de esta fragmentación se representa en la figura 3.11.
Diseño de bdd. Derived Horizontal
Fragmentation.
Diseño de bdd. Derived Horizontal
Fragmentation.
SELECT a.DEPARTMENT_ID,
a.DEPARTMENT_NAME
FROM DEPARTMENTS a, EMPLOYEES b
Where a.DEPARTMENT_ID =
b.DEPARTMENT_ID

SELECT a.DEPARTMENT_ID,
a.DEPARTMENT_NAME
FROM DEPARTMENTS a
WHERE EXISTS (SELECT 1 FROM EMPLOYEES b
Where a.DEPARTMENT_ID =
b.DEPARTMENT_ID)
Diseño de bdd. Derived Horizontal
Fragmentation.
SELECT a.ENO, a.ENAME,a.TITTLE
FROM EMP a, PAY1 b
Where a.TITTLE = b.TITTLE

SELECT a.ENO, a.ENAME,a.TITTLE


FROM EMP a
WHERE (SELECT 1 FROM PAY1 b
Where a.TITTLE = b.TITTLE)
Diseño de bdd. Derived Horizontal
Fragmentation.
Diseño de bdd. Derived Horizontal
Fragmentation.
Diseño de bdd. Derived Horizontal
Fragmentation.
• Escuela = EISIC (Fragmentación Horizontal
primaria)
Diseño de bdd. Derived Horizontal
Fragmentation.
• Escuela = CIME (Fragmentación Horizontal
primaria)
Diseño de bdd. Derived Horizontal
Fragmentation.
Diseño de bdd. Derived Horizontal
Fragmentation.
Diseño de bdd. Derived Horizontal
Fragmentation.
Diseño de bdd. Vertical Fragmentation.

• Recuerde que una fragmentación vertical de


una relación R produce fragmentos R1, R2,...,
Rr, cada uno de los cuales contiene un
subconjunto de atributos de R, así como la
clave primaria de R.
Diseño de bdd. Vertical Fragmentation.

• El objetivo de la fragmentación vertical es


dividir una relación en un conjunto de
relaciones más pequeñas para que muchas de
las aplicaciones de usuario se ejecuten en un
solo fragmento.
Diseño de bdd. Vertical Fragmentation.

• En este contexto, una fragmentación "óptima"


es aquella que produce un esquema de
fragmentación que minimiza el tiempo de
ejecución de las aplicaciones de usuario que
se ejecutan en estos fragmentos.
Diseño de bdd. Vertical Fragmentation.

• La fragmentación vertical se basa en los


atributos de la relación para realizar la
división, es decir: la subdivisión de atributos
en grupos. La fragmentación es correcta si
cada atributo se mapea en al menos un
atributo del fragmento.
Diseño de bdd. Vertical Fragmentation.

• La partición vertical resulta más complicada


que la horizontal. Esto se debe al aumento del
número total de alternativas que tenemos
disponibles.
• Existen dos enfoques heurísticos para la
fragmentación vertical de relaciones:
Diseño de bdd. Vertical Fragmentation.

• 1. Agrupación: comienza asignando cada


atributo a un fragmento y, en cada paso, une
algunos de los fragmentos hasta que se
cumplan algunos criterios. La agrupación se
sugirió por primera vez para bases de datos
centralizadas y se utilizó más tarde para bases
de datos distribuidas.
Diseño de bdd. Vertical Fragmentation.

• 2. División: comienza con una relación y


decide sobre particiones beneficiosas basadas
en el comportamiento de acceso de las
aplicaciones a los atributos. La técnica
también se discutió por primera vez para el
diseño de bases de datos centralizadas Luego
se extendió al entorno distribuido.
Diseño de bdd. Vertical Fragmentation.

• Antes de continuar, aclaremos un problema, a


saber, la replicación de la clave de la relación
global en los fragmentos. Esta es una
característica de la fragmentación vertical que
permite la reconstrucción de la relación
global. Por lo tanto, la división se considera
solo para aquellos atributos que no participan
en la clave primaria.
Diseño de bdd. Information Requirements of
Vertical Fragmentation.

• La información principal requerida para la


fragmentación vertical está relacionada con
las aplicaciones. La siguiente discusión, por lo
tanto, se centra exclusivamente en lo que
debe determinarse sobre las aplicaciones que
se ejecutarán en la base de datos distribuida.
Diseño de bdd. Information Requirements of
Vertical Fragmentation.

• Dado que la partición vertical coloca en un


fragmento esos atributos a los que
generalmente se accede juntos, existe la
necesidad de alguna medida que defina más
precisamente la noción de "unión". Esta
medida es la afinidad de los atributos, lo que
indica qué tan estrechamente relacionados
están los atributos.
Diseño de bdd. Information Requirements of
Vertical Fragmentation.
Diseño de bdd. Information Requirements of
Vertical Fragmentation.
Diseño de bdd. Vertical Fragmentation.
Diseño de bdd. Vertical Fragmentation.
Diseño de bdd. Vertical Fragmentation.
Diseño de bdd. Vertical Fragmentation.
Diseño de bdd. Vertical Fragmentation.
Diseño de bdd. Allocation (Asignación)

• Suponga que hay un conjunto de fragmentos F


= {F1, F2, ...., Fn} y un sistema distribuido que
consiste en sitios S = {S1, S2, ..., Sm} en el que
un conjunto de aplicaciones Q = {q1, q2, ...,
qq} se está ejecutando. El problema de
asignación implica encontrar la distribución
"óptima" de F a S. La optimización se puede
definir con respecto a dos medidas
Diseño de bdd. Allocation (Asignación)

• 1. Costo mínimo. La función de costo consiste en:


– el costo de almacenar cada Fi en un sitio Sj,
– el costo de consultar Fi en el sitio Sj,
– el costo de actualizar Fi en todos los sitios donde se
almacena
– y el costo de la comunicación de datos.

• El problema de asignación, entonces, intenta


encontrar un esquema de asignación que
minimice una función de costo combinado.
Diseño de bdd. Allocation (Asignación)

• 2. Rendimiento. La estrategia de asignación


está diseñada para mantener una métrica de
rendimiento. Dos conocidos son:
– minimizar el tiempo de respuesta
– y maximizar el rendimiento del sistema en cada
sitio.
Diseño de bdd. Allocation (Asignación)

• La mayoría de los modelos que se han


propuesto hasta la fecha hacen esta distinción
de optimización. Sin embargo, si uno
realmente examina el problema en
profundidad, es evidente que la medida
"óptima" debería incluir tanto el desempeño
como los factores de costo.
Diseño de bdd. Allocation (Asignación)

• En otras palabras, uno debería estar buscando


un esquema de asignación que, por ejemplo,
– responda las consultas de los usuarios en un
tiempo mínimo
– y al mismo tiempo mantenga el costo de
procesamiento mínimo.
Diseño de bdd. Asignación

• Se puede hacer una declaración similar para


maximizar el rendimiento. Entonces se puede
preguntar por qué no se han desarrollado
tales modelos. La respuesta es bastante
simple: complejidad.
Diseño de bdd. Asignación

• Es en la etapa de asignación que necesitamos


los datos cuantitativos sobre la base de datos,
las aplicaciones que se ejecutan en ella, la red
de comunicación, las capacidades de
procesamiento y las limitaciones de
almacenamiento de cada sitio en la red.
Diseño de bdd. Asignación. Database
Information

• Para realizar la fragmentación horizontal,


definimos la selectividad de los términos
mínimos. Ahora necesitamos extender esa
definición a los fragmentos y definir la
selectividad de un fragmento Fj con respecto a la
consulta qi. Este es el número de tuplas de Fj a las
que se debe acceder para procesar qi. Este valor
se denotará como seli (Fj). Otra información
necesaria sobre los fragmentos de la base de
datos es su tamaño.
Diseño de bdd. Asignación. Application
Information

• La mayor parte de la información relacionada con


la aplicación ya se compila durante la actividad de
fragmentación, pero el modelo de asignación
requiere algunas más. Las dos medidas
importantes son el número de accesos de lectura
que una consulta qi realiza a un fragmento Fj
durante su ejecución, y su contraparte para los
accesos de actualización. Estos pueden, por
ejemplo, contar el número de accesos de bloque
requeridos por la consulta.
Diseño de bdd. Asignación. Site Information

• Para cada sitio de computadoras, necesitamos


conocer su capacidad de almacenamiento y
procesamiento. Obviamente, estos valores
pueden calcularse mediante funciones
elaboradas o mediante estimaciones simples.
Diseño de bdd. Asignación. Network Information

• Denota el costo de comunicación por trama


entre los sitios Si y Sj

También podría gustarte