Un procesamiento de consultas en un sistema de administración de bases de datos distribuidas requiere la transmisión de datos entre las computadoras en una red. Una estrategia de distribución para una consulta es ordenar las transmisiones de datos y el procesamiento local de datos en un sistema de base de datos. Generalmente, una consulta en DBMS Distribuido requiere datos de múltiples sitios, y esta necesidad de datos de diferentes sitios se denomina transmisión de datos que genera costos de comunicación. El procesamiento de consultas en DBMS es diferente del procesamiento de consultas en DBMS centralizado debido a este costo de comunicación de la transferencia de datos a través de la red. El costo de transmisión es bajo cuando los sitios están conectados a través de Redes de alta velocidad y es bastante significativo en otras redes.
1. Costos (Transferencia de datos) del procesamiento de consultas distribuidas:
En el procesamiento de consultas distribuidas, el costo de transferencia de datos del procesamiento de consultas distribuidas significa el costo de transferir archivos intermedios a otros sitios para su procesamiento y, por lo tanto, el costo de transferir los archivos de resultados finales a la ubicación donde se requiere ese resultado. Digamos que un usuario envía una consulta al sitio S1, que requiere datos propios y también de otro sitio S2. Ahora, hay tres estrategias para procesar esta consulta que se detallan a continuación:
- Podemos transferir los datos de S2 a S1 y luego procesar la consulta
- Podemos transferir los datos de S1 a S2 y luego procesar la consulta
- Podemos transferir los datos de S1 y S2 a S3 y luego procesar la consulta. Por lo tanto, la elección depende de varios factores, como el tamaño de las relaciones y los resultados, el costo de comunicación entre diferentes sitios y en qué se utilizará el resultado del sitio.
Comúnmente, el costo de la transferencia de datos se calcula en términos del tamaño de los mensajes. Usando la siguiente fórmula, podemos calcular el costo de transferencia de datos:
Costo de transferencia de datos = C * Tamaño
Donde C se refiere al costo por byte de transferencia de datos y Tamaño es el no. de bytes transmitidos.
Ejemplo: Considere la siguiente tabla EMPLEADO y DEPARTAMENTO.
Sitio 1: EMPLEADO
identificación electrónica | NOMBRE | SALARIO | HIZO |
EID- 10 bytes
SALARIO- 20 bytes
DID- 10 bytes
Nombre- 20 bytes
Registros totales- 1000
Tamaño de registro- 60 bytes
Sitio2: DEPARTAMENTO
HIZO | NOMBRE |
DID- 10 bytes
DName- 20 bytes
Registros totales- 50
Tamaño de registro- 30 bytes
Ejemplo: Encuentre el nombre de los empleados y los nombres de sus departamentos. Además , encuentre la cantidad de transferencia de datos para ejecutar esta consulta cuando la consulta se envía al Sitio 3.
Respuesta: Teniendo en cuenta que la consulta se envía en el sitio 3 y ninguna de las dos relaciones, que es un EMPLEADO y el DEPARTAMENTO, no está disponible en el sitio 3. Entonces, para ejecutar esta consulta, tenemos tres estrategias:
- Transfiera las tablas que son EMPLEADO y DEPARTAMENTO en el SITIO 3 y luego únase a las tablas allí. El costo total en esto es 1000 * 60 + 50 * 30 = 60,000 + 1500 = 61500 bytes.
- Transfiera la tabla EMPLEADO al SITIO 2, únase a la tabla en el SITIO 2 y luego transfiera el resultado al SITIO 3. El costo total en esto es 60 * 1000 + 60 * 1000 = 120000 bytes ya que tenemos que transferir 1000 tuplas que tienen NOMBRE y DNOMBRE del sitio 1,
- Transfiera la tabla DEPARTAMENTO al SITIO 1, únase a la tabla en el SITIO 2, únase a la tabla en el sitio 1 y luego transfiera el resultado al sitio 3. El costo total es 30 * 50 + 60 * 1000 = 61500 bytes ya que tenemos que transferir 1000 tuplas que tienen NOMBRE y DNOMBRE del sitio 1 al sitio 3 que son 60 bytes cada una.
Ahora, si los criterios de optimización son para reducir la cantidad de transferencia de datos, podemos elegir 1 o 3 estrategias de las anteriores.
2. Uso de Semijoin en el procesamiento de consultas distribuidas:
La operación de semiunión se utiliza en el procesamiento de consultas distribuidas para reducir el número de tuplas en una tabla antes de transmitirla a otro sitio. Esta reducción en el número de tuplas reduce el número y el tamaño total de la transmisión que finalmente reduce el costo total de la transferencia de datos. Digamos que tenemos dos tablas R1, R2 en el sitio S1 y S2. Ahora, reenviaremos la columna de unión de una tabla, digamos R1, al sitio donde se encuentra la otra tabla, digamos R2. Esta columna se une con R2 en ese sitio. La decisión de reducir R1 o R2 solo se puede tomar después de comparar las ventajas de reducir R1 con las de reducir R2. Por lo tanto, semi-join es una solución bien organizada para reducir la transferencia de datos en el procesamiento de consultas distribuidas.
Ejemplo: Encuentre la cantidad de datos transferidos para ejecutar la misma consulta dada en el ejemplo anterior usando la operación semi-join.
Respuesta: La siguiente estrategia se puede utilizar para ejecutar la consulta.
- Seleccione todos (o Proyecto) los atributos de la tabla EMPLEADO en el sitio 1 y luego transfiéralos al sitio 3. Para esto, transferiremos NOMBRE, DID (EMPLEADO) y el tamaño es 25 * 1000 = 25000 bytes.
- Transfiera la tabla DEPARTAMENTO al sitio 3 y una los atributos proyectados de EMPLEADO con esta tabla. El tamaño de la tabla DEPARTAMENTO es 25 * 50 = 1250
Aplicando el esquema anterior, la cantidad de datos transferidos para ejecutar la consulta será de 25000 + 1250 = 26250 bytes.
Publicación traducida automáticamente
Artículo escrito por tarunsinghwap7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA