¿Qué es un sistema de base de datos distribuidas? ¿Qué es una base de datos distribuida con ejemplos?

Bases de datos distribuidas

Cuando una organización posee sucursales distribuidas en lugares alejados geográficamente puede adoptar varios esquemas:

sin conexión entre los SGBD de las distintas sucursales.

  • Centralizado:
  • hay una sola base de datos en la casa matriz de la organización y las distintas sucursales se comunican de alguna forma con ella para acceder a los datos (ya que no tienen SGBD).

  • Independiente con acceso compartido:
  • los diferentes SGBD de las sucursales pueden acceder a los datos de otra a través de un link que los dirige a la misma (autenticación mediante). Los datos a los que puede acceder y las acciones que se pueden realizar dependen de los permisos que posea el SGBD solicitante.

  • Independiente con acceso compartido web service:
  • al esquema anterior se le añade una aplicación (web service) que recibe peticiones y envía respuestas a los SGBD de las distintas sucursales. Envía y recibe los datos que mandan los SGBD en respuesta a las solicitudes de los otros SGBD. El formato o estándar utilizado es el XML.

  • Distribuido:
  • bases de datos en distintos lugares físicos (denominados nodos) que funcionan de forma paralela y que lógicamente se comportan como una sola base de datos. Tener varios nodos permite alta disponibilidad de los datos al dar mayor respuesta en caso de que se caiga uno de los nodos.

    Los sistemas de bases de datos distribuidos están formados por sitios débilmente acoplados que no comparten ningún componente físico. Además, puede que los sistemas de bases de datos que se ejecutan en cada sitio sean sustancialmente independientes entre sí, ya que se clasifican en:

  • Homogéneas: todos los sitios emplean idéntico software de gestión de bases de datos, son conscientes de la existencia de los demás sitios y acuerdan cooperar en el procesamiento de las solicitudes de los usuarios. En estos sistemas, los sitios locales renuncian a una parte de su autonomía en cuanto a su derecho a modificar los esquemas o el software de gestión de bases de datos. Ese software también debe cooperar con los demás sitios en el intercambio de la información sobre las transacciones para hacer posible su procesamiento entre varios sitios.
  • Heterogéneas: puede que los diferentes sitios utilicen esquemas y software de gestión de sistemas de bases de datos diferentes. 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. Las diferencias en los esquemas suelen constituir un problema importante para el procesamiento de las consultas, mientras que la divergencia del software supone un inconveniente para el procesamiento de transacciones que acceden a varios sitios.
  • Formas de almacenamiento

    Ventajas

    Desventajas

    No se debe exigir a los usuarios de los sistemas distribuidos de bases de datos que conozcan la ubicación física de los datos ni el modo en que se puede acceder a ellos en cada sitio local concreto. Esta característica, denominada transparencia de los datos puede implicar que no conozcan el modo en que se fragmentaron las tablas ni que conozcan la ubicación física de los datos. Los usuarios ven cada objeto de datos como lógicamente único.

    Partición/fragmentación

    El acceso a los diferentes elementos de datos en los sistemas distribuidos se realiza mediante transacciones, que preservan las propiedades ACID. Las transacciones locales son las que acceden a los datos y los actualizan en una única base de datos local; las transacciones globales son las que acceden a los datos y los actualizan en varias bases de datos locales. En el caso de estas últimas, resulta más difícil garantizar las propiedades ACID dado que puede que participen en la ejecución varios sitios. El fallo de alguno de estos sitios, o el de alguno de los enlaces de comunicaciones que los conectan entre sí, puede dar lugar a cálculos erróneos.

    La partición o fragmentación implica tener que buscar una respuesta a la posibilidad de que se caiga o haya problemas de conexión entre los nodos. La respuesta puede tener un impacto tanto en la disponibilidad como en la consistencia del sistema de datos.

    Durante una actualización se generan estados inconsistentes que pueden ser incompatibles con lo que esté trabajando otro nodo. Si hay problemas de conexión, y no se puede validar o controlar en línea, se pueden adoptar como cursos de acción:

    Los SGBD relacionales buscan asegurar más la consistencia. Cada nodo posee su gestor de transacciones, pero, además, al esquema se agrega un coordinador de transacciones:

    Gestor de transacciones

    Coordinador de transacciones

    Cada sitio tiene su propio gestor local de transacciones, cuya función es garantizar las propiedades ACID de las transacciones que se ejecuten allí. Se encarga de: