Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гайдамакин Н. А. Автоматизированные информационные системы, базы и банки данных. Вводный курс.doc
Скачиваний:
372
Добавлен:
02.05.2014
Размер:
4.3 Mб
Скачать

5. Распределенные информационные системы

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

Первоначальные подходы к созданию баз данных АИС заключались в сосредоточении данных логически и физически в од­ном месте — на одной вычислительной установке. Однако такая организация информационных ресурсов чаще всего является не совсем естественной с точки зрения традиционных («бумажных») информационных технологий конкретного предприятия (орга­низационной структуры) и при внедрении АИС происходит «лом­ка» привычных информационных потоков и структур.* Все ин­формационные ресурсы предприятия, организации сосредотачиваются централизованно в одном месте, что требует определенных технологических, кадровых и материальных зат­рат и может порождать ряд новых проблем и задач. Следует отметить, что такому подходу также способствовала и господ­ствующая на начальном этапе автоматизации предприятий и организаций в 70-х годах тогдашняя парадигма вычислитель­ных систем — общая мощная вычислительная установка (main frame)и групповая работа пользователей с удаленных терми­налов через системы разделения времени.

* В данном контексте более понятен сам термин — «внедрение», предполагаю­щий сопротивление.

Опыт внедрения автоматизированных систем управления в различных организационных структурах в 70-е— 80-е гг. пока­зал не всегда высокую эффективность подобной автоматизации, когда новые технологические информационно-управленческие подразделения (отдел автоматизации, отдел АСУ, информацион­ная служба и т. п.) и новые электронные информационные пото­ки зачастую функционировали вместе с сохраняющимися тра­диционными организационными структурами, а также вместе с традиционными («бумажными», «телескопными») информационными потоками.

Осознание подобных проблем постепенно стало приводить к мысли о распределенных информационных системах.

5.1. Понятие распределенных информационных систем, принципы их создания и функционирования

Впервые задача об исследовании основ и принципов со­здания и функционирования распределенных информационных систем была поставлена известным специалистом в области баз данных К. Дейтом в рамках уже не раз упоминавшегося проек­та System R,что в конце 70-х — начале 80-х годов вылилось в отдельный проект создания первой распределенной системы (проект System R*).Большую роль в исследовании принципов создания и функционирования распределенных баз данных вне­сли также и разработчики системы Ingres.

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

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

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

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

прозрачность расположения данных для пользовате­ля(иначе говоря, для пользователя распределенная база дан­ных должна представляться и выглядеть точно так же, как и нераспределенная);

изолированность пользователей друг от друга(пользо­ватель должен «не чувствовать», «не видеть» работу других пользователей в тот момент, когда он изменяет, обновляет, уда­ляет данные);

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

Из основных вытекает ряд дополнительных принципов:

локальная автономия(ни одна вычислительная установка для своего успешного функционирования не должна зависеть от любой другой установки);

отсутствие центральной установки(следствие преды­дущего пункта);

независимость от местоположения(пользователю все равно где физически находятся данные, он работает так, как будто они находятся на его локальной установке);

непрерывность функционирования(отсутствие плано­вых отключений системы в целом, например для подключения новой установки или обновления версии СУБД);

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

независимость от реплицирования(дублирования) дан­ных (когда какая-либо таблица базы данных, или ее часть физически может быть представлена несколькими копиями, рас­положенными на различных установках, причем «прозрачно» для пользователя);

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

распределенное управление транзакциями(в распреде­ленной системе отдельная транзакция может требовать выпол­нения действий на разных установках, транзакция считается завершенной, если она успешно завершена на всех вовлечен­ных установках);

независимость от аппаратуры(желательно, чтобы сис­тема могла функционировать на установках, включающих ком­пьютеры разных типов);

независимость от типа операционной системы(систе­ма должна функционировать вне зависимости от возможного различия ОС на различных вычислительных установках);

независимость от коммуникационной сети(возможность функционирования в разных коммуникационных средах);

независимость от СУБД*(на разных установках могут функционировать СУБД различного типа, на практике ограни­чиваемые кругом СУБД, поддерживающих SQL).

* Данное свойство характеризуют также термином «интероперабельность».

В обиходе СУБД, на основе которых создаются распреде­ленные информационные системы, также характеризуют тер­мином «Распределенные СУБД»,и, соответственно, использу­ют термин«Распределенные базы данных».

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

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

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

Схематично идея техники представлений проиллюстриро­вана на рис. 5.1.

Рис. 5.1. Основная идея техники представлений

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

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

CREAТЕ VIEWИмяПредставленият AS

SELECT...

FROM...

...;

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

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

GRANT SELECTON ИмяПредставленияTOИмяПользователя1, ИмяПользователя2,...;

Соответственно директива REVOKEотменяет уставленные ранее привилегии.

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

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

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