Una base de datos distribuida es una base de datos en la que los datos se almacenan en diferentes ubicaciones físicas. [1] Puede almacenarse en varias computadoras ubicadas en la misma ubicación física (por ejemplo, un centro de datos); o tal vez dispersarse en una red de computadoras interconectadas. A diferencia de los sistemas paralelos , en los que los procesadores están estrechamente acoplados y constituyen un único sistema de base de datos, un sistema de base de datos distribuido consta de sitios acoplados de forma flexible que no comparten componentes físicos.
Los administradores de sistemas pueden distribuir conjuntos de datos (por ejemplo, en una base de datos) en múltiples ubicaciones físicas. Una base de datos distribuida puede residir en servidores de red organizados o en computadoras independientes descentralizadas en Internet , en intranets o extranets corporativas o en otras redes de organizaciones . Debido a que las bases de datos distribuidas almacenan datos en múltiples computadoras, las bases de datos distribuidas pueden mejorar el rendimiento en los lugares de trabajo de los usuarios finales al permitir que las transacciones se procesen en muchas máquinas, en lugar de estar limitadas a una. [2]
Dos procesos garantizan que las bases de datos distribuidas permanezcan actualizadas y vigentes: la replicación [3] y la duplicación .
Tanto la replicación como la duplicación pueden mantener los datos actualizados en todas las ubicaciones distributivas. [2]
Además de la replicación y fragmentación de bases de datos distribuidas, existen muchas otras tecnologías de diseño de bases de datos distribuidas. Por ejemplo, tecnologías de bases de datos distribuidas con autonomía local, sincrónicas y asincrónicas. La implementación de estas tecnologías puede depender (y depende) de las necesidades de la empresa y de la sensibilidad/ confidencialidad de los datos almacenados en la base de datos, así como del precio que la empresa esté dispuesta a pagar para garantizar la seguridad , la coherencia y la integridad de los datos .
Al hablar de acceso a bases de datos distribuidas, Microsoft prefiere el término consulta distribuida , que define de manera específica del protocolo como "cualquier instrucción SELECT, INSERT, UPDATE o DELETE que haga referencia a tablas y conjuntos de filas de una o más fuentes de datos OLE DB externas". [4] Oracle proporciona una visión más centrada en el lenguaje en la que las consultas distribuidas y las transacciones distribuidas forman parte del SQL distribuido . [5]
Hay tres tipos principales de arquitectura para bases de datos distribuidas:
En las arquitecturas de memoria compartida y disco compartido, los datos no se particionan , pero deben estar en una arquitectura donde no se comparte nada.
La arquitectura de disco compartido es más común para las bases de datos en la nube que para las locales. [6]
Históricamente, la arquitectura de nada compartido fue la primera que se implementó en la nube, antes de que la llegada del almacenamiento en la nube compartido hiciera posible el disco compartido.
En la práctica, las distintas capas de la base de datos pueden tener arquitecturas diferentes. Hoy en día es habitual tener una capa de cómputo con una arquitectura de no uso compartido y una capa de almacenamiento con una arquitectura de disco compartido. Este es, por ejemplo, el caso de Snowflake [7] y AWS Aurora [8] .
consulta distribuida[:] Cualquier instrucción SELECT, INSERT, UPDATE o DELETE que haga referencia a tablas y conjuntos de filas de una o más fuentes de datos OLE DB externas.
[...] El SQL distribuido incluye consultas distribuidas y transacciones distribuidas.