Está en la página 1de 8

1.

3 Procesamiento de operaciones de actualizacin distribuida


Los sistemas cliente/servidor involucran varias computadoras conectadas a una
red. Las computadoras que procesan programas de aplicaciones se conocen
como clientes y las que procesan bases de datos se conocen como servidor.
Arquitectura Cliente Servidor
Un sistema cliente servidor puede tener varios servidores de procesamiento de
bases de datos, cuando esto ocurre cada servidor debe procesar una base de
datos distinta. Cuando dos o ms servidores procesan una misma base de datos,
el sistema no es considerado cliente servidor, ms bien, es conocido como
sistema de base de datos distribuido.
Funciones del cliente:
Administrar la interfaz de usuario.
Aceptar datos del usuario.
Procesar la lgica de la aplicacin.
Generar las solicitudes para la base de datos.
Trasmitir las solicitudes de la base de datos al servidor.
Recibir los resultados del servidor.
Dar formatos a los resultados.
Funciones del servidor:
Aceptar las solicitudes de la base de datos de los clientes.
Procesar las solicitudes de los clientes.
Dar formato a los resultados y trasmitirlos al cliente.
Llevar a cabo la verificacin de integridad.
Mantener los datos generales de la base de datos.
Proporcionar control de acceso concurrente.
Llevar a cabo la recuperacin.
Optimizar el procesamiento de consulta/actualizacin.

1.4 Procesamiento de consultas distribuidas


El sistema debe de ser capaz de procesar consultas que hagan referencia a datos
situados a mas de un nodo

Procesamiento Distribuido de Consultas


El procesamiento de consultas 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


manipulacin 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 optimizacin 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 transmisin de informacin al lugar en donde se solicit la consulta.
Las consultas distribuidas detienen acceso a datos de varios orgenes de datos
heterogneos. Estos orgenes de datos pueden estar almacenados en el mismo
equipo o en equipos diferentes.
El procesamiento de consultas tiene varias etapas a seguir para resolver una
consulta SQL, las caractersticas del modelo relacional permiten que
cada motor de base de datos elija su propia representacin que, comnmente,
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 especfica es el nmero de acceso al disco. En un sistema distribuido es
preciso tener en cuenta otros factores como son:
El costo de transmisin de datos en la red.
Repeticin y fragmentacin.
Procesamiento de interseccin simple.
Arboles de consultas
Pasos
Parsing y traduccin de la consulta
Optimizacin
Generacin de cdigo
Ejecucin de la consulta

Transformaciones equivalentes
Cuando una base de datos se encuentra en mltiples servidores ydistribuye a un
nmero determinado de nodos tenemos:

El servidor recibe una peticin de un nodo.


El servidor es atacado por el acceso concurrente a la base de datos cargada
localmente.
El servidor muestra un resultado y le da un hilo a cada una de las maquinas nodo
de la red local.
Cuando una base de datos es acezada de esta manera la tcnica que se utiliza es
la de fragmentacin de datos que puede ser hibrida, horizontal y vertical.
En esta fragmentacin lo que no se quiere es perder la consistencia delos datos,
por lo tanto se respetan las formas normales de la base de datos.
Bueno para realizar una transformacin en la consulta primero desfragmentamos s
iguiendo los estndares marcados por las reglas formales
y
posteriormente
realizamos l envi y la mquina que recibe es la que muestra el resultado
pertinente para el usuario, de esta se puede producir una copia que ser
la equivalente a la original.
Mtodos de ejecucin del join
Existen diferentes algoritmos que pueden obtener transformaciones eficientes en
el procesamiento de consultas.
Join en bucles (ciclos) anidados
Si z = r s, r recibir el nombre de relacin externa y s se llamar relacin interna, el
algoritmo de bucles anidados se puede presentar como sigue:
Para cada tupla tr en s si (tr,ts) si satisface la condicin, entonces aadir tr * ts al
resultado Donde tr * ts ser la concatenacin de las tuplas tr y ts. Como para cada
registro de r se tiene que realizar una exploracin completa de ts, y suponiendo el
peor caso, en el cual la memoria intermedia slo puede concatenar un bloque de
cada relacin, entonces el nmero de bloques a acceder es de sr bn b. Por otro
lado, en el mejor de los casos si se pueden contener ambas relaciones en la
memoria intermedia entonces slo se necesitaran accesos a bloques.
Join en bucles anidados por bloques
Una variante del algoritmo anterior puede lograr un ahorro en el acceso a bloques,
si se procesan las relaciones por bloques en vez de por tuplas. Para cada bloque
Br dar a igual para cada bloque Bs de s, para cada tupla tr en Br.
La diferencia principal en costos de este algoritmo con el anterior es que en el
peor de los casos cada bloque de la relacin interna s se lee una vez por cada
bloque de dr y no por cada tupla de la relacin externa.
Join por mezcla

Este algoritmo se puede utilizar para calcular si un Join natural es ptimo en la


bsqueda o consulta. Para tales efectos, ambas relaciones deben estar ordenadas
para los atributos en comn es decir se asocia un puntero a cada relacin, al
principio estos punteros apuntan al inicio de cada una de las relaciones. Segn
avance el algoritmo el puntero se mueve a travs de la relacin. De este modo se
leen en memoria un grupo de tuplas de una relacin con el mismo valor en los
atributos de las relaciones.
Qu se debe de tomar en cuenta en este algoritmo?
Se tiene que ordenar primero, para despus utilizar este mtodo.
Se tiene que considerar el costo de ordenarlo / las relaciones.
Es ms fcil utilizar pequeas tuplas.

Join por asociacin.


Al igual que el algoritmo de join por mezcla, el algoritmo de join por asociacin se
puede utilizar para un Join natural o un equi-join. Este algoritmo utiliza una funcin
de asociacin h para dividir las tuplas de ambas relaciones. La idea fundamental
es dividir las tuplas de cada relacin en conjuntos con el mismo valor de la funcin
de asociacin en los atributos de join.
El nmero de bloques ocupados por las particiones podra ser ligeramente mayor
que.
Debido a que los bloques no estn completamente llenos. El acceso a estos
bloques puede aadir un gasto adicional de 2max a lo sumo, ya que cada una de
las particiones podra tener un bloque parcialmente ocupado que se tiene que leer
y escribir de nuevo.
Join por asociacin hbrida
El algoritmo de join por asociacin hbrida realiza otra optimizacin; es til cuando
el tamao de la memoria es relativamente grande paro an as, no cabe toda la
relacin s en memoria. Dado que el algoritmo de join por asociacin necesita max
+1 bloques de memoria para dividir ambas relaciones se puede utilizar el resto de
la memoria (M max 1 bloques)para guardar en la memoria intermedia la
primera particin de la relacin s, esto es, as no es necesaria leerla ni escribirla
nuevamente y se puede construir un ndice asociativo.
Cuando r se divide, las tuplas de tampoco se escriben en disco; en su lugar, segn
se van generando, el sistema las utiliza para examinar el ndice asociativo en y as
generar las tuplas de salida del join. Despus de utilizarlas, estas tuplas se
descartan, as que la particin no ocupa espacio en memoria. De este modo se
ahorra un acceso de lectura y uno de escritura para cada bloque de y.
Join Complejos

Los join en bucle anidado y en bucle anidado por bloques son tiles siempre, sin
embargo, las otras tcnicas de join son ms eficientes que estas, pero slo se
pueden utilizar en condiciones particulares tales como join natural o equi-join. Se
pueden implementar join con condiciones ms complejas tales como conjuncin o
disyuncin Dado un join de las forma se pueden aplicar una o ms de las tcnicas
de join descritas anteriormente en cada condicin individual, el resultado total
consiste en las tuplas del resultado intermedio que satisfacen el resto de las
condiciones. Estas condiciones se pueden ir comprobado segn se generen las
tuplas. La implementacin de la disyuncin es homloga a la conjuncin.
Outer Join (Join externos)
Un outer join es una extensin del operador join que se utiliza a menudo para
trabajar con la informacin que falta.
1.5 Manejo de Transacciones
Definicin de transaccin:
Es una coleccin de acciones que hacen transformaciones consistentes de los
estados de un sistema reservando la consistencia del sistema. Una base de datos
est en un estado consistente si obedece todas las restricciones de integridad
definidas sobre ellas.
Las propiedades de una transaccin son las siguientes:
1.-Atomicidad. Se refiere al hecho de que una transaccin se trata como una
unidad de operacin. Por lo tanto, o todas las acciones de la transaccin se
realizan o ninguna de ellas se lleva a cabo.
2.-Consistencia. La consistencia de una transaccin es simplemente su
correctitud. En otras palabras, una transaccin es un programa correcto que lleva
la base de datos de un estado consistente a otro con la misma caracterstica.
3.-Aislamiento. Una transaccin en ejecucin no puede revelar sus resultados a
otras transacciones concurrentes antes de su commit. Ms an, si varias
transacciones se ejecutan concurrentemente, los resultados deben ser los mismos
que si ellas se hubieran ejecutado de manera secuencial (seriabilidad).
4.-Durabilidad. Es la propiedad de las transacciones que asegura que una vez que
una transaccin hace su commit, sus resultados son permanentes y no pueden ser
borrados de la base de datos.
CONCEPTOS DE TRANSACCIONES

A) Una transaccin en un sistema de gestin de bases de datos (SGBD), es un


conjunto de rdenes que se ejecutan formando una unidad de trabajo, es decir,
una forma indivisible o atmica.
B) Transaccin consiste en lograr hacer cualquier tipo de operacin en una base
de datos, basndonos en consultas desde las ms simples hasta las de mayor
grado de complejidad.
C) Transaccin se entiende en el mbito de las bases de datos en lograr hacer
acciones sobre las bases de datos deseadas, logrando operaciones de ingreso,
borrado, actualizacin y visualizar.

CONTROL DE CONCURRENCIA
Un algoritmo de control de concurrencia asegura que las transacciones se
ejecuten automticamente controlando la intercalacin de transacciones
concurrentes, para dar la ilusin de que las transacciones se ejecutan seriamente,
una despus de la otra sin ninguna intercalacin.

CONFIABILIDAD
Se debe de tener la certeza de que un sistema en lnea no puede fallar dado que
si existe algn error en nuestro algoritmo ocasionara no solo que se estropeara
una operacin, pueden significar estos errores perdidas econmicas bastante

grandes, para que nuestro sistema de bases de datos sea confiable se tienen que
tener probadas todas las posibles operaciones que se pueden realizar en el para
simular una transaccin de un cliente en un tiempo determinado.
En resumen, las transacciones proporcionan una ejecucin atmica y confiable en
presencia de fallas, una ejecucin correcta en presencia de accesos de usuario
mltiples y un manejo correcto de rplicas (en el caso de que se soporten).

También podría gustarte