Распределенная база данных — это база данных , в которой данные хранятся в разных физических местах. [1] Она может храниться на нескольких компьютерах, расположенных в одном физическом месте (например, в центре обработки данных); или может быть рассредоточена по сети взаимосвязанных компьютеров. В отличие от параллельных систем , в которых процессоры тесно связаны и составляют единую систему базы данных, распределенная система базы данных состоит из слабо связанных сайтов, которые не имеют общих физических компонентов.
Системные администраторы могут распределять наборы данных (например, в базе данных) по нескольким физическим местоположениям. Распределенная база данных может находиться на организованных сетевых серверах или децентрализованных независимых компьютерах в Интернете , в корпоративных интрасетях или экстрасетях или в других сетях организаций . Поскольку распределенные базы данных хранят данные на нескольких компьютерах, распределенные базы данных могут повысить производительность на рабочих местах конечных пользователей , позволяя обрабатывать транзакции на многих машинах, а не ограничиваться одной. [2]
Актуальность и соответствие распределенным базам данных обеспечивают два процесса: репликация [3] и дублирование .
Как репликация, так и дублирование могут поддерживать актуальность данных во всех местах дистрибуции. [2]
Помимо распределенной репликации и фрагментации баз данных, существует множество других технологий проектирования распределенных баз данных. Например, технологии локальной автономии, синхронных и асинхронных распределенных баз данных. Внедрение этих технологий может зависеть и зависит от потребностей бизнеса и чувствительности/ конфиденциальности данных, хранящихся в базе данных, а также цены, которую бизнес готов потратить на обеспечение безопасности , согласованности и целостности данных .
При обсуждении доступа к распределенным базам данных Microsoft отдает предпочтение термину распределенный запрос , который он определяет в протокольно-специфической манере как «любой оператор SELECT, INSERT, UPDATE или DELETE, который ссылается на таблицы и наборы строк из одного или нескольких внешних источников данных OLE DB». [4] Oracle предоставляет более ориентированное на язык представление, в котором распределенные запросы и распределенные транзакции являются частью распределенного SQL . [5]
Существует 3 основных типа архитектуры распределенных баз данных:
В архитектурах с общей памятью и общим диском данные не секционируются , но они должны находиться в архитектуре без общего доступа.
Архитектура с общим диском более распространена для облачных баз данных , чем для локальных. [6]
Исторически архитектура без общего доступа была первой архитектурой, реализованной в облаке, до того как появление общего облачного хранилища сделало возможным общий диск.
На практике разные слои базы данных могут иметь разные архитектуры. Сейчас стало обычным иметь вычислительный слой с архитектурой «ничего общего» и слой хранения с архитектурой общего диска. Это, например, случай Snowflake [7] и AWS Aurora . [8]
распределенный запрос[:] Любой оператор SELECT, INSERT, UPDATE или DELETE, который ссылается на таблицы и наборы строк из одного или нескольких внешних источников данных OLE DB.
Распределенный SQL синхронно обращается к данным, распределенным между несколькими базами данных, и обновляет их. [...] Распределенный SQL включает распределенные запросы и распределенные транзакции.