You are on page 1of 21

BASE DE DATOS II

UNIDAD II BASES DE DATOS DISTRIBUIDAS 2.1 ARQUITECTURA DE BASES DE DATOS HOMOGÉNEAS Y HETEROGÉNEAS Un SGBDD se puede clasificar como homogéneo o heterogéneo. En un sistema homogéneo, todas las localizaciones usan el mismo SGBD. En un sistema heterogéneo, las localizaciones pueden ejecutar diferentes SGBD, que no tienen por qué basarse en el mismo modelo de datos subyacente, y el sistema puede estar compuesto de SGBDs relacionales, en red, jerárquicos y orientados a objetos. Los sistemas homogéneos son más fáciles de diseñar y gestionar. Este enfoque proporciona crecimiento incremental, siendo más fácil añadir nuevas localizaciones al SGBDD, y permitiendo mejorar el funcionamiento explotando la capacidad de procesamiento paralelo en varias localizaciones. Los sistemas heterogéneos normalmente aparecen cuando localizaciones individuales han implementado sus propias bases de datos y la integración de éstas es muy costosa. En un sistema heterogéneo, se requieren traducciones para permitir la comunicación entre SGBDs diferentes. Para proporcionar transparencia, los usuarios deben poder hacer solicitudes en el lenguaje de su SGBD local. El sistema entonces tiene la tarea de localizar los datos y realizar todas las traducciones necesarias. Se realizan solicitudes de datos de otros sistemas que tienen: - Diferente hardware - Diferente SGBD - Diferente hardware y SGBD Si el hardware es diferente pero el SGBD es el mismo, la traducción es directa, implicando el cambio de códigos y longitudes de palabras. Si el SGBD es diferente, la traducción es complicada, implicando la traducción de las estructuras de datos de un modelo de datos al equivalente en otro modelo. Por ejemplo, las relaciones en el modelo relacional se transforman en registros (records) y conjuntos (sets) en el modelo de red. Es también necesario traducir el lenguaje de consultas usado (por ejemplo, la sentencia Select en SQL se traduce en la sentencia Find y Get en el modelo en red). Si el hardware y software son diferentes, entonces se requieren los dos tipos de traducciones. Esto hace que el procesamiento sea extremadamente complejo. Una complejidad añadida es la necesidad de un esquema conceptual común, que se forma mediante la integración de los esquemas conceptuales locales. Esta integración puede ser muy complicada debido la heterogeneidad semántica. Por ejemplo, atributos con el mismo nombre en dos esquemas pueden representar

ING. CARLOS DEL ÁNGEL MATÍAS

UNIDAD II

BASE DE DATOS II

cosas diferentes. Igualmente, atributos con diferentes nombres pueden modelar la misma cosa. La solución típica usada por algunos sistemas relaciones que forman parte de un sistema heterogéneo de bases de datos distribuidas es usar gateways (combinación de hardware y software que comunica dos tipos diferentes de redes), que convierten el lenguaje y modelo de cada diferente SGBD al lenguaje y modelo del sistema relacional. Sin embargo, esta aproximación tiene algunas limitaciones serias. Primero, no soporta gestión de transacciones, incluso para un par de sistemas. En otras palabras, la gateway entre dos sistemas es meramente un traductor de consultas. Por ejemplo, un sistema no puede coordinar el control de concurrencia y recuperación de transacciones que implique actualizaciones en ambas bases de datos. Segundo, esta aproximación concierne solo con el problema de traducir una consulta expresada en un lenguaje a la consulta equivalente en otro lenguaje. Así pues, no está dirigida al problema de homogeneizar las diferencias estructurales y de representación entre diferentes esquemas.

2.2 ALMACENAMIENTO DISTRIBUIDO DE DATOS Consideremos una relación r que debe guardarse en la base de datos. Hay varios enfoques del almacenamiento de esa relación en la base de datos distribuida:  Réplica. El sistema conserva varias réplicas (copias) idénticas de la relación. Cada réplica se guarda en un emplazamiento diferente, lo que da lugar a la réplica de los datos. La alternativa a la réplica es guardar sólo una copia de la relación r. Fragmentación. La relación se divide en varios fragmentos. Cada fragmento se guarda en un emplazamiento diferente. Réplica y fragmentación. La relación se divide en varios fragmentos. El sistema conserva réplicas de cada fragmento.

 

ING. CARLOS DEL ÁNGEL MATÍAS

UNIDAD II

BASE DE DATOS II Réplica de los datos. Por tanto. Por ejemplo. la actualización debe extenderse a todos los emplazamientos que contengan réplicas. Cuantas más réplicas de r haya. siempre que se actualice r. un buen parámetro para afrontar el grado de réplica consistiría en sopesar la cantidad de consultas de lectura que se efectuarán. Se puede simplificar la administración de las réplicas de la relación r escogiendo una de ellas como copia principal de r. El sistema debe asegurarse de que todas las réplicas de la relación r sea consistentes. El control de las actualizaciones concurrentes de los datos replicados por varias transacciones es más complicado que cuando se utiliza el enfoque centralizado del control de concurrencia. el sistema puede seguir procesando las consultas que impliquen a r. En el caso más extremo. no así en el caso contrario. mayor será la posibilidad de que el dato buscado se halle en el emplazamiento en que se esté ejecutando la transacción.   En general. ING. Por tanto. puede dar lugar a resultados erróneos. la réplica mejora el rendimiento de las operaciones de lectura y aumenta la disponibilidad de los datos para las transacciones de sólo lectura. Si se replica la relación r. Por tanto. las transacciones de actualización suponen una sobrecarga mayor. Sin embargo. Por tanto. se guardará una copia de la misma en dos o mas emplazamientos. La réplica presenta un cierto número de ventajas e inconvenientes:  Disponibilidad. En el caso de que la mayor parte de los accesos a la relación r sea de lectura de la misma. se tendrá una réplica completa. ésta aún se podrá encontrar en otro emplazamiento. en un sistema bancario se puede asociar una cuanta con el emplazamiento en que se ha abierto. se podría alcanzar un alto grado de réplica. la réplica de los datos minimiza el tráfico de datos entre los emplazamientos. Por ejemplo. a pesar del fallo en un emplazamiento. en un sistema bancario en el que la información sobre las cuentas se replican en varios emplazamientos. así como el número de consultas de escritura que se llevarán a cabo. Aumento del paralelismo. en un sistema de reservas de unas líneas aéreas se puede asociar un vuelo con el punto en el que se origina. en caso contrario. En una red donde las consultas que se procesen sean mayoritariamente de lectura. en la que se guarda una copia en cada emplazamiento del sistema. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . varios emplazamientos pueden procesar en paralelo las consultas que impliquen a r. Si falla uno de los emplazamientos que contienen la relación r. Aumento de la sobrecarga en las actualizaciones. hay que asegurarse de que el saldo de una cuenta concreta coincida en todos los emplazamientos. La consecuencia es un aumento en la sobrecarga. De manera parecida.

desarrollar una fragmentación vertical (llamada partición HV). La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y. consiste en aplicar sobre una relación. La división o fragmentación horizontal trabaja sobre las tuplas.rn.BASE DE DATOS II Fragmentación de los datos. sobre los fragmentos generados. Otro enfoque distinto y relativamente nuevo. CARLOS DEL ÁNGEL MATÍAS UNIDAD II .r2. se generara una rejilla y los fragmentos formaran las celdas de esa rejilla. Fundamentalmente. se basa en los atributos de la relación para efectuar la división. en cambio. de forma directa considerando la semántica de las transacciones.. dividiendo la relación en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera. se dividirá en cierto número de fragmentos r1. inmediatamente surgen dos alternativas lógicas para llevar a cabo el proceso: la división horizontal y la división vertical. ING.. o bien.. cada celda será exactamente un fragmento vertical y un fragmento horizontal (nótese que en este caso el grado de fragmentación alcanzado es máximo. en este caso.. Dado que una relación se corresponde esencialmente con una tabla y la cuestión consiste en dividirla en fragmentos menores. se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores. de forma simultánea y no secuencial. Estos dos tipos de partición podrían considerarse los fundamentales y básicos. aplicando la partición horizontal sobre los fragmentos verticales (denominada partición VH). Estos fragmentos contendrán suficiente información como para permitir la reconstrucción de la relación original r. Sin embargo. Si la relación r está fragmentada. posteriormente. la fragmentación horizontal y la fragmentación vertical. La fragmentación vertical. y no por ello la descomposición resultará más eficiente). o aplicando primero una división horizontal para luego. existen otras alternativas.

ya que éste será un factor que influirá notablemente en el desarrollo de la ejecución de las consultas. normalmente. El grado de fragmentación puede variar desde una ausencia de la división. Reglas de corrección de la fragmentación. 1. mientras que en el caso vertical es un atributo. es una tupla. Esta propiedad extremadamente importante asegura que los datos de la relación global se proyectan sobre los fragmentos sin pérdida alguna. Dichas características se podrán formalizar en una serie de parámetros. Plenitud. fragmentar a un grado en el cada tupla o atributo forme un fragmento.. el cual debería establecerse sobre las características de las aplicaciones que hacen uso de la base de datos. se podrá establecer el grado de fragmentación del banco de datos. De acuerdo con sus valores. Rn.BASE DE DATOS II Grado de fragmentación. R2. cada elemento de datos que pueda encontrarse en R deberá poder encontrarse en uno o varios fragmentos Ri. considerando a las relaciones unidades de fragmentación. Tenga en cuenta que en el caso horizontal el elemento de datos. Ante estos dos casos extremos. ING. evidentemente se ha de buscar un compromiso intermedio. .. o bien. Si una relación R se descompone en una serie de fragmentos R1. Cuando se va a fragmentar una base de datos deberíamos sopesar qué grado de fragmentación va a alcanzar. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . las cuales asegurarán la ausencia de cambios semánticos en la base de datos durante el proceso. A continuación se enuncian las tres reglas que se han de cumplir durante el proceso de fragmentación..

Es decir.. Esta regla asegura que los fragmentos horizontales sean disjuntos.. Debe ser posible definir una operación relacional que permita reconstruir la relación R a partir de los fragmentos. Si una relación R se descompone verticalmente. Cada tupla de la relación r debe pertenecer al menos a uno de los fragmentos. rn. Esta regla asegura la mínima redundancia de los datos. Rn. U rn La relación cuenta se puede dividir en n fragmentos diferentes. se utiliza un predicado Pi para construir un fragmento ri de la manera siguiente: ri = σPi(r) Se puede obtener la reconstrucción de la relación r tomando la unión de todos los fragmentos. entonces sólo habrá dos fragmentos diferentes: cuenta1 = σnombre-sucursal=”Guadarrama” (cuenta) cuenta2 = σnombre-sucursal=”Cercedilla” (cuenta) Los dos fragmentos se muestran a continuación: ING. entonces no se encuentra en otro fragmento Rk (k<> j). donde las claves primarias deben repetirse para permitir la reconstrucción. Fragmentación horizontal Tomemos como ejemplo la siguiente relación cuenta: La relación r se divide en cierto número de subconjuntos r1. La fragmentación vertical es una excepción a esta regla. Si una relación R se descompone horizontalmente en una serie de fragmentos R1.BASE DE DATOS II 2. cada uno de los cuales consiste en tuplas de cuentas que pertenecen a una sucursal concreta. . Disyunción. Esta regla asegura que se preserven las dependencias funcionales.. R2. Si el sistema bancario sólo tiene dos sucursales (Guadarrama y Cercedilla). CARLOS DEL ÁNGEL MATÍAS UNIDAD II . Un fragmento puede definirse como una selección de la relación global r. es decir: r = r1 U r2 U . 3. sus atributos primarios clave normalmente se repiten en todos sus fragmentos. de modo que se pueda reconstruir la relación original si fuera necesario.. y un elemento de datos di se encuentra en algún fragmento Rj... Reconstrucción. r2.

.BASE DE DATOS II Fragmentación vertical La fragmentación vertical de r(R) implica la definición de varios subconjuntos de atributos R1. rn Un modo de asegurar que la relación r pueda reconstruirse es incluir los atributos de la clave primaria de R en cada uno de los Ri... al esquema R. La dirección física o lógica de una tupla puede utilizarse como id-tupla. El atributo id-tupla es. El valor de id-tupla de una tupla es único. puede utilizarse cualquier superclave. por tanto. Para ilustrar la fragmentación vertical se considerará relación depósito: ING. y se utiliza para distinguir esa tupla de las demás. R2.. denominado id-tupla. CARLOS DEL ÁNGEL MATÍAS UNIDAD II ... U Rn Cada fragmento ri de r queda definido por ri = ΠRi(r) La fragmentación debe hacerse de modo que se pueda reconstruir la relación r a partir de los fragmentos tomando la reunión natural: r = r1 r2 r3 . Rn del esquema R tales que R = R1 U R2 U . De manera más general. un candidato a clave del esquema ampliado. . dado que cada tupla tiene una dirección única. A menudo resulta conveniente añadir un atributo especial. y se incluye en cada uno de los Ri..

. rn. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . Cada fragmento se obtiene como resultado de la aplicación del esquema de ING. Aunque el atributo id-tupla facilite la aplicación de la división vertical. no debe ser visible para los usuarios. nombre-cliente. . El atributo de reunión es id-tupla. r2. dado que es un mecanismo interno de la aplicación y viola la independencia de los datos. id-tupla) Esquema-depósito-2 = (número-cuenta. Fragmentación mixta La relación r se divide en una serie de relaciones fragmentarias r1. saldo.. id-tupla) Estas dos relaciones resultan de procesar: depósito1 = σEsquema-depósito-1(depósito) depósito2 = σEsquema-depósito-2(depósito) Para reconstruir la relación depósito original a partir de los fragmentos hay que procesar: σEsquema-depósito(depósito1 depósito2) La expresión depósito1 >< depósito2 es una forma especial de reunión natural.BASE DE DATOS II Α continuación se muestra una fragmentación vertical para la relación depósito: Esquema-depósito-1 = (nombre-sucursal. que es una de las virtudes principales del modelo relacional..

la base de datos puede estar temporalmente en un estado inconsistente. por ejemplo. . Una transacción es una colección de acciones que hacen transformaciones consistentes de los estados de un sistema preservando la consistencia del sistema. Ahora se puede volver a dividir el fragmento depósito1 utilizando el esquema de fragmentación horizontal en los dos fragmentos siguientes: depósito1a = σnombre-sucursal=”Guadarrama” (depósito1) depósito1b = σnombre-sucursal=”Cercedilla” (depósito1) Por tanto.. guardar una copia de depósito1a en los emplazamientos E1. la relación r queda dividida en tres fragmentos: depósito1a. etc. considérese un sistema distribuido que consista en los emplazamientos E1. Es decir. Esta relación se divide en un principio en los fragmentos depósito1 y depósito2. 2. Los cambios de estado ocurren debido a actualizaciones.. o a un fragmento de r obtenido con anterioridad. depósito1b y depósito2. y supresiones de información. E10. ING. El punto importante aquí es asegurar que la base de datos regresa a un estado consistente al fin de la ejecución de una transacción. Por ejemplo.. depósito1b y depósito2.BASE DE DATOS II fragmentación horizontal o vertical a la relación r. El concepto de una transacción es usado dentro del dominio de la base de datos como una unidad básica de cómputo consistente y confiable. se quiere asegurar que la base de datos nunca entra en un estado de inconsistencia. Las técnicas descritas anteriormente para la réplica y fragmentación de datos pueden aplicarse de manera sucesiva a la misma relación. y. Sin embargo. Réplica y fragmentación de datos. E8 y E9. las réplicas de los fragmentos se pueden volver a fragmentar. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . Cada uno de los fragmentos puede residir en un emplazamiento diferente. Supongamos la relación depósito vista anteriormente. E3 y E7.3 TRANSACCIONES DISTRIBUIDAS El concepto fundamental aquí es la noción de "ejecución consistente" o "procesamiento confiable" asociada con el concepto de una consulta. Una base de datos está en un estado consistente si obedece todas las restricciones de integridad definidas sobre ella. durante la ejecución de una transacción. E2. Se puede fragmentar depósito en depósito1a. Por supuesto. inserciones. se puede replicar un fragmento. tal y como se definieron anteriormente. una copia de depósito1b en los emplazamientos E7 y E10 y una copia de depósito2 en los emplazamientos E2.

aun en la presencia de fallas. sus resultados parciales deben UNIDAD II ING. La unión de ambos conjuntos se le conoce como el conjunto base de la transacción (BS = RS U WS). Si la transacción se detiene sin terminar su tarea. Si una transacción termina de manera exitosa se dice que la transacción hace un commit (se usará el término en inglés cuando no exista un término en español que refleje con brevedad el sentido del término en inglés). Las propiedades de una transacción son las siguientes:  Atomicidad. aún no se ha dado ninguna justificación para afirmar que las transacciones son unidades de procesamiento consistentes y confiables. Caracterización de transacciones Los elementos de datos que lee una transacción se dice que constituyen el conjunto de lectura (RS). los elementos de datos que una transacción escribe se les denomina el conjunto de escritura (WS). Propiedades de las transacciones La discusión en la sección previa clarifica el concepto de transacción. A esta operación también se le conoce como rollback. La atomicidad requiere que si una transacción se interrumpe por una falla. Sin embargo.BASE DE DATOS II Lo que se persigue con el manejo de transacciones es por un lado tener una transparencia adecuada de las acciones concurrentes a una base de datos y por otro lado tener una transparencia adecuada en el manejo de las fallas que se pueden presentar en una base de datos. o todas las acciones de la transacción se realizan o ninguna de ellas se lleva a cabo. su ejecución es detenida y todas sus acciones ejecutadas hasta el momento son deshechas (undone) regresando a la base de datos al estado antes de su ejecución. Se refiere al hecho de que una transacción se trata como una unidad de operación. se dice que la transacción aborta. Similarmente. Por lo tanto. Condiciones de terminación de una transacción Una transacción siempre termina. CARLOS DEL ÁNGEL MATÍAS . Note que los conjuntos de lectura y escritura no tienen que ser necesariamente disjuntos. Cuando la transacción es abortada.

sus resultados son permanentes y no pueden ser borrados de la base de datos. la única forma de deshacer los efectos de una transacción con commit es mediante otra transacción. dado que los resultados de una transacción que realiza un commit son durables. Es la propiedad de las transacciones que asegura que una vez que una transacción hace su commit. Durabilidad. Esta propiedad motiva el aspecto de recuperación de bases de datos. Aun cuando los problemas fundamentales son los mismos para las diferentes clases. En primer lugar. Aislamiento. Las transacciones que operan en datos distribuidos se les conoce como transacciones distribuidas.   En resumen. En otras palabras. las transacciones proporcionan una ejecución atómica y confiable en presencia de fallas. los algoritmos y técnicas que se usan para tratarlas pueden ser considerablemente diferentes. Finalmente. las transacciones no violan las restricciones de integridad de una base de datos. A este tipo de transacciones se les conoce como transacciones compensatorias. el cual trata sobre cómo recuperar la base de datos a un estado consistente en donde todas las acciones que han hecho un commit queden reflejadas. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . las transacciones se pueden ejecutar en aplicaciones no distribuidas. los DBMS aseguran que los resultados de una transacción sobrevivirán a fallas del sistema. una ejecución correcta en presencia de accesos de usuario múltiples y un manejo correcto de réplicas (en el caso de que se soporten).BASE DE DATOS II ser deshechos. La consistencia de una transacción es simplemente su correctitud.  Consistencia. ING. Tipos de Transacciones Las transacciones pueden pertenecer a varias clases. Las transacciones pueden ser agrupadas a lo largo de las siguientes dimensiones:  Áreas de aplicación. Más aún. sobrecarga del sistema o interbloqueos se le llama recuperación de transacciones. Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de su commit. La actividad referente a preservar la atomicidad de transacciones en presencia de abortos debido a errores de entrada. en ambientes heterogéneos se presentan transacciones heterogéneas sobre los datos. una transacción es un programa correcto que lleva la base de datos de un estado consistente a otro con la misma característica. si varias transacciones se ejecutan concurrentemente. Por lo tanto. Debido a esto. Por otro lado. los resultados deben ser los mismos que si ellas se hubieran ejecutado de manera secuencial (seriabilidad). La actividad de asegurar la atomicidad en presencia de caídas del sistema se le llama recuperación de caídas.

Protocolos de confiabilidad.    ING. Los algoritmos de control de concurrencia deben sincronizar la ejecución de transacciones concurrentes bajo el criterio de correctitud. En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Las transacciones en línea se caracterizan por tiempos de respuesta muy cortos y por accesar un porción relativamente pequeña de la base de datos. La consistencia entre transacciones se garantiza mediante el aislamiento de las mismas. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . Protocolos de control de réplicas. Algoritmos de control de concurrencia. Estructura. Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un commit.  Aspectos relacionados al procesamiento de transacciones Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones:   Modelo de estructura de transacciones. Considerando la estructura que puede tener una transacción se examinan dos aspectos: si una transacción puede contener a su vez subtransacciones o el orden de las acciones de lectura y escritura dentro de una transacción. las transacciones pueden ser de tipo batch o en línea. Por otro lado. Consistencia de la base de datos interna. El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. se requieren protocolos para la recuperación local y para efectuar los compromisos (commit) globales. Tomando en cuenta el tiempo que transcurre desde que se inicia una transacción hasta que se realiza un commit o se aborta. Así también.BASE DE DATOS II  Tiempo de duración. las transacciones de tipo batch toman tiempos relativamente largos y accesan grandes porciones de la base de datos. Es importante considerar si las transacciones son planas o pueden estar anidadas. Estas se pueden diferencias también como transacciones de corta y larga vida. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).

Abort. Los administradores de transacciones implementan una interfaz para los programas de aplicación que consiste de los comandos:      Begin_transaction. Read. el administrador de transacciones es responsable de coordinar la ejecución en la base de datos de las operaciones que realiza una aplicación. ING. por otra parte. Fig. Como se puede apreciar en la Figura. En la Figura 2 presenta la arquitectura requerida para la ejecución centralizada de transacciones. 1 Un modelo del administrador de transacciones. es responsable de implementar un algoritmo específico de control de concurrencia para sincronizar los accesos a la base de datos. Las modificaciones requeridas en la arquitectura para una ejecución distribuida se pueden apreciar en las Figura 3 En esta última figura se presentan también los protocolos de comunicación necesarios para el manejo de transacciones distribuidas. El despachador. Commit.BASE DE DATOS II Incorporación del manejador de transacciones a la arquitectura de un SMBD El monitor de ejecución distribuida consiste de dos módulos: El administrador de transacciones (TM) y el despachador (SC). CARLOS DEL ÁNGEL MATÍAS UNIDAD II . Un tercer componente que participa en el manejo de transacciones distribuidas es el administrador de recuperación local cuya función es implementar procedimientos locales que le permitan a una base de datos local recuperarse a un estado consistente después de una falla. Write.

En una transacción anidada. a su vez cada subtransacción puede abrir otras en niveles más bajos de anidamiento.BASE DE DATOS II Fig. la transacción de mayor nivel puede abrir subtransacciones y. ING. el cliente hace requerimientos a más de un servidor. El cliente de la transacción plana espera completar todos sus requerimientos antes de pasar a la Próxima. 2 Ejecución centralizada de transacciones. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . 3 Ejecución distribuida de transacciones. Fig. Transacciones distribuidas planas y anidadas En una transacción plana. Cada transacción accede a los objetos en los servidores secuencialmente.

en parte. Ocultando los detalles de bajo nivel acerca de la localización física de datos. Incluso una consulta sencilla acarrea un número de posibles estrategias grande. Particularmente.BASE DE DATOS II 2. a la disponibilidad de lenguajes no procedurales los cuales pueden mejorar significativamente el desarrollo de aplicaciones y la productividad del usuario final. Similitudes y Diferencias entre un SGBDD y el Procesamiento Distribuido. ING. el beneficio de la ejecución en varias localidades. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . el usuario no tiene que especificar de manera precisa el procedimiento que se debe seguir. los lenguajes de bases de datos relacionales permiten la expresión de consultas complejas en una forma concisa y simple.4 PROCESAMIENTO DISTRIBUIDO DE CONSULTAS Procesamiento de Consultas Concepto: El éxito creciente de la tecnología de bases de datos relacionales en el procesamiento de datos se debe. Existen varios medios para calcular la respuesta a una consulta. La elección de una estrategia puede ser una tarea tan compleja como hacer una consulta arbitraria. Objetivos del Procesamiento de Consultas El procesamiento de consultas tiene como objetivo principal transformar una consulta escrita en un lenguaje de alto nivel (SQL)en una estrategia de ejecución correcta y eficiente expresada en un lenguaje de bajo nivel (algebra relacional) y ejecutar la estrategia para extraer los datos requeridos. Es necesario llegar a un equilibrio adecuado entre el costo relativo de la transferencia de datos en la red y la transferencia de datos entre la memoria y el disco. En sistemas distribuidos: el costo de transmisión de datos en la red. para construir la respuesta a una consulta. Este procedimiento es llevado a cabo por un módulo del DBMS llamado el procesador de consultas (query processor). las cuales pueden ser : En sistemas centralizados: el costo de una estrategia específica es el número de accesos al disco.

en el caso general. es un problema de la clase NP. Obtienen la transformación óptima. Mientras que la diferencia está en que en un SGBDD los datos están divididos en fragmentos los cuales se pueden alojar en varias computadoras. Tipo de optimización El problema de optimización de consultas es altamente demandante en tiempo de ejecución y. Podría ser un uno colocar el sistema operativo. Caracterización de los procesadores de consultas Es difícil evaluar y comparar procesadores de consultas para sistemas centralizados y distribuidos dados que ellos difieren en muchos aspectos. mientras que en un procesamiento distribuido la información está centralizada. En otro los archivos de índice. Los algoritmos de búsqueda exhaustiva tienen una complejidad combinatoria en el número de relaciones de la consulta. Archivos de registro de recuperación.BASE DE DATOS II   La similitud consiste en que el acceso a los datos se lo hace mediante una conexión a red. ¿En qué circunstancias es preferible un SGBDD a un Sistema De Procesamiento Distribuido? Se debería usar un SGBDD si tenemos un sistema para varias sucursales cada una tendrá sus datos y un procesamiento distribuido lo usaríamos en una aplicación web. ya que los datos que se cargan en una página estarían en un solo disco. Así existen dos estrategias para su solución: búsqueda exhaustiva o el uso de heurísticas. pero sólo se aplican a consultas simples dado su tiempo de ejecución. En esta sección se enumeran algunas características importantes de los procesadores de consultas que pueden ser usados como base para su comparación. ¿Cuáles son las faces típicas del procesamiento de consultas? Descomposición (Análisis sintáctico y validación) ¿Cuáles son las etapas típicas de la descomposición de consultas?      Análisis Normalización Análisis semántico Simplificación Reestructuración de la consulta Reglas heurísticas que deberían aplicarse para mejorar el procesamiento de una consulta. los ING. En otro disco los archivos base o principales de la base de datos. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . Por otro lado.

se requiere tener estadísticas acerca del tamaño de los resultados intermedios para aplicar esta estrategia. Durante la optimización de consultas dinámica la elección de la mejor operación siguiente se puede hacer basada en el conocimiento exacto de los resultados de las operaciones anteriores. pero se puede aplicar un enfoque dinámico cuando los tamaños de las relaciones estimados están alejados de los tamaños actuales. Sin embargo. reemplazar una junta por una serie de semijuntas y reordenar operaciones para reducir el tamaño de las relaciones intermedias. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . La optimización se puede realizar de manera estática antes de ejecutar la consulta o de forma dinámica durante la ejecución de la consulta. el costo de la optimización puede ser amortizada sobre múltiples ejecuciones de la misma consulta. Por tanto. En el segundo caso puede obtener transformaciones eficientes si las consultas son similares. Estadísticas La efectividad de una optimización recae en las estadísticas de la base de datos. utiliza básicamente un enfoque estático. Así. estadísticas más detalladas tales como histogramas de valores de atributos se usan pagando un costo mayor por su manejo. Granularidad de la optimización Existen dos alternativas: considerar sólo una consulta a la vez o tratar de optimizar múltiples consultas. el espacio de decisión es mucho más amplio lo que afecta grandemente el tiempo de ejecución de la optimización. En bases de datos distribuidas las estadísticas para optimización de consultas típicamente se relacionan a los fragmentos. La optimización estática es aún más demandante ya que el tamaño de las relaciones intermedias también debe ser estimado basándose en estadísticas. aplicar primero las operaciones de selección y proyección. Tiempo de optimización Una consulta puede ser optimizada en tiempos diferentes con relación a tiempo de ejecución de la consulta. La optimización dinámica de consultas requiere de estadísticas para elegir las operaciones que deben realizarse primero. la cardinalidad y el tamaño de los fragmentos son importantes así como el número de valores diferentes de los atributos. Las heurísticas más directas a aplicar son el agrupamiento de expresiones comunes para evitar el cálculo repetido de las mismas. Un tercer enfoque. La optimización estática se hace en tiempo de compilación de la consulta. ING. Para minimizar la probabilidad de error. La primera alternativa no considera el uso de resultados comunes intermedios. conocido como híbrido.BASE DE DATOS II algoritmos heurísticos obtienen solo aproximaciones a la transformación óptima pero lo hacen en un tiempo de ejecución razonable.

La optimización estática es aún más demandante ya que el tamaño de las relaciones intermedias también debe ser estimado basándose en estadísticas. Para minimizar la probabilidad de error. Durante la optimización de consultas dinámica la elección de la mejor operación siguiente se puede hacer basada en el conocimiento exacto de los resultados de las operaciones anteriores.BASE DE DATOS II Granularidad de la optimización Existen dos alternativas: considerar sólo una consulta a la vez o tratar de optimizar múltiples consultas. la cardinalidad y el tamaño de los fragmentos son importantes así como el número de valores diferentes de los atributos. siendo cada uno esencialmente autónomo. Tiempo de optimización Una consulta puede ser optimizada en tiempos diferentes con relación a tiempo de ejecución de la consulta. Sin embargo. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . el costo de la optimización puede ser amortizada sobre múltiples ejecuciones de la misma consulta. Estadísticas La efectividad de una optimización recae en las estadísticas de la base de datos. La optimización estática se hace en tiempo de compilación de la consulta. estadísticas más detalladas tales como histogramas de valores de atributos se usan pagando un costo mayor por su manejo. pero se puede aplicar un enfoque dinámico cuando los tamaños de las relaciones estimados están alejados de los tamaños actuales. el espacio de decisión es mucho más amplio lo que afecta grandemente el tiempo de ejecución de la optimización. ING. se requiere tener estadísticas acerca del tamaño de los resultados intermedios para aplicar esta estrategia. Así. La optimización se puede realizar de manera estática antes de ejecutar la consulta o de forma dinámica durante la ejecución de la consulta. conocido como híbrido. En bases de datos distribuidas las estadísticas para optimización de consultas típicamente se relacionan a los fragmentos.5 BASE DE DATOS DISTRIBUIDAS HETEROGÉNEAS Las BDs Heterogéneas o Multibase de Datos son aquellas donde Sitios diferentes utilizan diferentes DBMSs. Es posible que algunos sitios no sean conscientes de la existencia de los demás y quizás proporcionen facilidades limitadas para la cooperación en el procesamiento de transacciones. En el segundo caso puede obtener transformaciones eficientes si las consultas son similares. Por tanto. 2. La optimización dinámica de consultas requiere de estadísticas para elegir las operaciones que deben realizarse primero. Un tercer enfoque. La primera alternativa no considera el uso de resultados comunes intermedios. utiliza básicamente un enfoque estático.

Puede que algunos sitios no tengan información de la existencia del resto y que sólo proporcionen facilidades limitadas para la cooperación en el procesamiento de las transacciones.BASE DE DATOS II En las bases de datos distribuidas heterogéneas puede que los diferentes sitios utilicen esquemas y software de gestión de sistemas de bases de datos diferentes. La heterogeneidad se debe a que los datos de cada BD son de diferentes tipos o formatos. Es una tecnología reciente y aún existen pocas en el mercado. El enfoque heterogéneo es más complejo que el enfoque homogéneo y favorece el enfoque ascendente. ING. CARLOS DEL ÁNGEL MATÍAS UNIDAD II .

ING. BD Investigadores han enfocado sus esfuerzos en la exploración de un esquema global que trate de resolver los problemas de la Heterogeneidad. La Heterogeneidad de las BD es inevitable cuando diferentes tipos de coexisten en una organización que trata de compartir datos entre éstas. y que difieran en sus mecanismos de control de concurrencia y de administración de las transacciones. éstas pueden procesar transacciones locales (aquellas que se realizan sobre esa localidad). cada una de las cuales mantiene un SBD local. Puede que los sistemas locales de bases de datos empleen modelos lógicos y lenguajes de definición y de tratamiento de datos diferentes. la definición de Protocolos Ínter operables y la integración de las BD. ¿Qué es la Interoperabilidad entre las BD? Es el acceso a varias BD con SMBD similares o diferentes Las Bases de Datos Distribuidas Heterogéneas se componen de un conjunto de localidades. Esta capa de software se denomina sistema de bases de datos múltiples. Ejemplo: El tratamiento de la información ubicada en bases de datos distribuidas heterogéneas exige una capa de software adicional por encima de los sistemas de bases de datos ya existentes. CARLOS DEL ÁNGEL MATÍAS UNIDAD II .BASE DE DATOS II Hoy en día existe la tendencia a crear software que permita tener acceso a diversas bases de datos autónomas preexistentes almacenadas en SGBD heterogéneos.

En ese caso es importante que el sistema de bases de datos múltiples permita que los sistemas de bases de datos locales conserven un elevado grado de autonomía para la base de datos local y para las transacciones que se ejecuten con esos datos. porque los sistemas de bases de datos ya existentes pertenezcan a diferentes empresas u organizaciones. La integración completa de sistemas heterogéneos en una misma base de datos distribuida homogénea suele resultar difícil o imposible: Dificultades técnicas. hay que utilizar un modelo de datos común. CARLOS DEL ÁNGEL MATÍAS UNIDAD II . La inversión en los programas de aplicaciones basados en los sistemas de bases de datos ya existentes puede ser enorme. puede que no lo sea políticamente. Una opción adoptada can frecuencia es el modelo relacional. mientras que otros pueden emplear modelos de datos más antiguos. can SQL como lenguaje común de consulta. ING. Vista unificada de los datos Cada sistema local de administración de bases de datos puede utilizar un modelo de datos diferente. y el coste de transformar esas aplicaciones puede resultar prohibitivo.BASE DE DATOS II Los sistemas de bases de datos múltiples crean la ilusión de la integración lógica de las bases de datos sin necesidad de su integración física. como el de red o el jerárquico. Aunque la integración resulte técnicamente posible. Dado que se supone que los sistemas con bases de datos múltiples ofrecen la ilusión de un solo sistema de bases de datos integrado. Por ejemplo: puede que algunos empleen el modelo relacional. Dificultades organizativas.