В однородном случае каждая БД управляется одной и той же СУБД.
В неоднородной системе локальные БД могут относиться даже к разным моделям данных, и могут управляться разными СУБД. Организация работы в такой сложной гетерогенной среде актуальная, но очень сложная проблема. Успешно решается задача интеграции SQL-ориентированных систем. Например: распределенная БД может работать под управлением СУБД Oracle и Interbase.
По мнению специалистов распределенная СУБД должна удовлетворять следующим правилам:
- локальные данные обслуживаются независимо от других узлов
- все узлы равноправны
- прозрачный доступ пользователя к информации (т.е. пользователь не знает, где хранятся данные)
- фрагмент таблицы выглядит для пользователя как единое целое
- распределенные запросы оптимизируются в масштабе всей сети
- поддержка распределенной транзакции
- обеспечивается распределенный доступ к словарю данных.
Поддержка целостного хранения информации в распределенной среде осуществляется с помощью распределенной транзакции. Распределенная транзакция рассматривается как неделимая операция с точки зрения воздействия на участвующие в ней узлы. Т.е., либо все операции, участвующие в ней, выполняются, либо не выполняется ни одна.
Существуют две модели обработки распределенной транзакции: синхронная и асинхронная.
Синхронная модель - двухфазный протокол фиксации транзакции (2PC, two phase commit), синхронное внесение изменений в несколько баз данных (опрашиваются все узлы, если они готовы к завершению, транзакция успешно завершается, если не готов хотя бы один узел, транзакция откатывается). Основной недостаток большие требования к надежности сети, что часто не выполняется. Своевременно, но ненадежно. Такая своевременность требуется не во всех случаях.
Альтернативой этой модели служит асинхронное тиражирование или репликация гарантируется доставка измененных данных на вторичные серверы непосредственно после завершения транзакции, если сервер доступен, или тотчас же после подключения сервера к сети. Предполагает хранение дублирующей информации в различных узлах сети, существенно разгружает траффик сети,минимизирует время отклика системы, позволяет оптимизировать нагрузку на серверы.
Асинхронная репликация (АР) не делает линии связи более надежными или скоростными. Она лишь перекладывает задачи трансляции данных и обеспечение их целостности с "плеч" прикладной программы и пользователя на системный уровень. АР не гарантирует полной синхронности информации во всех серверах в любой момент времени. Синхронизация происходит через некоторый обычно небольшой промежуток времени, величина которого определяется быстродействием соответствующего канала связи. Для большинства задач кратковременное наличие устаревших данных не критично. Вместе с тем, АР обеспечивает целостность, т.к. объектом обмена данными является транзакция, а не просто данные из измененных таблиц.
Пример: репликационный сервер SYBASE.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.