Определение Дэйта.
Лучшее, на мой взгляд, определение распределенных баз данных (DDB) предложил Дэйт (C.J. Date)
в . Он установил 12 свойств или качеств идеальной DDB:
- Локальная автономия (local autonomy)
- Независимость узлов (no reliance on central site)
- Непрерывные операции (continuous operation)
- Прозрачность расположения (location independence)
- Прозрачная фрагментация (fragmentation independence)
- Прозрачное тиражирование (replication independence)
- Обработка распределенных запросов (distributed query processing)
- Обработка распределенных транзакций (distributed transaction processing)
- Независимость от оборудования (hardware independence)
- Независимость от операционных систем (operationg system independence)
- Прозрачность сети (network independence)
- Независимость от баз данных (database independence)
Локальная автономия
Это качество означает, что управление данными на каждом из узлов распределенной системы
выполняется локально. База данных, расположенная на одном из узлов, является неотъемлемым
компонентом распределенной системы. Будучи фрагментом общего пространства данных, она, в
то же время функционирует как полноценная локальная база данных; управление ею выполняется
локально и независимо от других узлов системы.
Независимость от центрального узла
В идеальной системе все узлы равноправны и независимы, а расположенные на них базы являются
равноправными поставщиками данных в общее пространство данных. База данных на каждом из
узлов самодостаточна - она включает полный собственный словарь данных и полностью защищена
от несанкционированного доступа.
Непрерывные операции
Это качество можно трактовать как возможность непрерывного доступа к данным (известное "24
часа в сутки, семь дней в неделю") в рамках DDB вне зависимости от их расположения и вне
зависимости от операций, выполняемых на локальных узлах. Это качество можно выразить
лозунгом "данные доступны всегда, а операции над ними выполняются непрерывно".
Прозрачность расположения
Это свойство означает полную прозрачность расположения данных.
Пользователь,
обращающийся к DDB, ничего не должен знать о реальном, физическом размещении данных в
узлах информационной системы. Все операции над данными выполняются без учета их
местонахождения. Транспортировка запросов к базам данных осуществляется встроенными
системными средствами.
Прозрачная фрагментация
Это свойство трактуется как возможность распределенного (то есть на различных узлах)
размещения данных, логически представляющих собой единое целое. Существует фрагментация
двух типов: горизонтальная и вертикальная. Первая означает хранение строк одной таблицы на
различных узлах (фактически, хранение строк одной логической таблицы в нескольких
идентичных физических таблицах на различных узлах). Вторая означает распределение столбцов
логической таблицы по нескольким узлам.
Рассмотрим пример, иллюстрирующий оба типа фрагментации. Имеется таблица employee
(emp_id, emp_name, phone), определенная в базе данных на узле в Фениксе. Имеется точно такая же
таблица, определенная в базе данных на узле в Денвере. Обе таблицы хранят информацию о
сотрудниках компании. Кроме того, в базе данных на узле в Далласе определена таблица
emp_salary (emp_id, salary). Тогда запрос "получить информацию о сотрудниках компании" может
быть сформулирован так:
SELECT * FROM employee@phoenix, employee@denver ORDER BY
emp_id
В то же время запрос "получить информацию о заработной плате сотрудников компании"
будет выглядеть следующим образом:
SELECT employee.emp_id, emp_name, salary FROM employee@denver,
employee@phoenix, emp_salary@dallas ORDER BY emp_id
Прозрачность тиражирования
Тиражирование данных - это асинхронный (в общем случае) процесс переноса изменений объектов
исходной базы данных в базы, расположенные на других узлах распределенной системы. В данном
контексте прозрачность тиражирования означает возможность переноса изменений между базами
данных средствами, невидимыми пользователю распределенной системы. Данное свойство
означает, что тиражирование возможно и достигается внутрисистемными средствами.
Обработка распределенных запросов
Это свойство DDB трактуется как возможность выполнения операций выборки над
распределенной базой данных, сформулированных в рамках обычного запроса на языке SQL. То
есть операцию выборки из DDB можно сформулировать с помощью тех же языковых средств, что
и операцию над локальной базой данных. Например,
SELECT customer.name, customer.address, order.number, order.date FROM
customer@london, order@paris WHERE customer.cust_number = order.cust_number
Обработка распределенных транзакций
Это качество DDB можно трактовать как возможность выполнения операций обновления
распределенной базы данных (INSERT, UPDATE, DELETE), не разрушающее целостность и
согласованность данных. Эта цель достигается применением двухфазового или двухфазного
протокола фиксации транзакций (two-phase commit protocol), ставшего фактическим стандартом
обработки распределенных транзакций. Его применение гарантирует согласованное изменение
данных на нескольких узлах в рамках распределенной (или, как ее еще называют, глобальной)
транзакции.
Независимость от оборудования
Это свойство означает, что в качестве узлов распределенной системы могут выступать
компьютеры любых моделей и производителей - от мэйнфреймов до "персоналок".
Независимость от операционных систем
Это качество вытекает из предыдущего и означает многообразие операционных систем,
управляющих узлами распределенной системы.
Прозрачность сети
Доступ к любым базам данных может осуществляться по сети. Спектр поддерживаемых
конкретной СУБД сетевых протоколов не должен быть ограничением системы с распределенными
базами данных. Данное качество формулируется максимально широко - в распределенной системе
возможны любые сетевые протоколы.
Независимость от баз данных
Это качество означает, что в распределенной системе могут мирно сосуществовать СУБД
различных производителей, и возможны операции поиска и обновления в базах данных различных
моделей и форматов.
Исходя из определения Дэйта, можно рассматривать DDB как слабосвязанную сетевую структуру,
узлы которой представляют собой локальные базы данных. Локальные базы данных автономны,
независимы и самоопределены; доступ к ним обеспечиваются СУБД, в общем случае от различных
поставщиков. Связи между узлами - это потоки тиражируемых данных. Топология DDB
варьируется в широком диапазоне - возможны варианты иерархии, структур типа "звезда" и т.д. В
целом топология DDB определяется географией информационной системы и направленностью
потоков тиражирования данных.
Посмотрим, во что выливается некоторые наиболее важные свойства DDB, если рассматривать их
практически.