viernes, 13 de junio de 2008

Tendencias, Aplicaciones y Ejemplos

Tendencias futuras

En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo de la información a la arquitectura de base de datos a las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se incrementará de manera considerable en la medida en que la tecnología de comunicación de datos brinde más facilidades para ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la Toma de Decisiones.

Arquitectura de un sistema de bases de datos distribuidas

La mayoría de los sistemas de manejo de bases de datos disponibles actualmente están basadas en la arquitectura ANSI-SPARC la cual divide a un sistema en tres niveles: interno, conceptual y externo, como se puede apreciar en la Figura:



Aplicaciones de bases de datos distribuidas

Los ambientes en los que se encuentra el uso de las BDD son:

  • Cualquier organización que tiene una estructura descentralizada: organismos gubernamentales y de servicios públicos.
  • La industria de la manufactura, particularmente aquella con plantas múltiples, y la industria automotriz.
  • Aplicaciones de control y comando militar.
  • Cadenas hoteleras.
  • Líneas de transportación aérea.
  • Servicios bancarios y financieros.

Ejemplos de algunos DDBMS:

Prototipos

SDD-1, que fue construido en la división de investigación de Computer Corporation of America.

Finales de los años 70 y principios de los 80.

R*, una versión distribuida del prototipo System R, construida en IBM Research

Principios de los años 80

Distributed Ingres, una versión distribuida del prototipo Ingres, construida en la Universidad de California en Berkeley

Principios de los 80

Implementaciones comerciales:

La mayoría de los productos SQL actuales proporcionan algún tipo de soporte de BDD (con diversos grados de funcionalidad).

Ingres/Star, el componente de BDD de Ingres

La opción de BDD de Oracle

La propiedad de datos distribuidos de DB2

Tanto los DDBMS prototipos como los productos, son relacionales (al menos todos soportan SQL).

Además, hay varias razones por las cuales, para que un sistema distribuido sea exitoso, debe ser relacional.

La tecnología relacional es un requisito previo para tecnología distribuida

lunes, 9 de junio de 2008

Bases de Datos Distribuidas

Conceptos Básicos

El sistema de administración de Base de Datos Distribuida (DDBMS), esta formado por las transacciones y los administradores de base de datos distribuidos de todas las computadoras. Tal DDBMS en un esquema genérico implica un conjunto de programas que operan en diversas computadoras. Estos programas pueden ser subsistemas de un producto único DDBMS, concesionado por un sólo fabricante, o también pudiera resultar de una colección de programas de fuentes dispares; algunos considerados por fabricantes y algunos otros escritos en casa.

Un administrador de base de datos (DTM) es un programa que recibe solicitudes de procesamiento de los programas de consulta o de transacciones y a su vez las traduce en acciones para los administradores de la base de datos. Una función importante del DTM es coordinar y controlar dichas acciones. Cada sitio tiene sus propias bases de datos "reales" locales, sus propios usuarios locales, sus propios DBMS y programas para administración de transacciones y su propio administrador local de comunicación de datos.

Bases de datos distribuidos consiste en un conjunto de nodos interconectados, cada uno de los cuales participa en la ejecución de transacciones que acceden a datos desde varias máquinas, generalmente situadas en localizaciones geográficas diferentes.

Los datos se pueden almacenar en distintas máquinas, éstas pueden variar según su tamaño y función (microcomputadores, estaciones de trabajo y sistemas de computadores grandes de aplicación general), pueden ser administradas de forma diferente y están conectadas físicamente a través de cables de alta velocidad, líneas telefónicas y medios inalámbricos. Además, pueden realizar transacciones locales, se accede a los datos desde un único nodo donde se inicia la transacción y transacciones globales, se accede a los datos de localizaciones distintas a la localización donde se inició la transacción.

Una Base de Datos Distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones, los cuales tienen la capacidad de procesamiento autónomo lo cual indica que puede realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si los datos estuvieran.

El papel que desempeñan las bases de datos distribuidas dentro de los sistemas operativos distribuidos.

Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras están conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la misma red local, se les llaman aplicaciones locales.

Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas transacciones que acceden a información en más de una sucursal. Estas transacciones son llamadas transacciones globales o transacciones distribuidas.

La existencia de transacciones globales será considerada como una característica que nos ayude a discriminar entre las BDD y un conjunto de base de datos locales. Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta aplicación requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real actualización en ambos sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones globales es una tarea difícil.

Que papel juegan las redes en las bases de datos distribuidas.

La comunidad de la base de datos todavía no tiene un entendimiento completo sobre las implicaciones del desempeño de todas las alternativas de diseño distribuido. Específicamente, se han planteado algunas preguntas sobre el agrandamiento o ampliación de algunos protocolos y algoritmos según los sistemas se distribuyan geográficamente o según cómo el número de componentes del sistema aumenta. Una inquietud es la conveniencia de los mecanismos de procesamiento-transacción distribuidos (el protocolo 2Pl y en particular el 2PC) en los sistemas de base de datos distribuidos basados en una amplia área de redes. Un avance importante está asociado con estos protocolos, y el implementarlos sobre un área de la red amplia y lenta puede traer dificultades.

Los problemas en el aumento del tamaño solo son parte de un problema más general, no tenemos un buen manejo del papel de las redes estructurales y de los protocolos en el desempeño de las bases de datos distribuidas. Casi todos los estudios sobre el desempeño que conocemos asumen un modelo simple de red de bajo costo. Lo inadecuado de estos modelos puede demostrarse fácilmente. Consideremos, por ejemplo, una base de datos distribuida que corre en una red de área local de tipo Ethernet. El mensaje se retrasa en Ethernet cuando la carga de la red incrementa y generalmente no puede ser agilizada. Entonces los modelos de desempeño real de un sistema de base de datos distribuida de tipo Ethernet no puede verdaderamente ser un retraso en la red constante o incluso una función de atraso que no considera la carga de la red. En general, el desempeño del algoritmo propuesto y de los protocolos en diferentes estructuras de la red en el área local, deja solo su comportamiento comparativo al moverse de las redes de área local a redes de áreas amplia.

La manera apropiada para tratar el problema de la ampliación es el desarrollado de modelos de desempeño generales y lo suficientemente poderosos, herramientas y metodología de medición. Tal trabajo se ha llevado a cabo durante algún tiempo para las bases de datos centralizadas pero todavía no se han extendido lo suficientemente para las bases de datos distribuidas.

Funcionamiento lógico de una base de datos distribuida

Las partes del Software

Software del Servidor: es el responsable de la gestión de los datos locales en un sitio, al igual que el software del SGBD centralizado.

Software del Cliente: Es el responsable de la mayoría de las funciones de distribuciones, acceso a la información de las distribución de los datos que esta en el catalogo del SGBDD y procesa todas las peticiones que requieren acceso a mas de un sitio, también maneja todas las interfaces del usuario.

Software de comunicaciones: Proporciona las primitivas de comunicación que utiliza el cliente para transmitir instrucciones y datos entre los sitios necesarios. Esta no es una parte estrictamente del SGBDD, pero proporciona servicios y primitivas de comunicación esenciales.

Ventajas de la utilización de las bases de datos distribuidas

Existen varias razones para construir sistemas distribuidos de bases de datos que incluyen compartir la información, fiabilidad y disponibilidad y agilizar el procesamiento de las consultas. Pero también tiene sus desventajas, como desarrollos de software más costosos, mayor posibilidad de errores y costos extras de procesamiento.

La principal ventaja de los sistemas distribuidos es la capacidad de compartir y acceder a la información de una forma fiable y eficaz.

Utilización compartida de los datos y distribución del control

La ventaja principal de compartir los datos por medio de la distribución es que cada localidad pueda controlar hasta cierto punto los datos almacenados localmente. En un sistema centralizado, el administrador de base de datos de la localidad central controla la base de datos. En un sistema distribuido existe un administrador global de la base de datos que se encarga de todo el sistema. Parte de esta responsabilidad se delega al administrador de base de datos de cada localidad. Dependiendo del diseño del sistema distribuido, cada administrador local podrá tener un grado de autonomía diferente, que se conoce como autonomía local. La posibilidad de contar con autonomía local es en muchos casos una ventaja importante de las bases de datos distribuidas.

Fiabilidad y disponibilidad

Si se produce un fallo en una localidad de un sistema distribuido, es posible que las demás localidades puedan seguir trabajando. En particular, si los datos se repiten en varias localidades, una transacción que requiere un dato específico puede encontrarlo en más de una localidad. Así, el fallo de una localidad no implica necesariamente la desactivación del sistema.

El sistema debe detectar cuando falla una localidad y tomar las medidas necesarias para recuperarse del fallo. El sistema no debe seguir utilizando la localidad que falló. Por último, cuando se recupere o repare esta localidad, debe contarse con mecanismos para reintegrarla al sistema con el mínimo de complicaciones.

La disponibilidad es fundamental para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Por ejemplo, si una línea aérea no puede tener acceso a la información, es posible que pierda clientes a favor de la competencia.

Agilización del procesamiento de consultas

Si una consulta comprende datos de varias localidades, puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades. Sin embargo, en un sistema distribuido no se comparte la memoria principal, así que no todas las estrategias de intersección se pueden aplicar en estos sistemas. En los casos en que hay repetición de los datos, el sistema puede pasar la consulta a las localidades más ligeras de carga.

Inconvenientes de las base de datos distribuidas

  • El rendimiento que es una ventaja podría verse contradicho, por la naturaleza de la carga de trabajo, pues un nodo puede verse abrumado, por las estrategias utilizadas de concurrencia y de fallos, y el acceso local a los datos. Se puede dar esta situación cuando la carga de trabajo requiere un gran número de actualizaciones concurrentes sobre datos duplicados y que deben estar distribuidos.
  • La confiabilidad de los sistemas distribuidos, esta entre dicha, puesto que, en este tipo de base de datos existen muchos factores a tomar en cuanta como: La confiabilidad de los ordenadores, de la red, del sistema de gestión de base de datos distribuida, de las transacciones y de las tazas de error de la carga de trabajo.
  • La mayor complejidad, juega en contra de este tipo de sistemas, pues muchas veces se traduce en altos gastos de construcción y mantenimiento. Esto se da por la gran cantidad de componentes Hardware, muchas cosas que aprender, y muchas aplicaciones susceptibles de fallar. Por ejemplo, el control de concurrencia y recuperación de fallos, requiere de personal muy especializado y por tal costoso.
  • El procesamiento de base de datos distribuida es difícil de controlar, pues estos procesos muchas veces se llevan a cabo en las áreas de trabajo de los usuarios, e incluso el acceso físico no es controlado, lo que genera una falta de seguridad de los datos.

El factor seguridad de la información dentro de la utilización de las bases de datos distribuidas

Integridad referencial

La base de datos no debe contener valores de llaves ajenas sin concordancia.

  • Identificar y autorizar a los usuarios: uso de códigos de acceso y palabras claves, exámenes, impresiones digitales, reconocimiento de voz, barrido de la retina, etc.
  • Autorización: usar derechos de acceso dados por el terminal, por la operación que puede realizar o por la hora del día.
  • Uso de técnicas de cifrado: para proteger datos en BD distribuidas o con acceso por red o internet.
  • Diferentes tipos de cuentas: en especial la del ABD con permisos para: creación de cuentas, concesión y revocación de privilegios y asignación de los niveles de seguridad.
  • Manejo de la tabla de usuarios con código y contraseña, control de las operaciones efectuadas en cada sesión de trabajo por cada usuario y anotadas en la bitácora, lo cual facilita la auditoría de la BD.