Распределенные базы данных

Первоначальные ИС, основанные на базах данных, имели строго централизованную архитектуру. Данные были сосредоточены физи­чески и логически на одном компьютере. Централизованная органи­зация базы данных позволяет облегчить обеспечение ее безопасности, целостности и непротиворечивости данных.

Вместе с тем рост объема базы данных и числа пользователей, полу­чающих к ней доступ, территориальное развитие организации (и свя­занная с ней необходимость распределенной обработки данных) приво­дят к возникновению ряда проблем, свойственных централизованной архитектуре:

·       большой объем обмена данными (высокий трафик);

·       снижение надежности обмена данными;

·        снижение общей производительности;

·       рост затрат на разработку БД.

Возможным решением перечисленных проблем является органи­зация децентрализованного хранения данных. При децентрализации достигается:

» параллельная обработка данных и распределение нагрузки;

» повышение эффективности обработки данных при выполнении удаленных запросов;

» уменьшение затрат на обработку данных;

» упрощение процедуры управления ИС.

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

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

Впервые задача об исследовании основ и принципов создания и функ­ционирования распределенных информационных систем была постав­лена известным специалистом в области баз данных К. Дейтом.

В основе распределенных ИС лежат две основные идеи:

* работа множества пользователей с общей БД;

* объединение распределенных данных на логическом и физиче­ском уровнях в общей БД.

Перечислим основные принципы создания и функционирования распределенных БД:

*прозрачность размещения данных для пользователя (пользова­телю распределенная БД должна представляться точно так же, как и нераспределенная);

*изолированность пользователей друг от друга (на работу одного пользователя с БД не должна влиять работа других пользовате­лей с ней);

* синхронизация БД и непротиворечивость состояния данных в лю­бой момент времени.

Дадим более подробный перечень принципов распределенной БД, сформулированных К. Дейтом.

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

2.Независимость узлов. Все узлы равноправны и независимы, а расположенные на них БД являются равноправными поставщи­ками данных в общее пространство данных. База данных на каждом из узлов самодостаточна — она включает полный собственный словарь данных и полностью защищена от несанкциониро­ванного доступа.

3.Непрерывность операций. Это возможность непрерывного до­ступа к данным в рамках распределенной БД вне зависимости от
их расположения и вне зависимости от операций, выполняемых на локальных узлах.

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

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

6.Прозрачное тиражирование. Тиражирование данных — это асин­хронный процесс переноса изменений объектов исходной базы
данных в базы, расположенные на других узлах распределенной системы.

7.Обработка распределенных запросов. Возможность выполнения операций выборки данных из распределенной БД, посредством
запросов, сформулированных на языке SQL.

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

9.Независимость от оборудования. Это свойство означает, что в качестве узлов распределенной системы могут выступать компью­теры любых моделей и производителей.

10. Независимость от операционных систем. Это качество вытекает из предыдущего и означает многообразие операционных систем, управляющих узлами распределенной системы.

И. Прозрачность сети. Доступ к любым базам данных осуществля­ется по сети. Спектр поддерживаемых конкретной СУБД сете­вых протоколов не должен быть ограничением системы, основан­ной на распределенной БД.

12. Независимость от СУБД. Это качество означает, что в распреде­ленной системе могут работать СУБД различных производителей, и возможны операции поиска и обновления в базах данных различных моделей и форматов.

Важнейшую роль в технологии создания и функционирования рас­пределенных баз данных играет технология «представлений».

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

Результатом глобальных авторизованных запросов является созда­ние для конкретного пользователя виртуальной БД со своим переч­нем таблиц, связей.

2. Технологии распределенной обработки информации

Выделились несколько самостоятельных технологий распределен­ной обработки данных:

*  клиент-сервер;

*  реплицирования;

*  объектного связывания.

Реальные распределенные информационные системы, как правило, построены на основе сочетания этих технологий.

Системы на основе технологии клиент-сервер развились из первых централизованных многопользовательских информационных систем на основе мэйнфреймов и получили наиболее широкое распростране­ние в корпоративных информационных системах.

При реализации данной технологии отступают от одного из основ­ных принципов создания распределенных систем — отсутствия цен­трального узла.

Принцип централизации хранения и обработки данных является базовым принципом технологии клиент-сервер.

Можно выделить следующие идеи, лежащие в основе технологии клиент-сервер:

*общие для всех пользователей данные, расположенные на одном или нескольких серверах;

* множество пользователей, осуществляющих доступ к общим
данным.

 

Важное значение в технологии клиент-сервер имеют понятия сер­вера и клиента.

Под сервером в широком смысле понимается любая система, про­цесс, компьютер, владеющие каким-либо вычислительным ресурсом (памятью, временем процессора, файлами и т. д.). Клиентом называ­ется любая система, процесс, компьютер, пользователь, делающие за­прос к серверу на использование ресурса .

Настольные (локальные) СУБД, в случае их использования не­сколькими пользователями в компьютерной сети, функционируют на основе технологии файл-сервер, которая появилась раньше техноло­гии клиент-сервер. Дело в том, что настольные СУБД не содержат спе­циальных сервисов, управляющих данными, а используют для этой цели файловые сервисы операционной системы. Поэтому вся обработ­ка данных в таких СУБД осуществляется в клиентском приложении. При выполнении запросов все данные (даже те, которые не удовле­творяют запросу, а это могут быть сразу несколько таблиц) должны быть доставлены клиентскому приложению. Это приводит к перегруз­ке сети при увеличении числа пользователей и объема БД, а также гро­зит нарушением целостности данных.

Одним из важнейших преимуществ архитектуры клиент-сервер яв­ляется снижение сетевого трафика при выполнении запросов. Клиент посылает запрос серверу на выборку данных, запрос обрабатывается сервером, и клиенту передается не вся таблица (как было бы в техно­логии файл-сервер), а только результат обработки запроса.

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

Во многих случаях узким местом клиент-серверных ИС является недостаточно высокая производительность из-за необходимости пе­редачи по сети все-таки большого количества данных.

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

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

При этом, однако, возникают две проблемы реализации одного из принципов функционирования распределенных систем — принципа непрерывности согласованного состояния данных:

* обеспечение согласованного состояния данных во всех репли­ках БД;

* обеспечение согласованного состояния структуры данных во всех репликах БД.

Обеспечение согласованного состояния данных, в свою очередь, ос­новывается на реализации одного из двух принципов:

*принципа непрерывного размножения обновлений;

* принципа отложенных обновлений (обновления реплик могут быть отложены до специальной команды или ситуации).

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

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

Унификация взаимодействия прикладных компонентов с ядром информационных систем в виде SQL-серверов, наработанная для кли­ент-серверных систем, позволила выработать аналогичные решения и по интегрированию разрозненных локальных баз данных под управ­лением настольных СУБД. Такая технология получила название объектного связывания данных .

Технология объектного связывания данных решает задачу обеспе­чения доступа из одной локальной БД, открытой одним пользователем, к данным другой локальной БД, возможно, находящейся на дру­гом компьютере, открытой другим пользователем. Решение этой задачи основывается на поддержке современными настольными СУБД техно­логии объектов доступа к данным — DAO (Data Access Objects). Под объектом понимается интеграция данных и методов их обработки в одно целое, на чем, как известно, основываются технологии объектно-ориентированного программирования.

Технология объектного связывания данных основана на протоколе ODBC (Ореn Dаtаbаsе Соnnectivity), который является стандартом доступа к данным БД клиент-серверных систем (посредством SQL-запросов), а также к любым данным, находящимся под управлением реляционных СУБД.

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

Контрольные вопросы

1.Дайте понятие распределенной БД.

2.Охарактеризуйте принципы распределенной БД, сформулиро­ванные К. Дейтом.

3.В чем состоит сущность технологии клиент-сервер?

4.Назовите преимущества технологии клиент-сервер по сравнению
с технологией файл-сервер.

5.Охарактеризуйте технологию репликации данных.

6.Охарактеризуйте технологию объектного связывания данных.