PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

Procesamiento Distribuido de Consultas

Tiene varias etapas a seguir para resolver una consulta SQL, las características del modelorelacional permiten que cada motor de base de datos elija su propia representación que,comúnmente, resulta ser el álgebra relacional .Existen varios medios para calcular la respuesta a una consulta.

En el caso del sistema centralizado

El criterio principal para determinar el costo de una estrategia

Específica es el número de acceso al disco.

En un sistema distribuido es preciso tener en cuenta otros factores como son:

El costo de transmisión de datos en la red.

Repetición y fragmentación.

Procesamiento de intersección simple.

CONSULTAS DISTRIBUIDAS

Se encargan de detener el acceso a datos de varios orígenes de datos heterogéneos.

Estos orígenes de datos pueden estar almacenados en el mismo equipo o en equipos diferentes.

El sistema gestor de B.D. proporciona la tecnología para el enlace entre ellas.

PROCESAMIENTO DE CONSULTA


La función principal de un procesador de consultas relacionales es transformar una consulta en una especificación de alto nivel, típicamente en cálculo relacional, a una consulta equivalente en una especificación de bajo nivel.

El proceso de consultas en bases de datos relacionales deja al programador de aplicaciones en un escenario distinto al anterior; la razón es el empleo delenguajes de especificación: “si se utiliza un lenguaje de especificación.

PROCESAMIENTO DE CONSULTA

(Distribuidas/Centralizadas)

Heterogeneidad de los datos para que puedan ser usados en formular consultas.

Localización de los datos para generar reglas heurísticas

Descomposición de consultas en paralelo en cada nodo

Reducir la cantidad de datos a transferir en la red

¿CÓMO REALIZAR EL PROCESAMIENTO DE CONSULTAS?

1.- Descomposición

Análisis.

Normalización.

Análisis semántico.

Simplificación.

Reestructuración de la consulta.

2.- Optimización

Todos los registros deben tener un ID único.

Crear índices en las tablas.

Indica cuáles campos no pueden ser nulos.

3.- Generación de código

LEFT JOIN: Devuelve todas las filas cuando hay al menos una coincidencia en ambas tablas. Si no existe ninguna coincidencia para alguna de las filas de la tabla de la izquierda, de igual forma todos los resultados de la primera tabla se muestran.


INNER JOIN:Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la tabla de la derecha. Esta cláusula busca coincidencias entre 2 tablas, en función a una columna que tienen en común. De tal modo que sólo la intersección se mostrará en los resultados.

3.RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes de la tabla de la izquierda. Si no existe ninguna coincidencia para alguna de las filas de la tabla de la izquierda, de igual forma todos los resultados de la primera tabla se muestran. pero aquí se da prioridad a la tabla de la derecha.


4.FULL OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha. También se llama FULL OUTER JOIN .Muestra todas las filas de la tabla izquierda, y RIGHT JOIN muestra todas las correspondientes a la tabla derecha, FULL OUTER JOIN (o simplemente FULL JOIN) se encarga de mostrar todas las filas de ambas tablas, sin importar que no existan coincidencias (usará NULL como un valor por defecto para dichos casos).

Ejecución

Los usuarios de SQL Server pueden utilizar consultas distribuidas para obtener acceso a lo siguiente:


Datos distribuidos almacenados en varias instancias de SQL Server.


Datos heterogéneos almacenados en varios orígenes de datos relacionales y no relacionales a los que se obtiene acceso mediante un proveedor OLE (Object Linking and Embedding (Incrustacióny Vinculación de Objetos) DB.

Operaciones Aritméticas en Consultas


Dentro de un SELECT podemos mostrar resultados que provienen de uno o varios campos de la

base de datos utilizando operaciones matemáticas.


•Las operaciones básicas son:


Suma (+)


Resta (-)


División (/)


Multiplicación (*).


Algunos ejemplos


Operaciones Aritméticas - Mult.


Se mostrar el nombre y el salario anual de los empleados. (asuma que el atributo salario sólo tiene el pago mensual)


SELECT emp -nombre, emp-salario * 12-Datos que se van sacar de la tabla FROM empleado;-De que tabla se obtiene Operaciones Aritméticas -Suma Operaciones Aritméticas – Suma


¿A cuánto subiría el salario de cada empleado si le incluimos 300 dólares de aumento? Mostrar el nombre y el salario incluyéndole el aumento de 300 dólares.


SELECT emp-nombre, emp-salario + 300

FROM empleado

Operaciones Aritméticas – Varios

Mostrar el nombre y lo que gana el empleado en comisión para aquellos que son vendedores.

SELECT emp-nombre, emp-commision * emp-salario / 100-datos a utilizar FROM empleado- De que tabla

WHERE emp_titulo = ‘Vendedores’- Donde se van a realizar los cambios Operaciones Alfanuméricas en Consultas

En estas operaciones se juega con el manejo de caracteres y “string”.


Permiten una mejor presentación de los datos en pantalla y/o reportes. Ayuda en la búsqueda de instancias en la tabla. A continuación mostramos algunos ejemplos Operaciones Alfanuméricas en Consultas –Ejemplo 1 Mostrar el nombre y apellido (que no queden separados por espacios en blanco)SELECT emp-nombre || emp-apellidos

FROM empleado;

Operaciones Aritméticas con Fechas en Consultas

SQL permite ejecutar queries que incluyan operaciones aritméticas con

fechas.

Es útil para manejar días, diferencias entre fechas y calcular estimados de tiempo. A continuación mostramos algunos ejemplos:

Ejemplos: Operaciones Aritméticas con Fechas en Consultas –Ejemplo 1•Mostrar el nombre del empleado, la fecha que comenzó y la fecha en que le corresponde evaluarlo en la empresa ( La evaluación se hace después de los primeros 6 meses de comenzar a trabajar)


•SELECT emp-nombre, emp-fecha-inicio, ADD_MONTHS(emp_fecha_inicio,6) A ‘Fecha

•Evaluación’

•FROM empleado

Factores adicionales que

complican el proceso de consulta


Es el coste de transferencia de datos a través de la red. Los datos son enviados a ficheros intermedios que a su vez se envían a otros nodos para nuevos procesos. Los ficheros resultantes deben enviarse de vuelta al nodo que lanzó la consulta. Los algoritmos de consulta deben, por tanto, tener como objetivo la reducción de la cantidad de datos transferidos.


Algunos de los problemas más comunes que se presentan en los sistemas de bases de datos distribuidas. En los entornos distribuidos de datos podemos encontrar lo siguientes:

Fallo de los nodos. Cuando un nodo falla, el sistema deberá continuar trabajando con los nodos que aún funcionan. Si el nodo a recuperar es una base de datos local, se deberán separar los datos entre los nodos restantes antes de volver a unir de nuevo el sistema.

Copias múltiples de fragmentos de datos. El subsistema encargado del control de concurrencia es el responsable de mantener la consistencia en todas las copias que se realicen y el subsistema que realiza la recuperación es el responsable de hacer copias consistentes de los datos de los nodos que han fallado y que después se recuperarán.

Transacción distribuida correcta. Se pueden producir fallos durante la ejecución de una transacción correcta si se plantea el caso de que al acceder a alguno de los nodos que intervienen en la transacción, dicho nodo falla.

Fallo de las conexiones de comunicaciones. El sistema debe ser capaz de tratar los posibles fallos que se produzcan en las comunicaciones entre nodos. El caso más extremo es el que se produce cuando se divide la red. Esto puede producir la separación de dos o más particiones donde las particiones de cada nodo pueden comunicarse entre sí pero no con particiones de otros nodos.




conclusion:es de suma importancia en bases de datos centralizadas. Sin embargo, en BDD éste adquiere una relevancia mayor. El objetivo es convertir transacciones de usuario en instrucciones para manipulación de datos. No obstante, el orden en que se realizan las transacciones afecta grandemente la velocidad de respuesta del sistema. Así, el procesamiento de consultas presenta un problema de optimización en el cual se determina el orden en el cual se hace la menor cantidad de operaciones. En BDD se tiene que considerar el procesamiento local de una consulta junto con el costo de transmisión de información al lugar en donde se solicitó la consulta.

Comentarios

Entradas más populares de este blog

FUNDAMENTOS DE LAS BASES DE DATOS DISTRIBUIDAS

SISTEMAS DE BASES DE DATOS DISTRIBUIDOS HOMOGÉNEOS Y HETEROGÉNEOS

Arquitectura de las base de datos distribuidas