Sei sulla pagina 1di 15

Instituto Tecnolgico Superior De Jess Carranza

ASIGNATURA: BASES DE DATOS distribuidas CARRERA: Ing. Sistemas Computacionales INVESTIGACIN UNIDAD IV Presenta: YARETH VELASCO MOLINA Grupo: 602-A DOCENTE: Lic. Esteban Snchez Mendoza.

Jess Carranza, Veracruz.

ABRIL 2013

INTRODUCCIN
En esta unidad veremos todo lo relacionado con la recuperacin de informacin en ambientes de base de datos distribuidas. Aqu veremos sus metodologas, sus estrategias, sus rboles de consulta, sus transformaciones equivalentes, sus mtodos de ejecucin de join, etc. La recuperacin de datos, es ms que nada, todos esos archivos que hemos borrado por error o que se borraron intencionalmente

UNIDAD IV. RECUPERACIN DE INFORMACIN EN AMBIENTES DE BD DISTRIBUIDAS.


4.1. METODOLOGA DEL PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS.
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. Microsoft SQL SERVER admite consultas distribuidas utilizando OLE BD. Los usuarios de SQL SERVER pueden utilizar consultas distribuidas para obtener acceso a lo siguiente: Datos distribuidos almacenados en varias estancias de SQL SERVER. Datos heterogneos almacenados en varios orgenes de datos relacionales y no relacionales a los que se obtienen acceso mediante un proveedor OLE BD.

Los proveedores OLE BD exponen datos en objetos tabulares denominados conjuntos de filas. SQL SERVER permite hacer referencia a conjunto de filas desde proveedores OLE BD en instrucciones TRANSACSQL como si fueran tablas de SQL SERVER. En las instrucciones SELECT, INSERT, UPDATE Y DELETE DE TRANSAC-SQL, se puede hacer referencias directas a las tablas y vistas de orgenes de datos externos.

Los lenguajes de bases de datos relacionales permiten la expresin de consultas complejas en una forma concisa y simple. Particularmente para construir la respuesta a una consulta, el usuario no tiene que especificar de manera precisa el procedimiento que se debe de seguir. Este procedimiento es llevado acabo por un mdulo del DBNS llamado el procesador de consultas (query procesador).

El procedimiento de consultas es mucho ms difcil en ambientes distribuidos que en centralizados, ya que existe un gran nmero de parmetros que afectan el rendimiento de las consultas distribuidas. La funcin principal de un procesador de consultas relacionales es transformar una consulta en una especificacin de alto nivel, tpicamente en clculo relacional, a una consulta equivalente en una especificacin de bajo nivel.

4.2. ESTRATEGIAS DE PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS.


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 l 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.

4.3. ARBOLES DE CONSULTA.


Pasos Parsing y traduccin de la consulta Optimizacin Generacin de cdigo Ejecucin de la consulta

4.4. TRANSFORMACIONES EQUIVALENTES.


Cuando una base de datos se encuentra en mltiples servidores y distribuye 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 de los datos, por lo tanto se respetan las formas normales de la base de datos. Bueno para realizar una transformacin en la consulta primero desfragmentamos siguiendo 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.

4.5. 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 enconcatenar un bloque de cada relacin, entonces el nmero de bloques a acceder es de sr en 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 aun 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.

POR EJEMPLO:
Suponiendo que se desea generar una lista con todos los choferes y los autos que manejan (si manejan alguno) entonces se debe cruzar la relacin Chofer con la relacin Mvil. Si se efecta un join corriente se perdern todas aquellas tuplas que pertenecen a los choferes, en cambio con un outer join se pueden desplegar las tuplas resultado incluyendo a aquellos choferes que no tengan a cargo un auto. El outer join tiene tres formas distintas: por la izquierda, por la derecha y completo.

El join por la izquierda ( ) toma todas las tuplas de la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha, las rellena con valores nulos en los dems atributos de la relacin de la derecha y las aade al resultado del join natural. Un outer join por la derecha ( ) es anlogo al procedimiento anterior y el outer join completo es aquel que efecta ambas operaciones. Para el caso de un outer join completo se puede calcular mediante extensiones de los algoritmos de join por mezcla y join por asociacin.

4.6. OPTIMIZACIN DE CONSULTAS.


El objetivo del procesamiento de consultas en un ambiente distribuido es transformar una consulta sobre una base de datos distribuida en una especificacin de alto nivel a una estrategia de ejecucin eficiente expresada en un lenguaje de bajo nivel sobre bases de datos locales. El problema de optimizacin de consultas es minimizar una funcin de costo tal que funcin de costo total = costo de I/O + costo de CPU + costo de comunicacin Los diferentes factores pueden tener pesos diferentes dependiendo del ambiente distribuido en el que se trabaja.

POR EJEMPLO:
En las redes de rea amplia (WAN), normalmente el costo de comunicacin domina dado que hay una velocidad de comunicacin relativamente baja, los canales estn saturados y el trabajo adicional requerido por los protocolos de comunicacin es considerable. As, los algoritmos diseados para trabajar en una WAN, por lo general, ignoran los costos de CPU y de I/O. En redes de rea local (LAN) el costo de comunicacin no es tan dominante, as que se consideran los tres factores con pesos variables.

4.7. OPTIMIZACIN GLOBAL DE CONSULTAS.


Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar una estrategia de ejecucin para la consulta cercana a la ptima. La estrategia de ejecucin para una consulta distribuida puede ser descrita con los operadores del lgebra relacional y con primitivas de comunicacin para transferir datos entre nodos.

Un aspecto importante de la optimizacin de consultas es el ordenamiento de juntas, dado que algunas permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios rdenes de magnitud. La salida de la capa de optimizacin global es una consulta algebraica optimizada con operacin de comunicacin incluida sobre los fragmentos.

4.8. OPTIMIZACIN LOCAL DE CONSULTAS.


El trabajo de la ltima capa se efecta en todos los nodos con fragmentos involucrados en la consulta. Cada consulta que se ejecuta en un nodo, llamada consulta local, es optimizada usando el esquema local del nodo. Hasta este momento, se eligen los algoritmos para realizar las operaciones relacionales. La optimizacin local utiliza los algoritmos de sistemas centralizados.

COMO REALIZAR TRIGGERS


La mayor parte de las aplicaciones desarrolladas para administrar una base de datos desde una computadora personal antiguas aplicaciones de las bases de datos son los responsables de llevarle el control de las reglas de los negocios.

Una de las caractersticas de SQL SERVER es que implementa un mecanismo de control llamado disparador de bases de datos (triggers) y como ya sabemos un triggers es solo un bloque de comandos transac-SQL que se ejecuta actualmente con un comando insert, select o update es una tabla.

Entre las diversas aplicaciones de un triggers, podemos destacar: Crear el contenido de una columna derivada de datos. Crear un mecanismo de validacin que implique bsquedas en mltiples tablas.

LA CREACIN DE UN TRIGGERS
La forma rpida y sencilla de crearlo es con el comando create triggers, o bien por medio del enter-prise manager en cualquiera de los dos casos es necesaria la digitalizacin de los comandos SQL, que se ejecutaran cuando se active el triggers.

EJEMPLO DE LA SINTAXIS:
Create triggers nombre_del_triggers on nombre_de_la_tabla For [insert, delete, update] As commandos

Dnde: On nombre_de_la_tabla.- Indica la tabla para la cual se har el triggers. For. Debe de estar seguido por el tipo de comando o comandos que activan el triggers. As. Aqu es donde realmente donde indica el cuerpo del triggers con los comandos que se van a ejecuta. Como modificar un trigger. Una vez realizado el triggers puede ser modificado, y no solo eso sino que adems puede modificarse directamente con el comando alter triggers. La replicacin en SQL SERVER. Es una tecnologa importante en un ambiente de bases de datos distribuidas por medio de ella es posible distribuir en la organizacin de una base de datos pueden ser duplicadas y copiadas a varios sitios diferentes.

La base de datos distribuida puede sincronizarse, de manera que siempre tengan la misma informacin.

POR EJEMPLO:
Una lista de precios de productos es sincronizada en todas las finales de la empresa.

Modelo de replicacin. SQL SERVER adopta el modelo de recopilacin basada en el modelo publish and susenbe. Este modelo est compuesto por editaros, distribuciones, suscriptores, artculos y publicaciones.
Este modelo permite a la re indicacin de base de datos mediante el uso de olebd.

Tipos de replicacin. Snaphsopt transaccional y marge: Este tipo de replicacin toma una fotografa de las tablas de la base de datos y esta es replicado a sus suscriptores, quienes reciben una copia completa de los datos en vez de recibir solo las modificaciones efectuadas.

Desventajas: La desventaja principal si as se pueden llamar es que no existe una actualizacin frecuente de la base de datos para aquellos usuarios o miembros que no se actualizan constantemente las tablas.

Replicacin

transaccional:

Esta

permite

la

replicacin

de

tablas

procedimientos almacenados y posibilita la filtracin de los datos que van a publicarse. Este tipo de replicacin utiliza un archivo de log para almacenar las modificaciones hechas en un artculo, por ejemplo una tabla desde su ltima publicacin, hacindoles un seguimiento a los comandos insert, update y delete.

Las modificaciones se almacenan en la base de datos del Publisher u despus distribuidas a sus suscriptores.

Replicacin nerge. Esta permite la replicacin de tablas y procedimientos almacenados. Las modificaciones pueden hacerse en el Publisher o bien en las copias mantenidas por los suscriptores. Para mantener la integridad de los datos replicados el proceso de sincronizacin se encarga de actualizar las modificaciones relacionadas en las copias de los suscriptores y viceversa.

CONCLUSIN
Para finalizar un mini resumen de todo lo que hemos visto, esta investigacin nos dice que 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 objetivo del procesamiento de consultas en un ambiente distribuido es transformar una consulta sobre una base de datos distribuida en una especificacin de alto nivel a una estrategia de ejecucin eficiente expresada en un lenguaje de bajo nivel sobre bases de datos locales.

BIBLIOGRAFA
http://es.scribd.com/document_downloads/direct/44436671?extension=pdf&ft=136 7003951&lt=1367007561&user_id=111623219&uahk=4qs8G+dzXa8ol1DppwgAw xwUKTQ

Potrebbero piacerti anche