Download CATEDRÁTICO: Lic. Angélica Avalos Cano. TEMA:
Document related concepts
no text concepts found
Transcript
CATEDRÁTICO: Lic. Angélica Avalos Cano. TEMA: Arquitecturas para un sistema distribuido Los factores que debe considerar un diseñador de un sistema de base de datos distribuidas al elegir una arquitectura incluyen la colocación de los datos, tipos de sistemas de comunicaciones, modelos de datos que soportan y tipos de aplicaciones. Cada alternativa impone un tipo diferente de sistema y utiliza procedimientos distintos de actualización y descomposición de solicitudes. Si el sistema de comunicación es lento y caro de usar se favorece un almacenamiento y procesamiento locales. Un sistema rápido y barato de comunicaciones, como una red de área local, favorece el almacenamiento y procesamiento centralizado. Los sistemas distribuidos aceptan varios modelos de datos y lenguajes de manipulación para ellos, igual que en los sistema centralizados. En general, un diseñador debe evitar los modelos que usen una recuperación de un registro a la vez, y a cambio de eso elegir aquellos que permitan operaciones a nivel de conjunto, debido al número de mensajes que se requieren para la recuperación con navegación del programador. Esta es una delas razones por la que el modelo relacional es el que se usa con más frecuencia n las bases de datos distribuidas. Al considerar los tipos de aplicaciones por realizar contra la base de datos escogida, el diseñador necesita estimar el tamaño de ésta, número de transacciones, cantidad de datos que requiere la transacción, complejidad de las transacciones, numero de recuperaciones en relación con el número de actualizaciones, y número de transacciones que hacen referencia a datos locales en comparación con los remotos. Entre las alternativas están las siguientes: PROCESAMIENTO DISTRIBUIDO CON EL USO DE UNA BASE DE DATOS CENTRALIZADA En esta arquitectura, la base de datos en si no está distribuida, pero los usuarios acceden a ella a través de una red de computo. El procedimiento se lleva a cabo en sitios múltiples, con el empleo de datos del sitio de la base de datos central. Esta también lleva acabo procesamiento, con frecuencia tanto para sus aplicaciones locales como para las centralizadas. Cuando acceden a los datos para su procesamiento, los sitios locales se comunican sólo con el sitio central, no entre sí. SISTEMAS CLIENTES/SERVIDOR. En los sistemas cliente /servidor, la base de datos reside en una maquina en el extremo terminal, llamada servidor, y es común que los usuarios accedan a los datos a través de sus estaciones de trabajo, que funcionan como clientes. Las funciones de las bases de datos se dividen entre el cliente y el servidor. El cliente proporciona al usuario la interfaz y ejecuta la aplicación lógica, mientras que el servidor administra los datos y proceso las solicitudes de estos. Es una transacción interactiva común, el usuario interactúa con la estación de trabajo cliente por medio de una interfaz gráfica provista ya sea por el sistema de base de datos o por un tercer proveedor. Además de manejar la aplicación lógica, el cliente realiza la edición inicial de las solicitudes de datos ( por lo general SQL), revisa la sintaxis de la solicitud y genera otra para la base de datos, que es enviada al servidor a través de la red. Este valida la solicitud por medio de la revisión del diccionario de datos, autorización y las restricciones de integridad; optimiza la consulta; aplica controles de concurrencia y técnicas de recuperación; recupera los datos y los envía de regreso al cliente, que los presenta al usuario, en el cliente también se ejecutan programas de aplicación, en los que las solicitudes de datos pasan por una interfaz de programas de aplicación (IPA) hacia el servidor en una forma similar a la descrita. Si el cliente se apega a un estándar como el ODBC o el JDBC, se comunica con cualquier servidor que provea un interfaz estándar. A diferencia del ambiente de base de datos centralizada, el servidor no procesa aplicaciones por sí mismo. BASES DE DATOS PARALELAS En la arquitectura de bases de datos paralelas hay procesadores múltiples que controlan unidades de disco múltiples que contienen a la base de datos, que puede estar particionada en los discos, o tal vez duplicada. Si la tolerancia a las fallas tiene gran prioridad, el sistema se prepara de modo que cada componente sirva como respaldo para los demás componentes del mismo tipo y se haga cargo de las funciones de cualquier componente similar que falle. Las arquitecturas de sistemas de bases de datos paralelas son de memoria compartida, disco compartido, nada compartido o Jerárquicas, que también se llaman Cluster. En un sistema de memoria compartida, todos los procesadores tienen acceso a la misma memoria y a los discos compartidos, La base de datos reside en los discos, ya sea que este duplicada en ellos o particionada entre todos. Cuando un procesador hace una solicitud de datos, estos son enviados desde cualquiera de los discos hacia os búferes de la memoria compartidos por todos los procesadores. El DBMS Informa al procesador cual página de la memoria contiene la página de los datos solicitada. En el diseño de disco compartido, cada procesador tiene acceso exclusivo a su propia memoria, pero todos los procesadores tienen acceso a las unidades de discos compartidas, cuando un procesador solicita datos, las paginas respectivas son llevadas a la memoria del procesador. En los sistemas de nada compartido, cada procesador tiene control exclusivo de su propia unidad o unidades de disco y de su memoria, pero los procesadores se comunican uno con otro. En las arquitecturas jerárquicas o cluster, los sistemas constituidos por nodos de memoria compartida eta conectados por medio de una red, los sistemas solo comparten comunicaciones entre sí, y la arquitectura general entre sistemas no comparte nada. El propósito de la base de datos paralelas es mejorar el rendimiento por medio de ejecutar las operaciones en forma paralelas en los distintos dispositivos. Es esencial la partición cuidadosa de los datos de modo que sea posible la evaluación en paralelo de las consultas. La partición de los datos se hace con partición de rango que significa que los registros se colocan en discos diseñados de acuerdo con un rango de valores par cierto atributo. Otros métodos son por dispersión (hashing) de algunos atributos, o con la colocación de los registros nuevos en un formato round robin sobre discos sucesivos. Cuando se procesa una consulta, como los datos requeridos tal vez residan en discos diferentes, la consulta se descompone en subconsultas que luego se procesan en paralelo con el uso de la partición apropiada de la base de datos. BASES DE DATOS DISTRIBUIDAS En esta arquitectura, la base de datos esta distribuida, tal vez con duplicación, entre varios sitios relativamente autónomos. La distribución es transparente para el usuario, que no necesita especificar el lugar en el que se localizan los datos (transparencia de ubicación). Un sistema distribuido es homogéneo o heterogéneo. En un sistema homogéneo todos los nodos usan el mismo hardware y software para el sistema de la base de datos. En un sistema heterogéneo los nodos tienen diferentes hardware y/o software. Como un sistema homogéneo es mucho más fácil de diseñar y administrar, es normal que los diseñadores lo escojan. Los sistemas heterogéneos por lo general son el resultado de las situaciones en que los sitios individuales toman sus propias decisiones sobre el hardware y el software, y las comunicaciones se agregan en una etapa posterior, lo cual es la norma. Entonces, el diseñador tiene la tarea de unificar sistemas dispares. En un sistema heterogéneo es necesario hacer traducciones que permitan que las bases de datos se comuniquen. Como la transparencia es un objetivo impórtate, el usuario en un sitio particular hace solicitudes en el lenguaje del sistema de administración de la base de datos en ese sitio. Entonces es el sistema el que tiene la responsabilidad de localizar los datos, que pueden estar en otro sitio con diferente hardware y software. La solicitud incluso podría requerir la coordinación de datos almacenados en varios sitios, todos con distintos equipamientos, si dos sitios tienen hardware diferente pero iguales sistemas de administración de la base de datos, la traducción no es demasiado difícil, y consiste sobre todo en el cambio de código y tamaño de las palabras, si tiene el mismo hardware pero diferente software, la traducción si es difícil, y requiere que el modelo y estructura de los datos de un sistema se exprese en términos de los modelos y estructuras de otro. Por ejemplo, si una base de datos es relacional y la otra utiliza el modelo orientado a objetos, estos deben presentarse en forma de tabla a los usuarios de la base de datos relacional. Además, deben traducirse los lenguajes de consultas.