Понятие распределённой БД. архитектура и принципы распределённой БД.
Первоначальные ИС, основанные на базах данных, имели строго централизованную архитектуру. Данные были сосредоточены физически и логически на одном компьютере. Централизованная организация базы данных позволяет облегчить обеспечение ее безопасности, целостности и непротиворечивости данных.
Вместе с тем рост объема базы данных и числа пользователей, получающих к ней доступ, территориальное развитие организации (и снизанная с ней необходимость распределенной обработки данных) приводят к возникновению ряда проблем, свойственных централизованной архитектуре [14]:
♦ большой объем обмена данными (высокий трафик);
♦ снижение надежности обмена данными;
♦ снижение общей производительности;
♦ рост затрат на разработку БД.
ВОЗМОЖНЫМ решением перечисленных проблем является организация децентрализованного хранения данных. При децентрализации достигается [14]:
♦ параллельная обработка данных и распределение нагрузки;
♦ повышение эффективности обработки данных при выполнении удаленных запросов;
♦ уменьшение затрат на обработку данных;
♦ упрощение процедуры управления ИС.
Распределенная база данных— это набор отношений, хранящихся в разных узлах компьютерной сети и логически связанных таким образом, чтобы составлять единую совокупность данных [14, 33].
Распределенная база данных предполагает хранение данных на нескольких узлах сети, обработку данных и их передачу между этими
узлами в процессе выполнения запросов. Разбиение данных в распределенной базе данных может достигаться путем хранения различных таблиц на разных компьютерах или хранения разных фрагментов одной таблицы на разных компьютерах. Для пользователя (или прикладной программы) не должно иметь значения, каким образом распределены Данные между компьютерами. Работа с распределенной базой данных должна осуществляться так же, как и с централизованной.
Впервые задача об исследовании основ и принципов создания и функционирования распределенных информационных систем была поставлена известным специалистом в области баз данных К. Дейтом.
В основе распределенных ИС лежат две основные идеи [14]:
♦ работа множества пользователей с общей БД;
♦ объединение распределенных данных на логическом и физическом уровнях в общей БД.
Перечислим основные принципы создания и функционирования распределенных БД [14):
♦ Прозрачность размещения данных для пользователя (пользователю распределенная БД должна представляться точно, так как и нераспределенная);
♦ изолированность пользователей друг от друга (на работу одного пользователя с БД не должна влиять работа других пользователей с ней);
♦ синхронизация БД и непротиворечивость состояния данных в любой момент времени.
Дадим более подробный перечень принципов распределенной БД, сформулированных К. Дейтом [33].
1. Локальная автономия. Это качество означает, что управление данными на каждом из узлов распределенной системы выполняется локально. База данных, расположенная па одном из узлов, является неотъемлемым компонентом распределенной системы. Будучи фрагментом общего пространства данных, она в то же время функционирует как полноценная локальная база данных, а управление ею осуществляется локально, независимо от других узлов системы.
2. Независимость узлов. Все узлы равноправны и независимы, а расположенные на них БД являются равноправными поставщиками данных в общее пространство данных. База данных на каждом из узлов самодостаточна — она включает полный собственный словарь данных и полностью защищена от несанкционированного доступа.
3. Непрерывность операций. Это возможность непрерывного доступа к данным в рамках распределенной БД вне зависимости от их расположения и вне зависимости от операций, выполняемых на локальных узлах.
4. Прозрачность расположения. Пользователь, обращающийся к БД, ничего не должен знать о реальном, физическом размещении данных в узлах информационной системы.
5. Прозрачная фрагментация. Возможность распределенного (т. е. на различных узлах) размещения данных, логически представляющих собой единое целое. Существует фрагментация двух типов: горизонтальная и вертикальная. Первая означает, что строки таблицы хранятся на различных узлах. Вторая означает распределение столбцов логической таблицы по нескольким узлам.
6. Прозрачное тиражирование. Тиражирование данных - это асинхронный процесс переноса изменений объектов исходно!! базы данных в базы, расположенные на других узлах распределенной системы.
7. Обработка распределенных запросов. Возможность выполнения операций выборки данных из распределенной БД, посредством запросов, сформулированных на языке SQL.
8. Обработка распределенных транзакций. Возможность выполнения операций обновления распределенной базы данных, не нарушающих целостность и согласованность данных. Эта цель достигается применением двухфазного протокола фиксации транзакций.
9. Независимость от оборудования. Это свойство означает, что в качестве узлов распределенной системы могут выступать компьютеры любых моделей и производителей.
10. Независимость от операционных систем. Это качество вытекает из предыдущего и означает многообразие операционных систем, управляющих узлами распределенной системы.
11. Прозрачность сети. Доступ к любым базам данных осуществляется по сети. Спектр поддерживаемых конкретной СУБД сетевых протоколов не должен быть ограничением системы, основанной на распределенной БД.
12. Независимость от СУБД. Это качество означает, что в распределенной системе могут работать СУБД различных производителей, и возможны операции поиска и обновления в базах данных различных моделей и форматов.
Важнейшую роль в технологии создания и функционирования распределенных баз данных играет технология «представлений».
Представлением называется сохраняемый в базе данных авторизованный глобальный запрос на выборку данных. Авторизованность означает возможность запуска такого запроса только конкретно поименованным в системе пользователем. Глобальность заключается в том, что выборка данных может осуществляться из всей базы данных, в том числе из данных, расположенных на других узлах сети [14].
Результатом глобальных авторизованных запросов является создание для конкретного пользователя виртуальной БД СО своим перечнем таблиц, связей.
Технология клиент-сервер
Выделились несколько самостоятельных технологий распределенной обработки данных [14]:
♦ клиент-сервер;
♦ реплицирования;
♦ объектного связывания.
Реальные распределенные информационные системы, как правило, построены на основе сочетания ЭТИХ технологий.
Системы на основе технологии клиент-сервер разнились из первых централизованных многопользовательских информационных систем на основе мэйнфреймов и получили наиболее широкое распространение в корпоративных информационных системах.
При реализации данной технологии отступают от одного из основных принципов создания распределенных систем — отсутствия центрального узла [14].
Принцип централизации хранения и обработки данных является базовым принципом технологии клиент-сервер.
Можно выделить следующие идеи, лежащие в основе технологии клиент-сервер [14]:
♦ общие для всех пользователей данные, расположенные на одном или нескольких серверах;
♦ множество пользователей, осуществляющих доступ к общим данным.
Важное значение в технологии клиент-сервер имеют понятия сервера и клиента.
Под сервером в широком смысле понимается любая система, процесс, компьютер, владеющие каким-либо вычислительным ресурсом (памятью, временем процессора, файлами и Т.Д.). Клиентом называется любая система, процесс, компьютер, пользователь, делающие запрос к серверу на использование ресурса [14].
Настольные (локальные) СУБД, в случае их использования несколькими пользователями в компьютерной сети, функционируют на основе технологии файл-сервер, которая появилась раньше технологии клиент-сервер. Дело в том, что настольные СУБД не содержат специальных сервисов, управляющих данными, а используют для этой цели файловые сервисы операционной системы. Поэтому вся обработанных в таких СУБД осуществляется в клиентском приложении. При выполнении запросов все данные (даже те, которые не удовлетворяют запросу, а это могут быть сразу несколько таблиц) должны быть доставлены клиентскому приложению. Это приводит к перегрузке сети при увеличении числа пользователей и объема БД, а также грозит нарушением целостности данных.
Одним из важнейших преимуществ архитектуры клиент-сервер является снижение сетевого трафика при выполнении запросов. Клиент посылает запрос серверу на выборку данных, запрос обрабатывается сервером, и клиенту передастся не вся таблица (как было бы и технологии файл-сервер), а только результат обработки запроса.
Вторым преимуществом архитектуры клиент-сервер является возможность хранения так называемой бизнес-логики (например, правил ссылочной целостности или ограничений назначения данных) на сервере, что позволяет избежать дублирования кода в различных клиентских приложениях, использующих общую базу данных.
Во многих случаях узким местом клиент-серверных ИС является недостаточно высокая производительность из-за необходимости передачи по сети все-таки большого количества данных.
Построение быстродействующих информационных систем обеспечивают технологии репликации данных.
Репликой называют копию БД, размешенную на другом компьютере сети для автономной работы пользователей. Основная идея репликации заключается в том, что пользователи работают автономно с общими данными, растиражированными по локальным базам данных. Производительность работы системы повышается из-за отсутствия необходимости обмена данными по сети. Для реализации технологии
репликации программное обеспечение СУБД дополняется функциями тиражирования данных, их структуры, системной информации, информации о конфигурировании распределенной системы [14].
При этом, однако, возникают две проблемы реализации одного из принципов функционирования распределенных систем принципа непрерывности согласованного состояния данных [14]:
♦ обеспечение согласованного состояния данных во всех репликах БД;
♦ обеспечение согласованного состояния структуры данных во всех репликах БД.
Обеспечение согласованного состояния данных, в свою очередь, основывается на реализации одного из двух принципов [14]:
♦ принципа непрерывного размножения обновлений;
♦ принципа отложенных обновлений (обновления реплик могут быть отложены до специальной команды или ситуации).
Принцип непрерывного размножения обновлений является основополагающим при построении так называемых «систем реального времени- (например, систем управления воздушным движением, систем бронирования билетов пассажирского транспорта и др.), где требуется непрерывное и точное соответствие реплик во всех узлах и компонентах распределенных систем в любой момент времени. Реализация этого принципа заключается в том, что любая транзакция считается успешно завершенной, если она успешно завершена на всех репликах системы.
В ряде предметных областей режим реального времени с точки зрения непрерывности согласования данных не требуется. Такого рода информационные системы можно строить на основе принципа отложенных обновлений. Накопленные в какой-либо реплике изменения данных передаются командой пользователя для обновления всех остальных реплик системы. Такая операция называется синхронизацией реплик.
Унификация взаимодействия прикладных компонентов с ядром информационных систем в виде SQL-серверов, наработанная для кли-ент-серверных систем, позволила выработать аналогичные решения и по интегрированию разрозненных локальных баз данных под управлением настольных СУБД. Такая технология получила название объектного связывания данных [14].
Технология объектного связывания данных решает задачу обеспечения доступа из одной локальной БД, открытой одним пользователем, к данным другой локальной БД, возможно, находящейся на другом компьютере, открытой другим пользователем. Решение ЭТОЙ задачи
основывается на поддержке современными настольными СУБД технологии объектом доступа к данным DAO (Data Access Objects). Под
объектом понимается интеграция данных и методов их обработки в одно целое, на чем, как известно, основываются технологии объектно-ориентированного программирования 114).
Технология объектного связывания данных основана на протоколе ODBC (Open Database Connectivity), который является стандартом тупа к данным БД клиент-серверных систем (посредством SQL-запросов), а также к любым данным, находящимся под управлением реляционных СУБД.
Подобный принцип построения распределенных систем при больших объемах данных в связанных таблицах приводит к существенному увеличению сетевого трафика, так- как по сети постоянно передаются страницы файлов баз данных. Другой проблемой является отсутствие надежных механизмов безопасности данных и обеспечение ограничений целостности. Так же как и в технологии файл-сервер, совместная работа нескольких пользователей с одними и теми же данными обеспечивается только функциями операционной системы по одновременному доступу к файлу нескольких приложений [14].
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|