Распределенные базы данных. Стратегии распределения данных. Основные этапы проектирования распределенной БД, страница 3

Однородные и неоднородные системы баз данных

В однородном случае каждая БД управляется одной и той же СУБД.

В неоднородной системе локальные БД могут относиться даже к раз­ным моделям данных, и могут управляться разными СУБД. Организация ра­боты в такой сложной гетерогенной среде актуальная, но очень сложная проблема. Успешно решается задача интеграции SQL-ориентированных сис­тем. Например: распределенная БД может работать под управлением СУБД Oracle и Interbase.

Какие качества должна иметь распределенная СУБД

По мнению специалистов распределенная СУБД должна удовлетворять следующим правилам:

- локальные данные обслуживаются независимо от других узлов

- все узлы равноправны

- прозрачный доступ пользователя к информации (т.е.  пользователь не знает, где хранятся данные)

- фрагмент таблицы выглядит для пользователя как единое целое

- распределенные запросы оптимизируются в масштабе всей сети

- поддержка распределенной транзакции

- обеспечивается распределенный доступ к словарю данных.

Распределенная транзакция

Поддержка целостного хранения информации в распределенной среде осуществляется с помощью распределенной транзакции. Распределенная транзакция рассматривается как неделимая операция с точки зрения воз­действия на участвующие в ней узлы. Т.е., либо все операции, участвую­щие в ней, выполняются, либо не выполняется ни одна.

Существуют две модели обработки распределенной транзакции: синх­ронная и асинхронная.

Синхронная модель - двухфазный протокол фиксации транзакции (2PC, two phase commit), синхронное внесение изменений в несколько баз дан­ных (опрашиваются все узлы, если они готовы к завершению, транзакция успешно завершается, если не готов хотя бы один узел, транзакция отка­тывается). Основной недостаток большие требования к надежности сети, что часто не выполняется. Своевременно, но ненадежно. Такая своевре­менность требуется не во всех случаях.

Альтернативой этой модели служит асинхронное тиражирование или репликация гарантируется доставка измененных данных на вторичные сер­веры непосредственно после завершения транзакции, если сервер досту­пен, или тотчас же после подключения сервера к сети. Предполагает хра­нение дублирующей информации в различных узлах сети, существенно разг­ружает траффик сети,минимизирует время отклика системы, позволяет оп­тимизировать нагрузку на серверы.

Асинхронная репликация (АР) не делает линии связи более надежными или скоростными. Она лишь перекладывает задачи трансляции данных и обеспечение их целостности с "плеч" прикладной программы и пользовате­ля на системный уровень. АР не гарантирует полной синхронности инфор­мации во всех серверах в любой момент времени. Синхронизация происхо­дит через некоторый обычно небольшой промежуток времени, величина ко­торого определяется быстродействием соответствующего канала связи. Для большинства задач кратковременное наличие устаревших данных не критич­но. Вместе с тем, АР обеспечивает целостность, т.к. объектом обмена данными является транзакция, а не просто данные из измененных таблиц.

Пример: репликационный сервер SYBASE.