BASES DE DATOS II ESCUELA ACADMICO PROFESIONAL DE INFORMTICA UNIVERSIDAD NACIONAL DE TRUJILLO Trujillo Per 2006
Resumen. El presente documento plasma temas relevantes con respecto a las Bases de Datos distribuidas, empezando por su definicin y explicando las caractersticas que las hacen particulares. A la vez, se hace un pequeo paralelo entre las BDD y las BDC. Adems se da a conocer la arquitectura de las BDD, donde se pone en manifiesto cierta similitud con la de las BDC, as como la arquitectura de su correspondiente SGBD, que en este caso se le denomina SGBDD. Finalmente se toma como tpico el las consultas en las BDD, donde existe un tratamiento especial.
1. INTRODUCCIN
Al observar la evolucin de la tecnologa en cuanto al campo de las Redes, y todo proceso que indique la participacin de ms de un ordenador, surge para el campo de las Bases de Datos, la necesidad de crear una manera de cmo con el uso de una red, desempearse desarrollando las funciones que comnmente las hara de manera centralizada.
Para dicho objetivo surgen las Bases de Datos Distribuidas (BDD). El nacimiento de las BDD, se debe a la vez, que originalmente se pens en almacenar informacin de manera centralizada utilizando un conjunto de herramientas que facilitaran este tipo de almacenamiento. Pero con el paso del tiempo esto produjo ciertos inconvenientes que no eran posibles solucionar y mucho menos poder subsanarlos con tan solo la informacin almacenada en un solo lugar.
Una BDD, permitir que ya no un usuario, sino un nmero muy alto de usuarios accedan a la informacin, de una manera ordenada, consistente y coherente. Este tipo de BD, permiten que los datos queden repartidos en ms de un ordenador, lo cual es lo ms interesante ya que surge la necesidad de obtener un programa que maneje todas estas partes de la BDD, como si fuese una sola, y le den al usuario la impresin de cmo si l tuviese una BD centralizada. A este programa se le conoce como el Sistema Manejador de BDD.
Todas estas innovaciones hacen que el rea de los Sistemas Distribuidos de Informacin, en la cual las soluciones estn integrando tecnologas con nuevas arquitecturas o formas de hacer las cosas es, sin lugar a dudas, un campo muy estudiado. Un caso especfico de estos sistemas y que el campo de las Bases de Datos toca muy a fondo, es lo que hemos mencionado, las Bases de Datos Distribuidas.
2. DEFINICIN DE BASE DE DATOS DISTRIBUIDA
Una Base de Datos Distribuida (BDD) es un conjunto de mltiples bases de datos lgicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones, los cuales tienen la capacidad de procesamiento autnomo lo cual indica que puede realizar operaciones locales o distribuidas. [Segn 1]
2 Es una coleccin de datos que se encuentran distribuidos en varios sitios y que estn interconectados por una red de comunicaciones, donde cada sitio tiene capacidad de procesamiento autnomo de transacciones y puede hacer procesos locales. Y adems, cada sitio realiza la ejecucin de al menos una transaccin global, la cual requiere accesos a datos en diversos sitios. [Segn 2]
Coleccin de mltiples Bases de Datos interrelacionadas lgicamente y distribuidas sobre una red de computador. Donde los datos residen en varias localidades y las relaciones pueden estar fragmentadas y/o replicadas. Y cada localidad tiene un sistema de B. de D. local, puede procesar transacciones locales y participar en transacciones globales.
Un Base de Datos Distribuida es en realidad un tipo de base de datos virtual cuyas partes componentes estn almacenadas en varias bases de datos reales distintas que se encuentran en varias sitios distintos (de hecho, es la unin lgica de esas bases de datos reales). La figura 2.1 muestra un ejemplo de la aplicacin de la BDD: [Segn 4]
Red de comunicacin Nueva York Londres Los Angeles San Francisco
Figura 2.1. Un sistema de SBDD tpico, muestra como la BDD funciona interconectndose.
3. DEFINICIN DE SISTEMA MANEJADOR DE BASE DE DATOS DISTRIBUIDA
El Sistema Manejador de Base de Datos Distribuida maneja la BD distribuida y hace transparente esa distribucin al usuario. El cual no es un sistema multiproceso. [Segn 3]
Un Sistema de manejo de bases de datos distribuidas (SMBDD) es aquel que se encarga del manejo de la BDD y proporciona un mecanismo de acceso que hace que la distribucin sea transparente a los usuarios. El trmino transparente significa que la aplicacin trabajara, desde un punto de vista lgico, como si un solo SMBD ejecutado en una sola mquina, administrara esos datos. [Segn 5]
Un Sistema de administracin de base de datos distribuida, DDBMS, por sus siglas en ingls Distributed Database Management System, en una base de datos distribuida, es el conjunto de transacciones y administradores de base de datos distribuidos en todas las computadoras. [Segn 6]
Un Sistema de Gestin de Bases de Datos Distribuidas (SGBDD) es un sistema compuesto de varios sistemas de bases de datos distribuidas operando en sitios locales que estn conectados por facilidades de manejo de mensajes. El diccionario del daros del SGBB incluye informacin usual necesaria para la 3 gestin de los datos junto con la informacin concerniente a cada localidad, a la duplicacin y fragmentacin de los datos en varias relaciones. [Segn 7]
El sistema de base de datos distribuid puede ser considerado una sociedad entre los SMBDs locales en cada uno de los sitios locales; un nuevo componente de software en cada sitio de manera lgica, una extensin del SMBD local- proporciona la funcionalidad de sociedad necesaria y es la combinacin de este nuevo componente y el DBMS existente, lo que constituye lo que generalmente llamamos Sistema de Administracin de Base de Datos Distribuida (SABDD) [Segn 4]
4. CARACTERSTICAS DE UNA BASE DE DATOS DISTRIBUIDA
Para poder describir las caractersticas, en necesario conocer el siguiente principio fundamental de las bases de datos distribuidas.
Ante el usuario, un sistema debe lucir exactamente igual que un sistema que no es distribuido.
En otras palabras, los usuarios de un sistema distribuido deben ser capaces de comportarse exactamente igual como si el sistema no fuera distribuido. Todos los problemas de los sistemas distribuidos son, o deberan ser, problemas internos o en el nivel de implementacin y no externos o en nivel usuario. [Segn 4]
Autonoma Local
Los sitios distribuido deben ser autnomos, es decir que todas las operaciones en un sitio dado se controlan en ese sitio. [Segn 1]
Los sitios de un sistema distribuido deben ser autnomos. La autonoma local significa que todas las operaciones en un sitio dado se controlan en ese sitio; ningn sitio X deber depender de algn otro sitio Y para su buen funcionamiento (pues de otra manera el sitio X podra ser incapaz de trabajar, aunque no tenga en s problema alguno, si se cae el sitio Y). La autonoma local implica tambin un propietario y una administracin locales de los datos, con responsabilidad local: todos los datos pertenecen en realidad a una base de datos local, aunque sean accesibles desde algn sitio remoto. Por tanto, las cuestiones de seguridad, integridad y representacin en almacenamiento de los datos locales permanecen bajo el control de la instalacin local.
El objetivo de la autonoma local es imposible de lograr por completo, ya que existen situaciones en las cuales un sitio dado X debe ceder un cierto grado de control a otro sitio Y. As pues, sera ms correcto expresar el objetivo de la autonoma de esta manera: los sitios deber ser autnomos hasta donde sea posible. [Segn 4]
No dependencia de un sitio central
No debe de haber dependencia de un sitio central para obtener un servicio. [Segn 1]
La autonoma local implica que todos los sitios deben tratarse igual; no debe haber dependencia de un sitio central maestro para obtener un servicio central, como por ejemplo un procesamiento centralizado de las consultas o una administracin centralizada de las transacciones, de modo que todo el sistema dependa de ese sitio central. Este segundo objetivo es por tanto un corolario del primero (si se logra el primero, se lograr por fuerza el segundo). Pero la no dependencia de un sitio central es deseable por s misma, aun si no se logra la autonoma local completa. Por ello vale la pena expresarlo como un objetivo separado.
La dependencia de un sitio central sera indeseable al menos por las siguientes razones: 4 - Ese sitio central podra ser un cuello de botella. - El sistema sera vulnerable; si el sitio central sufriera un desperfecto, todo el sistema dejara de funcionar. [Segn 4]
Operacin Continua Nunca debera apagarse para que se pueda realizar alguna funcin, como aadir un nuevo sitio o alguna operacin requerida. [Segn 1]
En un sistema distribuido, lo mismo que en uno no distribuido, idealmente nunca debera haber necesidad de apagar a propsito el sistema. Es decir, el sistema nunca debera necesitar apagarse para que se pueda realizar alguna funcin, como aadir un nuevo sitio o instalar una nueva versin del DBMS en un sitio ya existente. [Segn 4]
Independencia con respecto a la localizacin
No debe de ser necesario que los usuarios sepan dnde estn almacenados fsicamente los datos, sino que ms el usuario lo debe de ver como si solo existiera un sitio local. [Segn 1]
La idea bsica de la independencia con respecto a la localizacin (tambin conocida como transparencia de localizacin) es simple: no debe ser necesario que los usuarios sepan dnde estn almacenados fsicamente los datos, sino que ms bien deben poder comportarse (al menos desde un punto de vista lgico) como si todos los datos estuvieran almacenados en su propio sitio local. La independencia con respecto a la localizacin es deseable porque simplifica los programas de los usuarios y sus actividades terminales. En particular, hace posible la migracin de datos de un sitio a otro sin anular la validez de ninguno de esos programas o actividades. Esta posibilidad de migracin es deseable porque permite modificar la distribucin de los datos dentro de la red en respuesta a cambios en los requerimientos.
En realidad, esta independencia puede considerarse como una extensin de la independencia de los datos. [Segn 4]
Independencia con respecto a la fragmentacin
La fragmentacin es deseable por razones de desempeo, los datos, pueden almacenarse en la localidad donde se utilizan con mayor frecuencia de manera que la mayor parte de las operaciones sean slo locales y se reduzca el trfico en la red. [Segn 1]
Un sistema maneja fragmentacin de los datos si es posible dividir una relacin en partes o fragmentos para propsitos de almacenamiento fsico. La fragmentacin es deseable por razones de desempeo: los datos pueden almacenarse en la localidad donde se utilizan con mayor frecuencia, de manera que la mayor parte de las operaciones sea slo locales y se reduzca el trfico en la red. Por ejemplo, una relacin Empleados podra fragmentase de manera que los registros de los empleados de Ciudad Real se almacenen en el emplazamiento de Ciudad Real, mientras que los empleados de Valdepeas se almacenan en el emplazamiento de Valdepeas:
Figura 4.1. Representacin de las tablas en el caso de la Independencia en la fragmentacin 5
Existen en esencia dos clases de fragmentacin (aunque veremos que hay ms), horizontal y vertical, correspondientes a las operaciones relacionales de restriccin y proyeccin respectivamente. En trminos ms generales, un fragmento puede ser cualquier subrelacin arbitraria que pueda derivarse de la relacin original mediante operaciones de restriccin y proyeccin (excepto que, en el caso de la proyeccin, es obvio que las proyecciones deben conservar la clave primaria de la relacin original). La reconstruccin de la relacin original a partir de los fragmentos se hace mediante operaciones de reunin y unin apropiadas (reunin en el caso de los fragmentos verticales, unin en el de los horizontales). La facilidad de la fragmentacin y de la reconstruccin es una de las muchas razones por las cuales los sistemas distribuidos son relacionales; el modelo relacional ofrece las operaciones precisas requeridas para estas tareas.
Ahora llegamos al punto principal: un sistema que maneja la fragmentacin de los datos deber ofrecer tambin una independencia con respecto a la fragmentacin (transparencia de fragmentacin); es decir, los usuarios debern poder comportarse (al menos desde el punto de vista lgico) como si los datos no estuvieran fragmentados en realidad. La independencia con respecto a la fragmentacin (al igual que la independencia con respecto a la localizacin (es deseable porque simplifica los programas de los usuarios y sus actividades terminales. En particular, hace posible refragmentar los datos (y redistribuir los fragmentos) en cualquier momento en respuesta a cambios en los requerimientos de desempeo sin anular la validez de esos programas o actividades.
La independencia con respecto a la fragmentacin implica que se presentar a los usuarios una vista de los datos en la cual los fragmentos estn combinados lgicamente mediante las reuniones y uniones apropiadas. Corresponde al optimizador del sistema determinar a cules fragmentos fsicos es necesario tener acceso para satisfacer cualquier solicitud dada de un usuario. [Segn 4]
Independencia de rplica
Si una relacin dada (es decir, un fragmento dado de una relacin) se puede presentar en el nivel fsico mediante varias copias almacenadas o rplicas, en muchos sitios distintos. [Segn 1]
Un sistema maneja rplica de datos si una relacin dada (o, en trminos ms generales, un fragmento dado de una relacin) se puede representar en el nivel fsico mediante varias copias almacenadas o rplicas, en muchos sitios distintos. La rplica es deseable al menos por dos razones: en primer lugar, puede producir un mejor desempeo (las aplicaciones pueden operar sobre copias locales en vez de tener que comunicarse con sitios remotos); en segundo lugar, tambin puede significar una mejor disponibilidad (un objeto estar disponible para su procesamiento mientras est disponible por lo menos una copia, al menos para propsitos de recuperacin). La desventaja principal de las rplicas es que cuando se actualiza un cierto objeto copiado, deben actualizarse todas las rplicas de ese objeto: el problema de la propagacin de actualizaciones. La rplica, como la fragmentacin, debe ser transparente para el usuario. En otras palabras, un sistema que maneja la rplica de los datos deber ofrecer tambin una independencia de rplica (transparencia de rplica); es decir, los usuarios debern poder comportarse (al menos desde un punto de vista lgico) como si slo existiera una copia de los datos. La independencia de rplica (como la independencia con respecto a la localizacin y a la fragmentacin) es deseable porque simplifica los programas de los usuarios y sus actividades terminales. En particular, permite la creacin y eliminacin dinmicas de las rplicas en cualquier momento en respuesta a cambios en los requerimientos, sin anular la validez de los programas o actividades de los usuarios. [Segn 4]
Procesamiento Distribuido de Consultas
6 El objetivo es convertir transacciones de usuario en instrucciones para manipulacin de datos, y as reducir el trfico en la red implica que el proceso mismo de optimizacin de consultas debe ser distribuido. [Segn 1]
En este aspecto debemos mencionar dos puntos amplios:
Primero consideremos la consulta obtener los proveedores de tornillos en Valdepeas. Supongamos que el usuario est en la instalacin de Ciudad Real y los datos estn en el emplazamiento de Valdepeas. Supongamos tambin que son n los registros de proveedor que satisfacen la solicitud. Si el sistema es relacional, la consulta implicar en esencia dos mensajes: uno para transmitir la solicitud de Ciudad Real a Valdepeas, y otro para devolver el conjunto resultante de n registros de Valdepeas a Ciudad Real. Si, por otro lado, el sistema no es relacional, sino de un registro a la vez, la consulta implicar en esencia 2n mensajes: n de Ciudad Real a Valdepeas solicitando el siguiente registro, y n de Valdepeas a Ciudad Real para devolver ese siguiente registro. As, el ejemplo ilustra el punto de que un sistema relacional tendr con toda probabilidad un mejor desempeo que uno no relacional (para cualquier consulta que solicite varios registros).
En segundo lugar, la optimizacin es todava ms importante en un sistema distribuido que en uno centralizado. Lo esencial es que, en una consulta como la anterior, donde estn implicados varios sitios, habr muchas maneras de trasladar los datos en la red para satisfacer la solicitud, y es crucial encontrar una estrategia eficiente, ya que de esta estrategia depende el tiempo de respuesta. Esta es otra razn ms por la cual los sistemas distribuidos son siempre relacionales (pues las solicitudes relacionales son posibles de optimizar, mientras que las de un registro a la vez no lo son). [Segn 4]
Manejo Distribuido de Transacciones
Tiene dos aspectos principales, el control de recuperacin y el control de concurrencia, cada uno de los cuales requiere un tratamiento ms amplio en el ambiente distribuido. [Segn 1]
El manejo de transacciones tiene dos aspectos principales: el control de recuperacin y el control de concurrencia, cada uno de los cuales requiere un tratamiento ms amplio en el ambiente distribuido. Para explicar ese tratamiento ms amplio es preciso introducir primero un trmino nuevo, agente. En un sistema distribuido, una sola transaccin puede implicar la ejecucin de cdigo en vario sitios (en particular, puede implicar actualizaciones en varios sitios). Por tanto, se dice que cada transaccin est compuesta de varios agentes, donde un agente es el proceso ejecutado en nombre de una transaccin dada en un determinado sitio. Y el sistema necesita saber cundo dos agentes son parte de la misma transaccin; por ejemplo, es obvio que no puede permitirse un bloqueo mutuo entre dos agentes que sean parte de la misma transaccin.
Control de recuperacin: para asegurar que una transaccin dada sea atmica (todo o nada) en el ambiente distribuido, el sistema debe asegurarse de que todos los agentes correspondientes a esa transaccin se comprometan al unsono o bien que retrocedan al unsono. Este efecto puede lograrse mediante el protocolo de compromiso en dos fases.
Control de concurrencia: esta funcin en un ambiente distribuido estar basada con toda seguridad en el bloque, como sucede en los sistemas no distribuidos. [Segn 4]
Independencia con respecto al equipo
Las instalaciones de cmputo en el mundo real, por lo regular incluyen varias mquinas diferentes y existe una verdadera necesidad de poder integrar los datos en todos esos sistemas y presentar al usuario una sola imagen del sistema. Por tanto, es conveniente poder ejecutar el mismo DBMS en diferentes 7 equipos, y adems lograr que esos diferentes equipos participen como socios iguales en un sistema distribuido. [Segn 4]
Independencia con respecto al Sistema Operativo
Este objetivo es en parte un corolario del anterior. Resulta obvia la conveniencia no slo de poder ejecutar el mismo DBMS en diferentes equipos, sino tambin de poder ejecutarlo en diferentes sistemas operativos (incluso en diferentes sistemas operativos dentro del mismo equipo) y lograr que (por ejemplo) una versin MVS y una versin UNIX y una versin PC/DOS participen todas en el mismo sistema distribuido. [Segn 4]
Independencia con respecto a la red
Es que se puede leer o escribir datos localizados en diferentes nodos de la red [Segn 1]
Si el sistema ha de poder manejar mltiples sitios diferentes, con equipo distinto y diferentes sistemas operativos, resulta obvia la conveniencia de poder manejar tambin varias redes de comunicaciones distintas. [Segn 4]
Independencia con respecto al DBMS.
Bajo este ttulo consideramos las implicaciones de relajar la suposicin de homogeneidad estricta.
Puede alegarse que esa suposicin es quiz demasiado rgida. En realidad, no se requiere sino que los DBMS en los diferentes sitios manejen todos la misma interfaz; no necesitan ser por fuerza copias del mismo sistema. Por ejemplo, si tanto Ingres como Oracle manejaran la norma oficial de SQL, podra ser posible lograr una comunicacin entre los dos en el contexto de un sistema distribuido. Dicho de otro modo, el sistema distribuido podra ser heterogneo, al menos hasta cierto grado.
Definitivamente sera deseable poder manejar la heterogeneidad. Una vez ms, en la realidad las instalaciones de cmputo no slo suelen emplear varias mquinas diferentes y varios sistemas operativos distintos, sino que tambin ejecutan diferentes DBMS; y sera agradable que todos esos DBMS distintos pudieran participar de alguna manera en un sistema distribuido. En otras palabras, el sistema distribuido ideal deber ofrecer independencia respecto al DBMS. [Segn 4]
5. DIFERENCIAS ENTRE BDD Y BDC
DISTRIBUIDAS CENTRALIZADAS Transparencia en la Distribucin: Localizacin de los datos es un aspecto adicional de independencia de datos
Independencia de Datos: Organizacin de los datos es transparente para el programador
Replicacin de Datos: copias mltiples de datos que incrementa la localidad y la disponibilidad de datos
Reduccin de redundancia: una sola copia de datos que se comparta
No hay estructuras intersitios. Uso de optimizacin global para reducir transferencia de datos
Estructuras fsicas complejas para accesos eficientes
Problemas de seguridad intrnsecos
Seguridad
[Segn 8] 8
DISTRIBUIDAS CENTRALIZADAS Se cuenta con poca experiencia en su estudio, pero eso no indica que se sigan desarrollando Su estudio es muy profundizado, y de por s es base para las BD distribuidas. Ejecucin de algunas consultas en paralelo sobre un menor volmen de datos. Las consultas dada su estructura monoltica, producen ms retardo en las consultas Crecimiento : Ms facil adecuarse al crecimiento de la Organizacin.
No se puede adecuar al crecimiento, dado que tan solo esta en un ordenador. El costo de implantacin es mucho mas elevado, como requerir ms personal por ejemplo. Los costos son mucho ms bajos, dado que la implantacin no requiere mucho personal. [Segn 3]
DISTRIBUIDAS CENTRALIZADAS Permite un distribucin en las empresas, en una manera jerrquica: divisiones, grupos, departamentos. La informacin se mantiene en un solo lugar, de donde todos deben extraerla. Existe accesibilidad de mucha facilidad, dada su reparticin en varias pequeas o medianas partes La accesibilidad muestra ciertos inconvenientes, que producen en el mayor de los casos retrasos. Son muy complejos, y requieren un estudio profundizado en el lugar donde se las va a implantar El estudio, en el caso de la implantacin puede ser somero, dada su simplicidad en relacin a una BD distribuida. [Segn 4]
6. ARQUITECTURA DE UNA BASE DE DATOS DISTRIBUIDA
La mayora de los sistemas de manejo de bases de datos disponibles actualmente estn basadas en la arquitectura ANSI-SPARC la cual divide a un sistema en tres niveles: interno, conceptual y externo.
La vista conceptual, conocida tambin como vista lgica global, representa la visin de la comunidad de usuarios de los datos en la base de datos. No toma en cuenta la forma en que las aplicaciones individuales observan los datos o como stos son almacenados. La vista conceptual est basada en el esquema conceptual y su construccin se hace en la primera fase del diseo de una base de datos.
Los usuarios, incluyendo a los programadores de aplicaciones, observan los datos a travs de un esquema externo definido a nivel externo. La vista externa proporciona una ventana a la vista conceptual lo cual permite a los usuarios observar nicamente los datos de inters y los asla de otros datos en la base de datos. Puede existir cualquier nmero de vistas externas y ellos pueden ser completamente independientes o traslaparse entre s.
El esquema conceptual se mapea a un esquema interno a nivel interno, el cual es el nivel de descripcin ms bajo de los datos en una base de datos. Este proporciona una interfaz al sistema de archivos del sistema operativo el cual es el responsable del acceso a la base de datos. El nivel interno tiene que ver con la especificacin de qu elementos sern indexados, qu tcnica de organizacin de archivos utilizar y como los datos se agrupan en el disco mediante "clusters" para mejorar su acceso. [Segn 6]
Tambin se puede enfocar la misma arquitectura pero tomando en cuenta dos tipos de niveles conceptuales: el local y el global.
9
Figura 6.1. Arquitectura de un BDD considerando un esquema global
LIS: Esquema interno local (Local internal schema) LCS: Esquema conceptual local (Local conceptual schema) GCS: Esquema conceptual global (Global conceptual schema) ES: Esquema externo (External schema) [Segn 3]
Adems se puede contar con el siguiente esquema para comprender la arquitectura.
Para manejar los aspectos de la distribucin, se deben agregar dos niveles a la arquitectura estndar ANSI/SPARC: American National Standards Institute/Standards Planning and Requirements Comitee (Instituto Nacional Americano de Normas/Comit de Planes y Requerimientos), como se muestra en la figura 6.2 [Segn 6]
Figura 6.2. Arquitectura de un BDD segn la ANSI/SPARC
Podemos tambin notar que la arquitectura puede dividirse, partiendo de la bsica ANSI/SPATC en la siguiente figura. 10
Figura 6.3. Arquitectura de un BDD segn la ANSI/SPARC con esquemas de fragmentacin
Definiendo las partes de la arquitectura:
Esquema conceptual global. El esquema conceptual global es la descripcin lgica de la base de datos completa, como si no estuviera distribuida. Este nivel corresponde al nivel conceptual de la arquitectura ANSI-SPARC y contiene definiciones de entidades, relaciones, constantes e informacin sobre seguridad e integridad. Proporciona independencia de datos fsicas desde el entorno distribuido. Los esquemas externos globales proporcionan independencia de datos lgica.
Esquemas de fragmentacin y localizacin. El esquema de fragmentacin es una descripcin de cmo los datos estn particionados lgicamente. El esquema de localizacin es una descripcin de dnde estn localizados los datos. El esquema de localizacin tiene en cuenta cualquier replicacin.
Esquemas locales. Cada SGBD local tiene su propio conjunto de esquemas. Los esquemas conceptual e interno locales corresponden a los equivalentes de la arquitectura ANSI-SPARC. [Segn 9]
7. ARQUITECTURA DE UN SISTEMA MANEJADOR DE UNA BASE DE DATOS DISTRIBUIDA
Para poder comprender la arquitectura, ser necesario mencionar conceptos previos.
Los usuarios interactan con el SGBDD ejecutando programas que se llamas transacciones. Las transacciones en tales sistemas no estn ya restringidas a un solo proceso controlado por un mdulo de software, sino que pueden invocar un conjunto de procesos cooperantes, funcionando en vario sitios y controlados por mdulos independientes de software.
Cada uno de esos procesos cooperantes en la transaccin de llama un agente. Una transaccin que requiere slo un agente se llama transaccin local. Una transaccin que requiere varios afeares se denomina transaccin global.
Un agente dado que puede slo acceder a los datos controlados por su software de gestin de datos loca. Acceder a los datos de otro sitio requiere de la cooperacin de los agentes de esos sitios. Un agente que inicia una transaccin se llama agente iniciador. El agente iniciador puede demandar la activacin de 11 agentes de otros sitios para poder acceder a los datos necesarios. Una vez que estn activados, do o ms agentes se pueden comunicar mediante intercambio de mensajes.
Cada participante en el SGBDD tpicamente ejecuta uno o ms de los siguientes mdulos de software: un administrador de transacciones (AT), un administrador de datos (AD) o un planificador. A toda esta estructura de comunicacin y de mdulos se le conoce como la arquitectura del SGBDD.
Figura 7.1. Arquitectura de un SGBDD
8. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS
El xito creciente de la tecnologa de bases de datos relacionales en el procesamiento de datos se debe, en parte, a la disponibilidad de lenguajes no procedurales los cuales pueden mejorar significativamente el desarrollo de aplicaciones y la productividad del usuario final. Ocultando los detalles de bajo nivel acerca de la localizacin fsica de datos, 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 seguir. Este procedimiento es llevado a cabo por un mdulo del DBMS llamado el procesador de consultas (query processor).
Dado que la ejecucin de consultas es un aspecto crtica en el rendimiento de un DBMS, el procesamiento de consultas ha recibido una gran atencin tanto para bases de datos centralizadas como distribuidas. Sin embargo, el procesamiento 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. En este captulo revisaremos el procesamiento de consultas para bases de datos 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, tpicamente alguna variacin del lgebra relacional. La consulta de bajo nivel implementa de hecho la estrategia de ejecucin para la consulta. La transformacin debe ser correcta y eficiente. Es correcta si la consulta de bajo nivel tiene la misma semntica que la consulta original, esto es, si ambas consultas producen el mismo resultado. El mapeo bien definido que se conoce entre el clculo relacional y el lgebra relacional hace que la correctitud de la transformacin sea fcil de verificar. Sin embargo, producir una estrategia de ejecucin eficiente es mucho ms complicado. Una consulta en el clculo relacional puede tener muchas transformaciones correctas y equivalentes en el lgebra relacional. Ya que cada estrategia de ejecucin equivalente puede conducir a consumos de 12 recursos de cmputo muy diferentes, la dificultad ms importante es seleccionar la estrategia de ejecucin que minimiza el consumo de recursos.
Optimizacin de Consultas Distribuidas
Como se estableci antes, 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.
As, 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 trabaje. 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.
Arquitectura del procesamiento de consultas
El problema de procesamiento de consultas se puede descomponer en varios sub-problemas que corresponden a diferentes niveles. En la Figura 3, se presenta un esquema por niveles genrico para el procesamiento de consultas. Para simplificar la discusin, suponga que se tiene un procesador de consultas esttico semicentralizado en donde no se tienen fragmentos replicados. Cuatro capas principales estn involucradas en mapear una consulta a una base de datos distribuida en una secuencia optimizada de operaciones locales, cada una de ellas actuando en una base de datos local.
Las cuatro capas principales son: descomposicin de consultas, localizacin de datos, optimizacin global de consultas y optimizacin local de consultas. Las primeras tres se realizan en un nodo central usando informacin global. La cuarta capa se realiza en cada nodo local.
Descomposicin de consultas
La primera capa descompone una consulta en el clculo relacional en una consulta en el lgebra relacional que opera sobre relaciones globales. Consiste de cuatro partes:
1.-Normalizacin. Involucra la manipulacin de los cuantificadores de la consulta y de los calificadores de la misma mediante la aplicacin de la prioridad de los operadores lgicos. 2.-Anlisis. Se detecta y rechazan consultas semnticamente incorrectas. 3.-Simplificacin. Elimina predicados redundantes. 4.-Reestructuracin. Mediante reglas de transformacin una consulta en el clculo relacional se transforma a una en el lgebra relacional. Se sabe que puede existir ms de una transformacin. Por tanto, el enfoque seguido usualmente es empezar con una consulta algebraica y aplicar transformaciones para mejorarla.
Localizacin de Datos. La entrada a esta capa es una consulta algebraica definida sobre relaciones distribuidas. El objetivo de esta capa es localizar los datos de la consulta usando la informacin sobre la distribucin de datos. Esta capa determina cuales fragmentos estn involucrados en la consulta y transforma la consulta distribuida en una consulta sobre fragmentos.
13 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. Para encontrar una buena transformacin se consideran las caractersticas de los fragmentos, tales como, sus cardinalidades. 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 comunicaciones incluidas sobre los fragmentos.
Optimizacin Local de Consultas. El trabajo de la ltima capa se efecta en todos los nodos con fragmentos involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local, es optimizada usando el esquema local del nodo. Hasta este momento, se pueden eligen los algoritmos para realizar las operaciones relacionales. La optimizacin local utiliza los algoritmos de sistemas centralizados. [Segn 1]
9. CONCLUSIONES
- Las BDD, son innovaciones que van en creciente desarrollo, y profundizacin en su estudio. Si bien es cierto, la implantacin, o el uso de un BDD, es mucho ms difcil de obtener, debido a la economa, este tipo de BD ha empezado a ser utilizada desde mucho atrs por empresas, que como se explica en el apartado 2, encaja muy bien ellas y todo tipo de organizacin jerrquica, dado que las BDD, cuentan al igual que las compaas con particiones y subdivisiones que permiten un trabajo ms prctico y anlogo.
- Al pensar que una base de datos, cuenta con ms opciones, operaciones, y distintos tipos de caractersticas, podra presumirse de que son ms riesgosas y porque no muy complejas en su estructura. Pero como se describi anteriormente, son algo complejas, pero su tratamiento solo requiere una pequea modificacin con respecto a las BDC.
- Las arquitecturas si bien es cierto, muestran variaciones en los distintos ejemplos, todas ellas manifiestan cierta gran parte de relacin. En todas ellas se pone al descubierto los tres niveles que contienen las BDD en su arquitectura, y que valdra aclarar igualmente a las BDC. Estas arquitecturas permiten concluir que finalmente las BD, sean centralizadas o distribuidas basan sus principios en hechos muy comunes y ms cercanos de lo que normalmente se cree.
- Los SGBDD, muestran ciertas caractersticas que los hacen especiales, frente a cualquier manejador convencional, pero ello no es motivo de considerar a este sistema como un programa muy diferente al que se utiliza con las BDC, sino que lo nico que pretender hacer es simular que las partes de la BD repartidas en diferentes estaciones de trabajo, aparezcan ante el usuario como si el tuviese una sola BD sin particiones.
14 REFERENCIAS BIBLIOGRFICAS
[1] J.C. VARGAS HERNNDEZ, Fundamentos tericos de Bases de Datos Distribuidas[en lnea], Mxico, 2001, disponible en: <http://www.geocities.com/ddbqp/> [2] L. CAMPOY MEDRANO, Tutorial de Bases de Datos I[en lnea], Instituto Tecnolgico de la Paz, ,1999 disponible en: <http://www.itlp.edu.mx/publica/tutoriales/sistsdist2/t62.htm> [3] M. JIMENEZ, Seminario de Bases de Datos, Universidad de los Alpes, Chile, 2002 [4] C.J. DATE, Introduccin a los Sistemas de Bases de Datos, ed 7, Mxico, Pg. 651 670, 2001 [5] A. DIAZ, Bases de Datos distribuidas[en lnea], Mxico, 2004 <http://www.cs.cinvestav.mx/SC/prof_personal/adiaz/Disdb/Cap_1.html> [6] F. LORENZO CASTRO, Modelos de Datos: conceptos y clasificacin, Pg. 47, 2000 [7] G.H. HANSEN, J.V. HANSEN, Diseo y Administracin de BDx, ed 2, Pg. 393 410, Universidad de Salamanca Madrid, Espaa, 2000, ISBN: 8483220024 [8] J.C. LAVARIEGA JARQUIN, Bases de Datos Avanzadas, ITESM, Monterrey Mxico, 2000 [9] F. RUIZ, Arquitectura de Sistemas de Bases de Datos, Universidad de Castilla La Mancha, Pg. 43 60, 2000
Ttulo del trabajo: BASES DE DATOS DISTRIBUIDAS Alumno: CARRANZA ATH FREDY