Серверы объектов в распределенных информационных системах. Распределенные информационные системы

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Казанский национальный исследовательский технологический университет»

(ФГБОУ ВПО КНИТУ)

Институт управления, автоматизации и информационных технологий

Факультет управления и автоматизации

Кафедра «Автоматизированных систем сбора и обработки информации»

Реферат

Тема: Общая классификация и характеристика технологий распределенных информационных систем

Казань – 2015 год

1. Введение…………………………………………………………………….…………..3

1.1 Предпосылки создания информационных систем…..………………………..…3

1.2. Понятие распределенных информационных систем……………………………4

2. Информационные технологии в распределенных системах……………………..6

2.1. Система распределенной обработки данных……………………………………7

2.2. Технологии и модели «Клиент-Сервер»…………………………………………..9

2.3. Технологии объектного связывания данных……………………………………..13

2.4. Технологии реплицирования данных………………………………………………15

3. Средства работы с распределенными данными…………………………………..16

3.1. Распределенные базы данных……………………………………………………..17

3.2. Типы распределенных баз данных………………………………………………...20

3.3. Назначение и принципы работы распределенных баз данных……………….20

4. Примеры распределенных систем…………………………………………………..22

Библиографический список…………………………………………………………..25

ВВЕДЕНИЕ

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

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

В данной работе рассмотрены основные сведения о распределенной информационной системе: описаны предпосылки ее развития, средства работы с данными, введено понятие распределенной базы данных, а также ее типов и основных принципов. В третьей главе представлены примеры распределенных информационных систем, такие как: - Informix On-Line фирмы Informix Software;- Ingres Intelligent Database фирмы Ingres Corp;- Oracle (version 7) фирмы Oracle Corp;- Sybase System 10 фирмы Sybase Inc.

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

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

1. ПОНЯТИЕ РАСПРЕДЕЛЕННЫХ ИФОРМАЦИОННЫХ СИСТЕМ

1.1. Предпосылки создания распределенных ИС

C самого начала развития вычислительной техники образовались два основных направления ее использования.

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

Второе направление - это использование средств вычислительной техники в автоматических или автоматизированных информационных системах. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру. Одними из естественных требований к таким системам являются средняя быстрота выполнения операций и сохранность информации.

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

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

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

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

1.2. Понятие распределенных информационных систем

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

средних и крупных распределенных систем.

Малые ИС имеют небольшой жизненный цикл (ЖЦ), ориентацию на массовое использование, невысокую цену, невозможность модификации без участия разработчиков, использующие в основном настольные системы управления базами данных (СУБД), однородное аппаратно-программное обеспечение, не имеющие средств обеспечения безопасности.

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

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

Данные из разнородных систем обычно объединяются в логические группы, к которой и адресуются запросы. Абстрактная система запросов предполагает, что система оперирует не конкретным синтаксисом запросов, а его логической сутью на основе абстрактных атрибутов.
При построении распределенных ИС, как правило, используются две базовые архитектуры: Клиент/сервер и Internet Intranet .
Корпоративные ИС, построенные по архитектуре Клиент/сервер , предоставляют клиентам широкий спектр приложений и инструментов разработки, которые ориентированы на максимальное использование вычислительных возможностей клиентских рабочих мест. Ресурсы сервера используются в основном для хранения и обмена документами, а также для выхода во внешнюю среду. Данная архитектура позволяет лучше защитить серверную часть приложений, при этом, предоставляя возможность приложениям либо непосредственно адресоваться к другим серверным приложениям, либо маршрутизировать запросы к ним. Однако, частые обращения клиента к серверу снижают производительность работы сети. Приходится решать вопросы безопасной работы в сети, так как приложения и данные распределены между различными клиентами. Распределенный характер построения системы обусловливает сложность ее настройки и сопровождения

В основе ИС на базе Internet Intranet лежит принцип "открытой архитектуры". ПО ИС реализуется в виде аплетов или сервлетов (программ на языке JAVA) или в виде cgi модулей (программ на Perl или С). ИС данной архитектуры включает Web-yinh\, реализованные при помощи технологий CORBA Enterprise JavaBeans, ActiveX 1X"ОМ, многоуровневые приложения на основе Java и XML, .Net-концепция с XML, в которой обмен между различными серверами (хранилищами данных, бизнес-приложениями, серверами для мобильных клиентов и другое) производится при помощи нейтрального к любой архитектуре XML.

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

Функционирующих по единым правилам, определенным централизованно для всех баз данных, входящих в распределенную информационную базу;

Обмен данными осуществляется по правилам, также определенным централизованно.

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

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

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

2. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ

Технологии распределенных вычислений (РВ) Современное производство требует высоких скоростей обработки информации, удобных форм ее хранения и передачи. Необходимо также иметь динамичные способы обращения к информации, способы поиска данных в заданные временные интервалы, чтобы реализовывать сложную математическую и логическую обработку данных. Управление крупными предприятиями, управление экономикой на уровне страны требуют участия в этом процессе достаточно крупных коллективов. Такие коллективы могут располагаться в различных районах города, в различных регионах страны и даже в различных странах. Для решения задач управления, обеспечивающих реализацию экономической стратегии, становятся важными и актуальными скорость и удобство обмена информацией, а также возможность тесного взаимодействия всех участвующих в процессе выработки управленческих решений. В эпоху централизованного использования ЭВМ с пакетной обработкой информации пользователи вычислительной техники предпочитали приобретать компьютеры, на которых можно было бы решать почти все классы их задач. Однако сложность решаемых задач обратно пропорциональна их количеству, и это приводило к неэффективному использованию вычислительной мощности ЭВМ при значительных материальных затратах. Нельзя не учитывать и тот факт, что доступ к ресурсам компьютеров был затруднен из-за существующей политики централизации вычислительных средств в одном месте. Принцип централизованной обработки данных (рис. 5.1) не отвечал высоким требованиям к надежности процесса обработки, затруднял развитие систем и не мог обеспечить необходимые временные параметры при диалоговой обработке данных в многопользовательском режиме. Кратковременный выход из строя центральной ЭВМ приводил к роковым последствиям для системы в целом. I Рис. 5.1 - Система централизованной обработки данных Появление персональных компьютеров потребовало нового подхода к организации систем обработки данных, к созданию новых информационных технологий.

Возникло логически обоснованное требование перехода от использования отдельных ЭВМ в системах централизованной обработки данных к распределенной обработке данных.

2.1. Система распределенной обработки данных .

Распределенная обработка данных - обработка данных, выполняемая на независимых, но связанных между собой компьютерах, представляющих распределенную систему. В основе распределенных вычислений лежат две основные идеи: много организационно и физически распределенных пользователей, одновременно работающих с общими данными - общей базой данных (пользователи с разными именами, которые могут располагаться на различных вычислительных установках, с различными полномочиями и задачами); логически и физически распределенные данные, составляющие и образующие тем не менее, общую базу данных (отдельные таблицы, записи и даже поля могут располагаться на различных вычислительных установках или входить в различные локальные базы данных). Дня реализации распределенной обработки данных были созданы многомашинные ассоциации, структура которых разрабатывается по одному из следующих направлений: многомашинные вычислительные комплексы (МВК); компьютерные (вычислительные) сети. Многомашинный вычислительный комплекс - группа установленных рядом вычислительных машин, объединенных с помощью специальных средств сопряжения и выполняющих совместно единый информационно-вычислительный процесс. Под процессом понимается некоторая последовательность действий для решения задачи, определяемая программой. Многомашинные вычислительные комплексы могут быть: локальными, при условии установки компьютеров в одном помещении, не требующих для взаимосвязи специального оборудования и каналов связи; дистанционными, если некоторые компьютеры комплекса установлены на значительном расстоянии от центральной ЭВМ и для передачи данных используются телефонные каналы связи.

Пример 1 . Три ЭВМ объединены в комплекс для распределения заданий, поступающих на обработку. Одна из них выполняет диспетчерскую функцию и распределяет задания в зависимости от занятости одной из двух других обрабатывающих ЭВМ. Это локальный многомашинный комплекс.

Пример 2. ЭВМ, осуществляющая сбор данных по некоторому региону, выполняет их предварительную обработку и передает для дальнейшего использования на центральную ЭВМ по телефонному каналу связи. Это дистанционный многомашинный комплекс. Компьютерная (вычислительная) сеть - вычислительная система, включающая в себя несколько компьютеров, терминалов и других аппаратных средств, соединенных между собой линиями связи, обеспечивающими передачу данных Терминал - устройство, предназначенное для взаимодействия пользователя с вычислительной системой или сетью ЭВМ. Состоит из устройства ввода (чаще всего это клавиатура) и одного или нескольких устройств вывода (дисплей, принтер и т.д.).

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

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

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

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

- технологии "Клиент-сервер",

- технологии реплицирования,

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

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

2.2. Технологии и модели «Клиент-сервер»

Технологии и модели "Клиент-сервер" Системы на основе технологий "Клиент-сервер" исторически выросли из первых централизованных многопользовательских автоматизированных информационных систем, интенсивно развивавшихся в 70-х годах (системы mainframe), и получили, вероятно, наиболее широкое распространение в сфере информационного обеспечения крупных предприятий и корпораций. В технологиях "Клиент-сервер" отступают от одного из главных принципов создания и функционирования распределенных систем - отсутствия центральной установки. Поэтому можно выделить две основные идеи, лежащие в основе клиент-серверных технологий: общие для всех пользователей данные на одном или нескольких серверах; много пользователей (клиентов), на различных вычислительных установках, совместно (параллельно и одновременно) обрабатывающих общие данные. Иначе говоря, системы, основанные на технологиях "Клиент-сервер", распределены только в отношении пользователей, поэтому часто их не относят к "настоящим" распределенным системам, а считают отдельным классом многопользовательских систем.

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

- модель файлового сервера (File Server - FS);

- модель удаленного доступа к данным (Remote Data Access - RDA);

- модель сервера базы данных (DataBase Server - DBS);

- модель сервера приложений (Application Server - AS).

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

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

Модель удаленного доступа к данным основана на учете специфики размещения и физического манипулирования данных во внешней памяти для реляционных СУБД. В RDA-модели компонент доступа к данным в СУБД полностью отделен от двух других компонентов (компонента представления и прикладного компонента) и размещается на сервере системы. Компонент доступа к данным реализуется в виде самостоятельной программной части СУБД, называемой SQL-сервером, и инсталлируется на вычислительной установке сервера системы. Функции SQL-сервера ограничиваются низкоуровневыми операциями по организации, размещению, хранению и манипулированию данными в дисковой памяти сервера. Иначе говоря, SQL-сервер играет роль машины данных. В файле (файлах) базы данных, размещаемом на сервере системы, находится также и системный каталог базы данных, в который помещаются в том числе и сведения о зарегистрированных клиентах, их полномочиях и т. п. На клиентских установках инсталлируются программные части СУБД, реализующие интерфейсные и прикладные функции. Пользователь, входя в клиентскую часть системы, регистрируется через нее на cepвере системы и начинает обработку данных. Прикладной компонент системы (библиотеки запросов, процедуры обработки данных) полностью размещается и выполняется на клиентской установке. При реализации своих функций прикладной компонент формирует необходимые SQL-инструкции, направляемые SQL-серверу. SQL-сервер, представляющий специальный программный компонент, ориентированный на интерпретацию SQL-инструкций и высокоскоростное выполнение низкоуровневых операций с данными, принимает и координирует SQL-инструкции от различных клиентов, выполняет их, проверяет и обеспечивает выполнение ограничений целостности данных и направляет клиентам результаты обработки SQL-инструкций, представляющие, как известно, наборы (таблицы) данных. Таким образом, общение клиента с сервером происходит через SQL-инструкции, а с сервера на клиентские установки передаются только результаты обработки, т. е. наборы данных, которые могут быть существенно меньше по объему всей базы данных. В результате резко уменьшается загрузка сети, а сервер приобретает активную центральную функцию. Кроме того, ядро СУБД в виде SQL-сервера обеспечивает также традиционные и важные функции по обеспечению ограничений целостности и безопасности данных при совместной работе нескольких пользователей. Другим, может быть неявным, достоинством RDA-модели является унификация интерфейса взаимодействия прикладных компонентов информационных систем с общими данными. Такое взаимодействие стандартизовано в рамках языка SQL специальным протоколом ODBC (Open Database Connectivity - открытый доступ к базам данных), играющим важную роль в обеспечении интероперабельности (многопротокольность), т.е. независимости от типа СУБД на клиентских установках в распределенных системах. Интероперабельность (многопротокольность) СУБД - способность СУБД обслуживать прикладные программы, первоначально ориентированные на разные типы СУБД. Иначе говоря, специальный компонент ядра СУБД на сервере (так называемый драйвер ODBC) способен воспринимать, обрабатывать запросы и направлять результаты их обработки на клиентские установки, функционирующие под управлением реляционных СУБД других, не "родных" типов. Такая возможность существенно повышает гибкость в создании распределенных информационных систем на базе интеграции уже существующих в какой-либо организации локальных баз данных под управлением настольных или другого типа реляционных СУБД. К недостаткам RDA-модели можно отнести высокие требования к клиентским вычислительным установкам, так как прикладные программы обработки данных, определяемые спецификой предметной области информационной системы, выполняются на них. Другим недостатком является все же существенный трафик сети, обусловленный тем, что с сервера базы данных клиентам направляются наборы (таблицы) данных, которые в определенных случаях могут занимать достаточно существенный объем.

Модель сервера базы данных (DBS-модель). Развитием PDA-модели стала модель сервера базы данных. Ее сердцевиной является механизм хранимых процедур. В отличие от RDA -модели, определенные для конкретной предметной области информационной системы события, правила и процедуры, описанные средствами языка SQL, хранятся вместе с данными на сервере системы и на нем же выполняются. Иначе говоря, прикладной компонент полностью размещается и выполняется на сервере системы. Модель сервера базы данных (DBS-модель) На клиентских установках в DBS-модели размещается только интерфейсный компонент (компонент представления), что существенно снижает требования к вычислительной установке клиента. Пользователь через интерфейс системы на клиентской установке направляет на сервер базы данных только лишь вызовы необходимых процедур, запросов и других функций по обработке данных. Все затратные операции по доступу и обработке данных выполняются на сервере и клиенту направляются лишь результаты обработки, а не наборы данных, как в RDA-модели. Этим обеспечивается существенное снижение трафика сети в DBS-модели по сравнению с RDA - моделью. Следует заметить, что на сервере системы выполняются процедуры прикладных задач одновременно всех пользователей системы. В результате резко возрастают требования к вычислительной установке сервера, причем как к объему дискового пространства и оперативной памяти, так и к быстродействию. Это основной недостаток DBS-модели. К достоинствам же DBS-модели , помимо разгрузки сети, относится и более активная роль сервера сети, размещение, хранение и выполнение на нем механизма событий, правил и процедур, возможность более адекватно и эффективно "настраивать" распределенную информационную систему на все нюансы предметной области. Также более надежно обеспечивается согласованность состояния и изменения данных и, вследствие этого, повышается надежность хранения и обработки данных, эффективно координируется коллективная работа пользователей с общими данными.

Модель сервера приложений (AS-модели). Чтобы разнести требования к вычислительным ресурсам сервера в отношении быстродействия и памяти по разным вычислительным установкам, используется модель сервера приложений. Суть AS-модели заключается в переносе прикладного компонента информационной системы на специализированный в отношении повышенных ресурсов по быстродействию дополнительный сервер системы. Как и в DBS-модели, на клиентских установках располагается только интерфейсная часть системы, т. е. компонент представления. Однако вызовы функций обработки данных направляются на сервер приложений, где эти функции совместно выполняются для всех пользователей системы. За выполнением низкоуровневых операций по доступу и изменению данных сервер приложений, как в RDA-модели, обращается к SQL-серверу, направляя ему вызовы SQL-процедур, и получая, соответственно, от него наборы данных. Как известно, последовательная совокупность операций над данными (SQL-инструкций), имеющая отдельное смысловое значение, называется транзакцией. В этом отношении сервер приложений управляет формированием транзакций, которые выполняет SQL-сервер. Поэтому программный компонент СУБД, инсталлируемый на сервере приложений, еще называют монитором обработки транзакций (Transaction Processing Monitors - TRM), или просто монитором транзакций. AS-модель, сохраняя сильные стороны DBS-модели, позволяет оптимально построить вычислительную схему информационной системы, однако, как и в случае RDA-модели, повышает трафик сети. В практических случаях используются смешанные модели, когда простейшие прикладные функции и обеспечение ограничений целостности данных поддерживаются хранимыми на сервере процедурами (DBS-модель), а более сложные функции предметной области (так называемые правила бизнеса) реализуются прикладными программами на клиентских установках (RDA-модель) или на сервере приложений (AS-модель).

2.3. Технологии объектного связывания данных .

Унификация взаимодействия прикладных компонентов с ядром информационных систем в виде SQL-серверов, наработанная для клиент-серверных систем, позволила выработать аналогичные решения и для интеграции разрозненных локальных баз данных под управлением настольных СУБД в сложные децентрализованные гетерогенные распределенные системы. Такой подход получил название объектного связывания данных. С узкой точки зрения, технология объектного связывания данных решает задачу обеспечения доступа из одной локальной базы, открытой одним пользователем, к данным в другой локальной базе (в другом файле), возможно находящейся на другой вычислительной установке, открытой и эксплуатируемой другим пользователем. Решение этой задачи основывается на поддержке современными "настольными" СУБД (MS Access, MS FoxPro, dBase и др.) технологии "объектов доступа к данным" - DАО .

При этом следует отметить, что под объектом понимается интеграция данных и методов, их обработки в одно целое (объект), на чем основываются объектно-ориентированное программирование и современные объектно-ориентированные операционные среды. Другими словами, СУБД, поддерживающие DАО, получают возможность внедрять и оперировать в локальных базах объектами доступа к данным, физически находящимся в других файлах, возможно на других вычислительных установках и под управлением других СУБД. Технически технология DАО основана на уже упоминавшемся протоколе ODBC, который принят за стандарт доступа не только к данным на SQL-серверах клиент-серверных систем, но и в качестве стандарта доступа к любым данным под управлением реляционных СУБД. Непосредственно для доступа к данным на основе протокола ODBC используются специальные программные компоненты, называемые драйверами ODBC (инициализируемые на тех установках, где находятся данные). Прежде всего, современные настольные СУБД обеспечивают возможность прямого доступа к объектам (таблицам, запросам, формам) внешних баз данных "своих" форматов. Иначе говоря, в открытую в текущем сеансе работы базу данных пользователь имеет возможность вставить специальные ссылки-объекты и оперировать с данными из другой (внешней, т. е. не открываемой специально в данном сеансе) базы данных. Объекты из внешней базы данных, вставленные в текущую базу данных, называются связанными и, как правило, имеют специальные обозначения для отличия от внутренних объектов. При этом следует подчеркнуть, что сами данные физически в файл (файлы) текущей базы данных не помещаются, а остаются в файлах своих баз данных. В системный каталог текущей базы данных помещаются все необходимые для доступа сведения о связанных объектах - внутреннее имя и внешнее, т. е. истинное имя объекта во внешней базе данных, полный путь к файлу внешней базы и г. п. Связанные объекты для пользователя ничем не отличаются от внутренних объектов. Пользователь может также открывать связанные во внешних базах таблицы данных, осуществлять поиск, изменение, удаление и добавление данных, строить запросы по таким таблицам и т. д. Связанные объекты можно интегрировать в схему внутренней базы данных, т е. устанавливать связи между внутренними и связанными таблицами. Технически оперирование связанными объектами из внешних баз данных "своего" формата мало отличается от оперирования с данными из текущей базы данных. Ядро СУБД при обращении к данным связанного объекта по системному каталогу текущей базы данных находит сведения о месте нахождения и других параметрах соответствующего файла (файлов) внешней базы данных и прозрачно (т. е. невидимо для пользователя) открывает этот файл (файлы). Далее обычным порядком организует в оперативной памяти буферизацию страниц внешнего файла данных для непосредственно доступа и манипулирования данными. Следует также заметить, что на основе возможностей многопользовательского режима работы с файлами данных современных операционных систем, с файлом внешней базы данных, если он находится на другой вычислительной установке, может в тот же момент времени работать и другой пользователь, что и обеспечивает коллективную обработку общих распределенных данных. Подобный принцип построения распределенных систем при больших объемах данных в связанных таблицах приведет к существенному увеличению трафика сети, так как по сети постоянно передаются даже не наборы данных, а страницы файлов баз данных, что может приводить к пиковым перегрузкам сети. Поэтому представленные схемы локальных баз данных со взаимными связанными объектами нуждаются в дальнейшей тщательной проработке. Не менее существенной проблемой является отсутствие надежных механизмов безопасности данных и обеспечения ограничений целостности. Совместная работа нескольких пользователей с одними и теми же данными обеспечивается только функциями операционной системы по одновременному доступу к файлу нескольких приложений. Аналогичным образом обеспечивается доступ к данным, находящимся в базах данных наиболее распространенных форматов других СУБД, таких, например, как базы данных СУБД FoxPro, dBASE. При этом доступ может обеспечиваться как непосредственно ядром СУБД, так и специальными дополнительными драйверами ISAM (Indexed Sequential Access Method), входящими, как правило, в состав комплекта СУБД. Объектное связывание ограничивается только непосредственно таблицами данных, исключая другие объекты базы данных (запросы, формы, отчеты), реализация и поддержка которых зависят от специфики конкретной СУБД. Определенной проблемой технологий объектного связывания является появление "брешей" в системах защиты данных и разграничения доступа. Вызовы драйверов ODBC для осуществления процедур доступа к данным помимо пути, имени файлов и требуемых объектов (таблиц), если соответствующие базы защищены, содержат в открытом виде пароли доступа, в результате чего может быть проанализирована и раскрыта система разграничения доступа и защиты данных.

2.4. Технологии реплицирования данных

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

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

3. СРЕДСТВА РАБОТЫ С РАСПРЕДЕЛЕННЫМИ ДАННЫМИ

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

1) Фрагментация и дублирование

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

2) Словари данных и директории

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

3) Двухфазная фиксация изменений

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

4) Обеспечение целостности

Важной характеристикой распределенной ИС является то, как она обеспечивает поддержку ссылочной целостности между данными таблицы-мастера и данными связанных с ней таблиц. Рассмотрим пример ссылочной целостности. Предположим в распределенной БД имеются три таблицы:

Таблица, содержащая информацию о детях сотрудников;

Таблица, содержащая информацию о зарплатах сотрудников за год;

Таблица, содержащая информацию о темах, выполненных сотрудником.

Все эти таблицы содержат столбец "ФИО сотрудника". Правила обеспечения ссылочной целостности требуют, чтобы при изменении значений столбца "ФИО сотрудника" в одной таблице, автоматически выполнялась корректировка значений этого столбца в других таблицах. Для обеспечения ссылочной целостности используются 2 различных метода - триггеры и декларативные ограничения целостности стандарта ANSI.

3.1. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ

Основные принципы

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

РБД состоит из набора узлов, связанных коммуникационной сетью, в которой:

а)каждый узел - это полноценная СУБД сама по себе;

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

Каждый узел сам по себе является системой базы данных. Любой пользователь может выполнить операции над данными на своём локальном узле точно так же, как если бы этот узел вовсе не входил в распределённую систему. Распределённую систему баз данных можно рассматривать как партнёрство между отдельными локальными СУБД на отдельных локальных узлах.

Фундаментальный принцип создания распределённых баз данных («правило 0»): Для пользователя распределённая система должна выглядеть так же, как нераспределённая система.

Фундаментальный принцип имеет следствием определённые дополнительные правила или цели. Таких целей всего двенадцать:

1.Локальная независимость. Узлы в распределённой системе должны быть независимы, или автономны. Локальная независимость означает, что все операции на узле контролируются этим узлом.

2.Отсутствие опоры на центральный узел. Локальная независимость предполагает, что все узлы в распределённой системе должны рассматриваться как равные. Поэтому не должно быть никаких обращений к «центральному» или «главному» узлу с целью получения некоторого централизованного сервиса.

3. Непрерывное функционирование. Распределённые системы должны предоставлять более высокую степень надёжности и доступности.

4. Независимость от расположения. Пользователи не должны знать, где именно данные хранятся физически и должны поступать так, как если бы все данные хранились на их собственном локальном узле.

5. Независимость от фрагментации. Система поддерживает независимость от фрагментации, если данная переменная-отношение может быть разделена на части или фрагменты при организации её физического хранения. В этом случае данные могут храниться в том месте, где они чаще всего используются, что позволяет достичь локализации большинства операций и уменьшения сетевого трафика.

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

7.Обработка распределённых запросов.

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

8.Управление распределёнными транзакциями.

Существует 2 главных аспекта управления транзакциями: управление восстановлением и управление параллельностью обработки. Что касается управления восстановлением, то чтобы обеспечить атомарность транзакции в распределённой среде, система должна гарантировать, что все множество относящихся к данной транзакции агентов (агент - процесс, который выполняется для данной транзакции на отдельном узле) или зафиксировало свои результаты, или выполнило откат. Что касается управления параллельностью, то оно в большинстве распределённых систем базируется на механизме блокирования, точно так, как и в нераспределённых системах.

9.Аппаратная независимость .

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

10.Независимость от операционной системы.

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

11.Независимость от сети.

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

12.Независимость от типа СУБД.

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

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

3.2. Типы распределенных БД

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

Помимо вышеназванных типов распределенных баз данных можно выделить следующие:

1) Распределённые Базы Данных

2) Мультибазы данных с глобальной схемой. Система Мультибаз данных - это распределённая система, которая служит внешним интерфейсом для доступа ко множеству локальных СУБД или структурируется, как глобальный уровень над локальными СУБД.

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

4) Мультибазы с общим языком доступа - распределённые среды управления с технологией "клиент-сервер"

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

3.3. Назначение и принцип работы распределенной БД

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

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

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

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

Рис.1.

Принцип работы БД

Узел 1 является корневым для всей распределенной базы и главным узлом для подчиненных ему второму и третьему. Второй узел является главным узлом для подчиненных ему четвертому и пятому. Третий узел будет главным для подчиненных ему шестому, седьмому и восьмому.

Любой узел распределенной базы данных (УРБД) "видит" только узлы, напрямую связанные с ним. С такими узлами он и осуществляет обмен данными.

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

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

Теперь рассмотрим, каким образом осуществляется обмен данными между узлами УРБД. При внесении изменений в данные информационной базы программа запоминает, что было изменено и каким образом. Для любого узла раз в определенный промежуток времени запускается обработка (вручную либо автоматически), которая формирует специальные сообщения, в каких в формате XML отображена информация о том, были ли изменения (если были, то какие), и отправляет их в определенные каталоги по локальной сети либо по FTP, или же на определенные адреса электронной почты. Также обработка проверяет, появились ли в этом каталоге либо электронном ящике аналогичные сообщения от других узлов, связанных напрямую с этим узлом, адресованные ему. Если появились, то загрузит сообщения, а следовательно и изменения в данных. Инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.

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

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

Обмен данными между базами производится следующим образом:

1) В базе-источнике система определяет список изменённых объектов за время, прошедшее с предыдущего сеанса выгрузки данных.

2) По данному списку система формирует XML-пакет, который передается в базу-приемник.

Для того чтобы сформировать пакет система обращается к измененным объектам базы данных. При обращении система блокирует данные объекты.

3) XML-пакет передается в базу-приемник.

В базе-приемнике XML-пакет разворачивается и изменения, содержащиеся в нем, вносятся в базу.

Все изменения записываются в рамках одной транзакции, при этом все измененные объекты блокируются.

4. ПРИМЕРЫ РАСПРЕДЕЛЕННЫХ СИСТЕМ

Сегодня практически все крупнейшие производители систем управления базами данных предлагают решения в области управления распределенными ресурсами. Однако все эти решения поддерживают ограниченные функции построения неоднородных распределенных систем.

Среди многочисленных прототипов и научно-исследовательских систем следует упомянуть систему SDD-1 , созданную в конце 70-х -- начале 80-х годов в научно-исследовательском отделении фирмы Computer Corporation of America; систему R* , которая является распределенной версией системы System R и создана в начале 80-х годов фирмой IBM; а также систему Distributed INGRES , которая является распределенной версией системы INGRES и создана также в начале 80-х годов в Калифорнийском университете в Беркли.

Что касается коммерческих продуктов, то в настоящее время в большинстве реляционных систем предусмотрены разные виды поддержки использования распределенных баз данных с разной степенью функциональности. Среди таких систем наиболее известны система INGRES/STAR отделения Ingres Division фирмы The ASK Group Inc., система ORACLE фирмы Oracle Corporation, а также модуль распределенной работы системы DB2 фирмы IBM.

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

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

- Informix On-Line фирмы Informix Software;

- Ingres Intelligent Database фирмы Ingres Corp;

- Oracle (version 7) фирмы Oracle Corp;

- Sybase System 10 фирмы Sybase Inc.

Хотя ни одна из этих 4 СУБД полностью не реализует все функции распределенной СУБД, однако каждая из них реализует или в скором времени будет реализовывать поддержку работы с распределенной БД.

Наиболее полно функции распределенной СУБД реализованы в СУБД Ingres и Oracle . Коротко рассмотрим возможности этих пакетов.

СУБД Ingres работает на множестве UNIX-платформ, на платформах DEC VMS, Hewlett-Packard MPE, DOS, Microsoft Windows 3.1, OS/2, Macintosh. Она также работает со многими сетевыми протоколами, включая Open System Interconnection Transport Class 4. Ingres имеет средства для доступа к данным СУБД DB2, Rdb, Allbase. Основные функции распределенной СУБД обеспечиваются дополнительной компонентой Ingres/Star. Она поддерживает оптимизацию распределенных запросов, позволяет читать и обновлять в рамках одной транзакции данные разных узлов, обеспечивает возможность удалять записи одновременно в нескольких узлах.

СУБД Informix-Online разработана для среды UNIX, но может также работать под Novell. Informix-Online имеет оптимизатор запросов и реализует те же функции работы с распределенной БД, что и Ingres, однако у Informix более жесткие требования к ресурсам компьютера, в частности ему требуется больше оперативной памяти.

СУБД System 10 фирмы Sybase в настоящее время находится в состоянии разработки. Она должна работать на UNIX-платформах, на платформах OS/2, Window NT, NetWare. System 10 будет работать с несколькими сетевыми протоколами и поддерживать связь с СУБД DB2, Oracle 7, Informix-Online, Rdb. System 10 будет иметь оптимизатор распределенных запросов, она позволит читать и обновлять данные нескольких узлов. Функции работы с распределенной БД будут реализованы с помощью дополнительной компоненты Replication Server.

В 7 версии СУБД Oracle реализовано множество функций для работы с распределенной БД. Среди них следует выделить оптимизатор распределенных запросов и средство чтения и обновления данных нескольких узлов в рамках одной транзакции. Oracle v 7 работает на более чем 80 вычислительных платформах, поддерживает большинство существующих коммерческих сетевых протоколов и может обмениваться данными с СУБД DB2, SQL/DS, Tandem Computers, NonStop SQL, Rdb, HP TurboImage. Разрабатываются шлюзы еще к 18 СУБД.

В СУБД Oracle словарь данных хранится также, как остальные данные, поэтому его таблицы могут быть распределены по узлам сети. Все операции с распределенной БД "прозрачны" для пользователей и разработчиков. В области обновления распределенной БД Oracle обогнал всех своих конкурентов. Пользователи Oracle могут с помощью компоненты SQL*Net "прозрачно" работать с данными (не обязательно данными Oracle), размещающимися на различных типах компьютеров и в различных узлах сети. Высокопроизводительное средство "прозрачного" обновления распределенной БД реализовано на основе оригинально выполненного двухфазного протокола фиксации изменений.

Все 4 рассмотренные СУБД поддерживают локальную автономию узлов . Это означает, что администратор БД может рассматривать локальную БД конкретного узла как самостоятельную БД. Все СУБД поддерживают ANSI стандарт языка SQL - ANSI SQL-89 и расширение этого стандарта. Запросы к БД формулируются на языке SQL. Дополнительно к непроцедурному языку SQL Oracle поддерживает свой собственный процедурный язык PL/SQL, а Sybase поддерживает свой язык Transact-SQL.

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

Все 4 пакета обеспечивают выполнение локальной и глобальной блокировки данных. Однако они реализуют эту блокировку на различных уровнях. Так Oracle по умолчанию реализует блокировку на уровне записи, а остальные СУБД - на уровне страницы или таблицы. Механизм блокировок позволяет предотвратить изменение данных, которые в это время контролируются другими пользователями. Тем самым обеспечивается целостность и непротиворечивость данных. Блокировка на уровне записи позволяет одновременно обновлять соседние записи одной и той же таблицы. Это резко снижает время ожидания, ускоряет обработку данных и уменьшает вероятность возникновения взаимоблокировок.

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

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

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

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

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

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

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

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

Библиографический список

1. Распределенные базы данных. Википедия.

8. Коннолли, Т., Бегг, К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. - М.: Издательский дом «Вильяме», 2003. – 433 с.

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

Архитектура на основе Internet/Intranet с мигрирующими программами

Распределенная система

В литературе можно найти различные определения распределенных систем, причем ни одно из них не является удовлетворительным и не согласуется с остальными.

Для наших задач хватит достаточно вольной характеристики.

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

В этом определении оговариваются два момента. Первый относится к аппаратуре: все машины автономны.

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

Характеристики распределенных систем:

1. От пользователей скрыты различия между компьютерами и способы связи между ними. То же самое относится и к внешней организации распределенных систем.

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

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

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

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

Рис. 1.1. Распределенная система организована в виде службы промежуточного уровня.

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


Структура курса. Лекции Распределенные системы: задачи, терминология принципы функционирования. Архитектура клиент-сервер. Типовые задачи. Области применения. Пример информационной системы (типичное приложение в архитектуре клиент- сервер). Многозвенная архитектура. Области применения. Краткий обзор современных технологий. XML, CGI/JSP, Servlets, DCOM, CORBA, RMI (.NET). Выделение слоев в многозвенной архитектуре (типичная архитектура). «Тонкие» и «Толстые» клиенты. Сервер приложения (Application server). Сервер базы данных (Database Server). Миграция объектов (вопросы распределения вычислительной нагрузки). Развертывание системы. Основы CORBA. CORBA и ООП. Язык определения интерфейсов IDL. Отображение IDL на C++. Отображение IDL на Java. ОRB. Динамическое взаимодействие клиентов и серверов. Сервисы именования CORBA. Пример информационной системы, выполненной в многозвенной архитектуре.


Структура курса. Практика Лабораторная работа 1 Система обслуживания дисконтных карт Необходимый инструментарий: сервер - Oracle (MSSQL Server 2000 sp3), клиент – Java (jdk, VisualCafe, MS J++,...) Лабораторная работа 2 WMS (Warehouse Management System) Тонкий клиент (Web, HandHeld, сотовый телефон, …). Сервер приложения. Взаимодействие клиент – сервер приложений. Сервер бизнес- логики. Вопросы распределения вычислительной нагрузки. Обеспечение отказоустойчивости. Необходимый инструментарий: сервер - Oracle (MSSQL Server 2000 sp3), Приложение/бизнес-логика – Java (jdk, VisualCafe, MS J++,...)










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


Последствия... Нет глобального времени –Асинхронная передача сообщений - –Ограниченная точность синхронизации часов Нет состояния системы –Нет ни одного процесса в распределенной системе, который бы знал текущее глобальное состояние системы Следствие параллелизма и механизма передачи данных


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


Принципы разделения Функциональное разделение: узлы выполняют различные задачи –Клиент / сервер –Хост / Терминал –Сборка данных/ обработка данных Решение - создание разделяемых сервисов Естественное разделение (определяемое задачей) –Система обслуживания сети супермаркетов –Сеть для поддержки коллективной работы


Принципы разделения Распределение нагрузки/балансировка: назначение задачи на процессора так, чтобы оптимизировать общую загрузку системы. Усиление мощности: различные узлы работают над одной задачей –Распределенные системы содержащие набор микропроцессоров, по мощности могут приближаться к суперкомпьютеру –10000 CPU, каждый 50 MIPS, вместе MIPS - > команда выполняется за nsec -> свет проходит 0.6 mm -> любой существующий чип - больше! команда выполняется за 0.002 nsec -> свет проходит 0.6 mm -> любой существующий чип - больше!">


Принципы разделения Физическое разделение: система строится в предположении, что узлы физически разделены (требования к надежности, устойчивости к сбоям). Экономические: набор дешевых чипов может обеспечить лучшие показатели отношения цена/производительность, чем мэйнфрэйм –Мэйнфрэйм: 10 раз быстрее, 1000 раз дороже














Разделение ресурсов Разделение ресурсов часто является одной из причин разработки распределенной системы –Уменьшается стоимость, (file и print сервера) –Разделение данных между пользователями (совместная работа над проектом) Сервисы –Управляют набором ресурсов –Представляют услуги пользователям


Разделение ресурсов Сервер используется для предоставления сервисов –Принимает запросы на обслуживание от клиентов вызов операции –Прием сообщения/ответ на сообщение полная реализация - удаленный вызов –Роли клиента и сервера меняются от вызова к вызову один и тот же процесс может быть как клиентом, так и сервером –Терминология Клиент/Сервер применяется к процессам, а не к узлам!!!




Распространение приложения Фрагментация –разделение приложения на модули для распространения Конфигурация –Связь модулей друг с другом (зависимости) Размещение –выгрузка модулей на целевую систему –Распределение вычислительных модулей между узлами (статическое или динамическое)






Гетерогенность Middleware: промежуточный программный слой –позволяет гетерогенным узлам взаимодействовать –Определяет однородную вычислительную модель –Поддерживает один или несколько языков программирования –Обеспечивает поддержку распределенных приложений Вызов удаленных объектов Удаленный вызов SQL Распределенная обработка транзакций Примеры: CORBA, Java RMI, Microsoft DCOM


Гетерогенность Мобильный код: код разработан для миграции между узлами –Необходимо преодолевать аппаратные различия (разные наборы инструкций) Виртуальные машины –Компилятор «изготавливает» байт-код для VM –VM реализована для всех аппаратных платформ (Java) Методы грубой силы –Портируем код под каждую платформу...






Безопасность Сценарий 1: Доступ к результатам тестирования по NFS –Откуда мы знаем, что пользователь - преподаватель, имеющий доступ к данным? –Авторизация Сценарий 2: Посылка номера кредитной карты в интернет-магазин –Никто кроме получателя не должен прочитать данные –Криптография






Масштабируемость Стоимость физических ресурсов –Растет,при увеличении числа пользователей –Не должна расти быстрее, чем O (n), где n = количеству пользователей Потери производительности –Увеличиваются с ростом размера данных (и количества пользователей) –Время поиска не должно расти быстрее, чем O (log n), где n = размер данных










Параллелизм Контроль параллелизма –Обращение нескольких потоков к ресурсу Правильное планирование доступа в параллельных потоках (устранение взаимоисключений, транзакции) –Синхронизация (семафоры) Безопасно, но уменьшают производительность –Разделяемые объекты(ресурсы) должны работать корректно в многопоточной среде




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






Итоги Распределенная система: –Автономные (но соединенные средой передачи данных) узлы –Взаимодействие посредством передачи сообщений Много примеров того, что распределенные системы нужны и их нужно уметь строить Распределенные системы существуют и их нужно уметь развивать и поддерживать













Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования

РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ

Филиал РГГУ в г. Калининграде

Кафедра экономическо-управленческих и правовых дисциплин

Контрольная работа по «ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ УПРАВЛЕНИЯ»

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

Афанасьев Олег Александрович

3-го курса заочной формы обучения

специальность 080507

«Менеджмент организации»

Руководитель:

К.ф-м.н., доцент

Корнев К.П.

Калининград 2010

  • Введение 3
  • 1. 4
  • 2. Понятие распределенной базы данных. 6
  • 3. Методы поддержки целостности распределенной базы данных. 7
  • 4.Стандартизация цифрового представления документальной информации. 8
  • 5. Стандартизация определения архитектуры документа и процессов обработки(ODA/ODIF). 13
  • 6. Стандарты представления знаний. 14
  • Заключение. 18
  • Список используемой литературы. 19

Введение

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

1. Распределенная обработка данных.

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

Распределённую обработку данных используют распределенные системы обработки данных.

Распределенные системы - это системы типа "клиент-сервер".

Рис.1. обработка данных в архитектуре клиент/сервер

Итак, клиент-серверная информационная система состоит в простейшем случае из трех основных компонентов:

· сервер баз данных, управляющий хранением данных, доступом и защитой, резервным копированием, отслеживающий целостность данных в соответствии с бизнес-правилами и, самое главное, выполняющий запросы клиента;

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

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

Основные особенности архитектуры «клиент-сервер»

Одна из моделей взаимодействия компьютеров в сети получила название «клиент-сервер» (Рис. 2.). Каждый из составляющих эту архитектуру элементов играет свою роль: сервер владеет и распоряжается информационными ресурсами системы, клиент имеет возможность воспользоваться ими.

Рис. 2. Архитектура «клиент-сервер»

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

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

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

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

· функции ввода и отображения данных;

· прикладные функции, характерные для предметной области;

· фундаментальные функции хранения и управления ресурсами (базами данных);

· служебные функции.

2. Понятие распределенной базы данных

Распределенная база данных (DDB - distributed database) - это совокупность логически взаимосвязанных баз данных, распределенных в компьютерной сети. Распределенная система управления базой данных определяется как программная система, которая позволяет управлять распределенной базой данных таким образом, чтобы ее распределённость была прозрачна для пользователей. В этом определении следует уточнить две отличительных архитектурных особенности. Первая из них заключается в том, что система состоит из (возможно, пустого) множества узлов приема запросов (query site) и непустого множества узлов данных (data site). Узлы данных обладают средствами для хранения данных, а узлы приема запросов - нет. В узлах приема запросов лишь выполняются программы, реализующие пользовательский интерфейс для доступа к данным, хранящимся в узлах данных. Вторая особенность состоит в том, что узлы логически представляют собой независимые компьютеры. Следовательно, у такого узла имеется собственная основная и внешняя память, установлена собственная операционная система (может быть, одна и та же на всех узлах, а возможно, и нет) и имеется возможность выполнять приложения. Узлы связаны компьютерной сетью, а не входят в мультипроцессорную конфигурацию. Важно подчеркнуть слабую связанность процессоров, которые обладают собственными операционными системами и функционирует независимо.

3. Методы поддержки целостности распределенной базы данных

Поддержка целостности в реляционной модели данных в ее классическом понимании включает в себя 3 метода:

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

Второй метод это поддержка языковой целостности, которая состоит в том, что реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL. Не должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту.

Именно поэтому доступ к информации, хранимой в базе данных, и любые изменения этой информации могут быть выполнены только с использованием операторов языка SQL.

Третий метод это поддержка ссылочной целостности (Declarative Referential Integrity, DRI), означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:

· кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ними.

· кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношения ставится неопределенное Null значение.

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

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

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

4.Стандартизация цифрового представления документальной информации

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

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

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

В связи с вышеизложенным, в 1999 г. был принят национальный стандарт ГОСТ Р 51353, определяющий состав и содержание метаданных электронных карт в геоинформационных системах, а в 2003 г. принят непосредственно в качестве национального стандарта Российской Федерации межгосударственный стандарт ГОСТ 7.70, устанавливающий состав, содержание и представление реквизитов описания электронных информационных ресурсов, являющихся базами данных и машиночитаемыми информационными массивами. Стандарт ГОСТ 7.70 рекомендован как для регистрирующих органов, составляющих каталоги информационных ресурсов, так и для разработчиков и распространителей электронных информационных ресурсов (на сменных носителях, в глобальных и локальных сетях).

Национальные стандарты, входящие в Систему стандартов по информации, библиотечному и издательскому делу (СИБИД), нормативно упорядочивают информационные процессы, обеспечивающие доступ к информационным фондам. Например, правила библиографического описания электронных изданий устанавливает государственный стандарт ГОСТ 7.82, согласно которому описание электронных ресурсов максимально приближено к описанию традиционных документов, закрепленному в ГОСТ 7.1.

Создание и эксплуатация компьютерных систем и технологий обработки документации осуществляется на основе правил, изложенных в комплексе стандартов на автоматизированные системы и других стандартах серии «Информационная технология». Также на государственном уровне стандартизированы вопросы защиты информации и использования электронной цифровой подписи.

В частности, стандарт ГОСТ 34.601 выделяет восемь стадий в создании автоматизированных систем (АС), используемых в различных сферах деятельности, в том числе в управленческой: формирование требований к АС, разработка концепции АС, техническое задание, эскизный проект, технический проект, рабочая документация, ввод в действие, сопровождение АС.

Стандарт ГОСТ 34.602 устанавливает состав, содержание, правила оформления документа «Техническое задание на создание (развитие или модернизацию) системы», а также порядок его разработки, согласования и утверждения. В этом стандарте отмечено, что включаемые в техническое задание требования должны «не уступать аналогичным требованиям, предъявляемым к лучшим современным отечественным и зарубежным аналогам».

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

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

Следует отметить, что отраслевой терминологический стандарт по делопроизводству и архивному делу ГОСТ Р 51141, действующий с 1 января 1999 г., не в полной мере отражает новую международную терминологию и не учитывает новую техническую терминологию, возникшую в связи с применением компьютерных информационных технологий в сфере работы с информацией и документацией. Он требует актуализации на основе использования стандартов ИСО и отечественного опыта работы с документацией.

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

Утвержденное Правительством РФ «Положение о разработке, принятии, введении в действие, ведении и применении общероссийских классификаторов технико-экономической и социальной информации в социально-экономической области» содержит перечень общероссийских классификаторов, а также органов исполнительной власти, обеспечивающих разработку, ведение и применение каждого из классификаторов.

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

Следует отметить, что Росархивом и ВНИИДАД в 2007 г. разработан и введен в действие Единый классификатор документной информации Архивного фонда Российской Федерации. Этот классификатор устанавливает и закрепляет единый для всех государственных и муниципальных архивов РФ систематизированный перечень наименований и индексов объектов классификации, что создает прочную основу для формирования единого архивного информационного пространства нашей страны.

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

5. Стандартизация определения архитектуры документа и процессов обработки(ODA/ODIF)

ODA/ODIF - Office Document Architecture / Office Document Interchange Format (Архитектура офисных документов / Форма обмена офисными документами)

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

В мире сформировалась информационная среда, инфраструктура которой базируется на компьютерах и телекоммуникациях. Эта среда, построенная по технологии “клиент-сервер”, обеспечивает возможность интеграции разнородных технических и программных решений. Наряду с уже хорошо известным словом Интернет несколько лет назад появилось понятие intranet, под которым понимается применение в корпоративных сетях и системах средств и стандартов, разработанных для глобальных сетей. И для организации электронного документооборота в этих системах существуют свои стандарты и программные средства. Вероятно, разработчики систем передачи электронных документов в библиотеках должны обязательно учесть стандарт ISO 8613 (parts 1-6) “Архитектура и обменный формат для офисных документов” (Office Document Architecture (ODA) and Interchange Format (ODIF)). Этот стандарт задает метод описания электронных документов и само описание структурированной информации в виде, удобном для машинной обработки и автоматизированного обмена.

Далее следует сказать, что документы или их копии, предоставляемые пользователю, могут быть разной природы: электронные графические копии, электронные файлы в одном из текстовых форматов, ксерокопии или оригиналы, выдаваемые по МБА. Соответственно, мы должны учесть все необходимые стандарты, описывающие их форматы и кодировку (TIFF, GIF, JPEG, PDF, PostScript, CCITT Group 3/Group4 Facsimile Standard, ISO 2022 "Information Processing - 7-bit/8-bit character sets", ISO 4873 “8-bit code for Information Interchange - Structure and Rules for Implementation", ISO 6937 “Coded characters for Text Communication", ISO 8859 “8-bit single byte coded graphics character sets", CP Windows-1251, и др.). Мы должны также учесть и использовать возможности представления документов на языках HTML ("HyperText Mark-up Language") и SGML (ISO 8859 "Information Processing - Text and Office Systems - Standard Generalized Mark-up Language") с соответствующими кодовыми таблицами (UNICODE, UTF-8, ISO 10646). Технологическое обеспечение и функциональные программы электронного МБА должны предусматривать не только различные форматы, но различные способы транспортировки документов, как-то: передача данных по электронной почте, через FTP-сервер, возможно, использование каких-то других протоколов сетей передачи данных, пересылка документов по факсу или обычной почтой и т.п.

6. Стандарты представления знаний

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

Для представления знаний можно использовать семантические сети. Каждый узел такой сети представляет концепцию, а дуги используются для определения отношений между концепциями. Одна из самых выразительных и детально описанных парадигм представления знаний основанных на семантических сетях это MultiNet (акроним для Многослойные Расширенные Семантические Сети англ. Multilayered Extended Semantic Networks).

Начиная с 1960-х годов, использовалось понятие фрейма знаний или просто фрейма. Каждый фрейм имеет своё собственное имя и набор атрибутов, или слотов которые содержат значения; например фрейм дом мог бы содержать слоты цвет, количество этажей и так далее.

Использование фреймов в экспертных системах является примером объектно-ориентированного программирования, с наследованием свойств, которое описывается связью «is-a». Однако, в использовании связи «is-a» существовало немало противоречий: Рональд Брахман написал работу озаглавленную «Чем является и не является IS-A», в которой были найдены 29 различных семантик связи «is-a» в проектах, чьи схемы представления знаний включали связь «is-a». Другие связи включают, например, «has-part».

Фреймовые структуры хорошо подходят для представления знаний, представленных в виде схем и стереотипных когнитивных паттернов. Элементы подобных паттернов обладают разными весами, причем большие весы назначаются тем элементам, которые соответствую текущей когнитивной схеме). Паттерн активизируется при определённых условиях: Если человек видит большую птицу, при условии что сейчас активна его «морская схема», а «земная схема» -- нет, он классифицирует её скорее как морского орлана, а не сухопутного беркута.

Фреймовые представления объектно-центрированы в том же смысле что и Семантическая сеть: Все факты и свойства, связанные с одной концепцией, размещаются в одном месте, поэтому не требуется тратить ресурсы на поиск по базе данных.

Скрипт - это тип фреймов, который описывает последовательность событий во времени; типичный пример описание похода в ресторан. События здесь включают ожидание места, прочитать меню, сделать заказ, и так далее.

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

Под термином «Представление Знаний» чаще всего подразумеваются способы представления знаний, ориентированные на автоматическую обработку современными компьютерами, и в частности, представления, состоящие из явных объектов ("класс всех слонов", или "Клайд -- экземпляр"), и из суждений или утверждений о них ("Клайд слон", или "все слоны серые"). Представление знаний в подобной явной форме позволяет компьютерам делать дедуктивные выводы из ранее сохраненного знания ("Клайд серый").

В 1970-х и начале 1980-х были предложены, и с переменным успехом опробованы многочисленные методы представления знаний, например эвристические вопросно-ответные системы, нейросети, доказательство теорем, и экспертные системы. Главными областями их применения в то время были медицинская диагностика (к примеру MYCIN) и игры (например шахматы).

В 1980-х годах появились формальные компьютерные языки представления знаний. Основные проекты того времени пытались закодировать (занести в свои базы знаний) огромные массивы общечеловеческого знания. Например в проекте «Cyc» была обработана большая энциклопедия, и кодировалась не сама хранящаяся в ней информация, а знания, которые потребуются читателю чтобы понять эту энциклопедию: наивная физика, понятия времени, причинности и мотивации, типичные объекты и их классы. Проект Cyc развивается компанией Cycorp, Inc.; большая часть (но не вся) их базы свободно доступна.

Эта работа привела к более точной оценке сложности задачи представления знаний. Одновременно в математической лингвистике, были созданы гораздо более объёмные базы языковой информации, и они, вместе с огромным приростом скорости и объёмов памяти компьютеров сделали более глубокое представление знаний более реальным.

Было разработано несколько языков программирования ориентированных на представление знаний. Пролог, разработанный в 1972 , но получивший популярность значительно позже, описывает высказывания и основную логику, и может производить выводы из известных посылок. Ещё больше нацелен на представление знаний язык KL-ONE (1980-е).

В области электронных документов были разработаны языки явно выражающие структуру хранимых документов, такие как SGML а впоследствии XML. Они облегчили задачи поиска и извлечения информации, которые в последнее время всё больше связаны с задачей представления знаний. Веб-сообщество крайне заинтересованно в семантической паутине, в которой основанные на XML языки представления знаний, такие как RDF, Карта тем и другие используются для увеличения доступности компьютерным системам информации, хранящейся в сети.

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

Заключение

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

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

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

Список используемой литературы

1.Основы Web-технологий./ П.Б. Храмцев, С.А. Брик, А.М. Русак, А.И. Сургин / Под редакцией П.Б. Храмцова. - М.: ИНТУИТ.РУ «Интернет-университет информационных технологий», 2003. -512с.

2. Глухов В.А., Лаврик О.Л. Электронная доставка документов. - М.: ИНИОН РАН, 1999. - 132 с.

3. Фридланд А.Я. Информатика и компьютерные технологии/ А.Я. Фридланд, Л.С. Ханамирова.- М.: Астрель. 2003.- 204 с.

4. Сахаров А. А. Концепция построения и реализации информационных систем, ориентированных на анализ данных // СУБД. - 1996. - № 4. - С. 55-70.

5. Коровкин С. Д., Левенец И. А., Ратманова И. Д., Старых В. А., Щавелёв Л. В. Решение проблемы комплексного оперативного анализа информации хранилищ данных // СУБД. - 1997. - № 5-6. - С. 47-51.

6. Энсор Д., Стивенсон Й. - М.: Oracle. Проектирование баз данных: Пер. с англ. - К.: Издательская группа BHV, 1999. - 560 с.

Подобные документы

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

    курсовая работа , добавлен 07.01.2015

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

    курсовая работа , добавлен 04.09.2016

    Основные понятия, определения и классификация информационных систем, базы данных. Анализ современных мейнфреймов компании IВМ и их особенности. Виды связи в железнодорожном транспорте и ее назначение; информационные потоки в транспортных системах.

    учебное пособие , добавлен 01.10.2013

    Назначение базы данных и ее основные функции. Категории пользователей, инфологическое и даталогическое проектирование базы данных "Интернет-магазин". Учет специфики предметной области, ограничения и бизнес-правила. Описание пользовательского интерфейса.

    курсовая работа , добавлен 30.09.2011

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

    лекция , добавлен 16.10.2013

    Функциональная схема и механизм работы цифрового устройства обработки данных. Синтез управляющего автомата, выбор типа триггера, описание управляющего автомата и счётчиков на языке Verilog. Процесс тестирования и моделирования управляющего автомата.

    курсовая работа , добавлен 05.12.2012

    Общие и тактико-технические требования к конструкции бортовой аппаратуры. Блок ввода данных для энергонезависимого хранения и выдачи в бортовую ЭВМ данных полетного задания, а также приема данных регистрации. Структурная схема и разработка конструкции.

    дипломная работа , добавлен 16.04.2012

    Изучение топологии локальной вычислительной сети - совокупности компьютеров и терминалов, соединённых с помощью каналов связи в единую систему, удовлетворяющую требованиям распределённой обработки данных. Разработка ЛВС фотолаборатории. Сетевые протоколы.

    курсовая работа , добавлен 02.12.2010

    Основные понятия безопасности информационной системы. Свойства конфиденциальности, доступности и целостности данных. Защита данных в момент их передачи по линиям связи, от несанкционированного удаленного доступа в сеть. Базовые технологии безопасности.

    презентация , добавлен 18.02.2010

    Тензометрический метод оценки состояния двигательных отделов центральной нервной системы. Структурная организация тензометрического треморографа. Основные задачи статистической обработки изометрических данных. Методы корреляции и главных компонент.


    1. Распределенная ИС

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

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

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

Также внедрение производится при необходимости обеспечения контроля над изменением данных в дистанционно удаленных подразделениях организации .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SELECT...

FROM...

...;

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

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

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

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

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

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

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


    1. Архитектура "файл-сервер"

С появлением сетей данные стали хранить на файл-сервере. Это первый вид многопользовательской системы. В этом случае их поиск и обработка происходит на рабочих станциях. При таком подходе на рабочую станцию посылаются не только данные, необходимые конечному пользователю, но и данные, которые используются только для выполнения запроса (например, фрагменты индексных файлов или данные, которые будут отброшены при выполнении запроса). Таким образом, объём “лишней” информации зачастую превышает объём “нужной”.

Рис. 1.2. Схема файл-серверной архитектуры
Время реакции на запрос пользователя складывается из времени передачи данных с файл-сервера на рабочую станцию и времени выполнения запроса на рабочей станции. Чтобы время реакции такой системы было приемлемым, надо ускорить обмен данными с диском и нарастить объём оперативной памяти для кэширования данных с диска. Также желательно в качестве рабочей станции использовать мощный компьютер. Узким местом может оказаться сетевая среда, поэтому пропускная способность сетевой шины – тоже немаловажный показатель. Если растёт число одновременно работающих пользователей и объём хранимой информации, размер пересылаемой информации растёт, т.е. увеличивается сетевой трафик. И как результат, время реакции системы значительно падает. Такая технология подразумевает, что на каждой рабочей станции находится свой экземпляр СУБД, работающий с одними и теми же данными. Взаимодействие этих СУБД для синхронизации работы через промежуточное звено в виде файл-сервера приводит к дополнительным потерям .

Реальное распространение архитектуры "клиент-сервер" стало возможным благодаря развитию и широкому внедрению в практику концепции открытых систем. Поэтому мы начнем с краткого введения в открытые системы.
На предыдущей странице в заголовке упоминалась архитектура "файл-сервер", а "клиент-сервер" – это уже другая архитектура.
Основным смыслом подхода открытых систем является упрощение комплексирования вычислительных систем за счет международной и национальной стандартизации аппаратных и программных интерфейсов. Главной побудительной причиной развития концепции открытых систем явились повсеместный переход к использованию локальных компьютерных сетей и те проблемы комплексирования аппаратно-программных средств, которые вызвал этот переход. В связи с бурным развитием технологий глобальных коммуникаций открытые системы приобретают еще большее значение и масштабность.

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

Практической опорой системных и прикладных программных средств открытых систем является стандартизованная операционная система. В настоящее время такой системой является UNIX. Фирмам-поставщикам различных вариантов ОС UNIX в результате длительной работы удалось прийти к соглашению об основных стандартах этой операционной системы. Сейчас все распространенные версии UNIX в основном совместимы по части интерфейсов, предоставляемых прикладным, а в большинстве случаев и системным программистам. По мнению многих специалистов, несмотря на появление претендующей на стандарт системы Windows NT, возможно именно UNIX останется основой открытых систем в ближайшие годы .

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

Использование подхода открытых систем выгодно и производителям, и пользователям. Прежде всего, открытые системы обеспечивают естественное решение проблемы поколений аппаратных и программных средств. Производители таких средств не решают все проблемы заново. Они могут, по крайней мере, временно продолжать комплексировать системы, используя существующие компоненты. Следует заметить, что при этом возникает новый уровень конкуренции. Все производители обязаны обеспечить некоторую стандартную среду, но вынуждены добиваться ее как можно лучшей реализации. Конечно, через какое-то время существующие стандарты начнут играть роль сдерживания прогресса, и тогда их придется пересматривать.

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

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

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

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

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

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

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

Для третьих обязательно требуются мощные средства для работы с графикой и т.д.).

При необходимости можно использовать ресурсы и/или услуги (сервисы), предоставляемые сервером.

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

Примерами серверов могут служить:


  • сервер телекоммуникаций, обеспечивающий услуги по связи данной локальной сети с внешним миром;

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

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

  • файловый сервер, поддерживающий общее хранилище файлов для всех рабочих станций;

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

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

    1. Архитектура "клиент-сервер"

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

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


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

  • Клиент - это различные приложения, которые выполняются "над" СУБД: приложения, написанные пользователями, и встроенные приложения, предоставляемые поставщиками СУБД или некоторыми сторонними поставщиками программного обеспечения. Конечно, с точки зрения пользователей, нет разницы между встроенными приложениями и приложениями, написанными пользователем, - все они используют один и тот же интерфейс сервера, а именно интерфейс внешнего уровня.
Исключениями являются специальные "служебные" приложения, которые называются утилитами. Такие приложения иногда могут работать только непосредственно на внутреннем уровне системы. Утилиты скорее относятся к непосредственным компонентам СУБД, чем к приложениям в обычном смысле. В нижеследующем разделе данной лекции утилиты обсуждаются более подробно. Приложения, в свою очередь, можно классифицировать на несколько четко определенных категорий.

  1. Приложения, написанные пользователями. Это в основном профессиональные прикладные программы, написанные либо на общепринятом языке программирования, таком как С или PASCAL, либо на некоторых оригинальных языках, таких как FOCUS, хотя в обоих случаях эти языки должны как-то связываться с соответствующим подъязыком данных.

  2. Приложения, предоставляемые поставщиками (часто называемые инструментальными средствами). В целом назначение таких средств - содействовать в процессе создания и выполнения других приложений, т.е. приложений, которые делаются специально для некоторой специфической задачи (хотя созданные приложения могут и не выглядеть как приложения в общепринятом смысле). Действительно, эта категория инструментальных средств позволяет пользователям, особенно конечным, создавать приложения без написания традиционных программ. Например, одно из предоставляемых поставщиками инструментальных средств может быть процессором языка запросов, с помощью которого конечный пользователь может выдавать незапланированные запросы к системе. Каждый такой запрос является, по существу, не чем иным, как специальным приложением (например, ISQL СУБД MS SQL Server), предназначенным для выполнения некоторых специфических функций.

Поставляемые инструментальные средства, в свою очередь, делятся на несколько самостоятельных классов:


  • процессоры языков запросов;

  • генераторы отчетов;

  • графические бизнес-подсистемы;

  • электронные таблицы:

  • процессоры обычных языков;

  • средства управления копированием;

  • генераторы приложений;

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

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

Распределенная обработка предполагает, что отдельные машины можно соединить какой-нибудь коммуникационной сетью таким способом, что определенная задача, обрабатывающая данные, может быть распределена на нескольких машинах в сети. На самом деле, эта возможность настолько заманчива по различным соображениям, главным образом практическим, что термин "клиент/сервер" стал применяться исключительно в случае, если сервер и клиенты действительно находятся на разных машинах. Такое применение термина - небрежное, но очень распространенное. Технология, поддерживающая распределённую обработку данных должна обеспечивать клиенту доступ к распределённой БД точно так же, как доступ к централизованной БД. При этом данные могут храниться на локальном узле, на удалённом узле или обоих узлах – их расположение должно оставаться прозрачным как для конечного пользователя, так и для программы.

Архитектура клиент/сервер характеризуется наличием одной СУБД для всех пользователей, которая расположена на сервере. При

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

Однако время реакции в такой системе складывается из времени передачи запроса, времени ожидания ресурсов на сервере (например, процессора или дисковой операции), времени выполнения запроса и времени передачи результатов на рабочую станцию - программе-клиенту. Причём время ожидания на сервере может съедать львиную долю общего времени выполнения запроса. При разработке программ, работающих по технологии клиент-сервер, необходимо учитывать это и не обращаться к серверу за одной записью, а читать данные “пачками”.

Если сетевой трафик уменьшается, то узким местом становится компьютер, выполняющий роль сервера. Требования к нему очень высоки. В качестве сервера необходимо выбирать мощный компьютер, но мощность рабочих станций при этом увеличивать не обязательно.

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


Двухуровневая модель архитектуры клиент/сервер


Трехуровневая модель архитектуры клиент/сервер


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

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

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

Структура системы БД с выделением клиентов и сервера

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

Клиенты - это различные приложения, которые выполняются над СУБД.

Обычно в приложении выделяются следующие группы функций:


  • функции ввода и отображения данных;

  • прикладные функции, определяющие основные алгоритмы решения задач приложения;

  • функции обработки данных внутри приложения,

  • функции управления информационными ресурсами;

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

      1. Двухуровневая модель архитектуры клиент/сервер

Если все пять компонентов приложения распределяются только между двумя процессами, которые выполняются на двух платформах: на клиенте и на сервере, то такая модель называется двухуровневой. Она имеет несколько основных разновидностей. Рассмотрим их.

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

Модель файлового сервера


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

Помимо этого недостатка использование файлового сервера несет еще и другие:


  • на каждой рабочей станции должна находиться полная копия СУБД;

  • управление параллельностью, восстановлением и целостностью усложняется, поскольку доступ к одним и тем же файлам могут осуществлять сразу несколько экземпляров СУБД;

  • узкий спектр операций манипулирования данными, который определяется только файловыми командами;

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

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

Клиент обращается к серверу с запросами на языке SQL. Структура модели удаленного доступа приведена на рисунке.

Модель удаленного доступа


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

Тем не менее, данная технология обладает и рядом недостатков:


  • запросы на языке SQL при интенсивной работе клиентских приложений могут существенно загрузить сеть;

  • презентационные и прикладные функции приложения должны быть повторены для каждого клиентского приложения;

  • сервер в этой модели играет пассивную роль, поэтому функции управления информационными ресурсами должны выполняться на клиенте.
Технологию "клиент - сервер" поддерживают большинство современных СУБД: Informix, Ingres, Sybase, Oracle, MS SQL Server. В основу данной модели добавлен механизм хранимых процедур и механизм триггеров.

Механизм хранимых процедур позволяет создавать подпрограммы, работающие на сервере и управляющие его процессами.

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

Централизованный контроль целостности базы данных в модели сервера баз данных выполняется с использованием механизма триггеров. Триггеры также являются частью БД.

Триггер - это особый тип хранимой процедуры, реагирующий на возникновение определенного события в БД. Он активизируется при попытке изменения данных - при операциях добавления, обновления и удаления. Триггеры определяются для конкретных таблиц БД.

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

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

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




Модель сервера БД

  1. Зачем все эти номера???

      1. Трехуровневая модель архитектуры клиент/сервер

Трехуровневая модель является расширением двухуровневой модели и в ней вводится дополнительный промежуточный уровень между клиентом и сервером. Архитектура трехуровневой модели приведена на рисунке.



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

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

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

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


  1. Принципы построения распределенных баз данных

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

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

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

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

1. Имеется набор логически связанных разделяемых данных.

2. Сохраняемые данные разбиты на некоторое количество фрагментов.

3. Может быть предусмотрена репликация фрагментов данных.

4. Фрагменты и их копии распределяются по разным узлам.

5. Узлы связаны между собой сетевыми соединениями.

6. Доступ к данным на каждом узле происходит под управлением СУБД.

7. СУБД на каждом узле способна поддерживать автономную работу локальных приложений.

8. СУБД каждого узла поддерживает хотя бы одно глобальное приложение.

Что такое УЗЕ на этом рисунке??

Компьютерная

Рис. 2.1. – Топология распределенной СУБД

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

Очень важно понимать различия между распределенными СУБД и средствами распределенной обработки данных.

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

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


    1. Преимущества и недостатки распределенных СУБД
Распределенные системы баз данных имеют дополнительные преимущества перед традиционными централизованными системами баз данных. К сожалению, эта технология не лишена и некоторых недостатков.

      1. Преимущества

        1. Отражение структуры организации.
Крупные организации, как правило, имеют множество отделений, которые могут находиться в разных концах страны и даже за ее пределами.

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

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

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

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

        1. Экономические выгоды.
В 1960-е годы мощность вычислительных средств возрастала пропорционально квадрату стоимости ее оборудования, поэтому система, стоимость которой была втрое выше стоимости данной, превосходила ее по мощности в девять раз. Эта зависимость получила название закона Гроша (Grosch). Однако в настоящее время считается общепринятым положение, согласно которому намного дешевле собрать из небольших компьютеров систему, мощность которой будет эквивалентна мощности большого компьютера. Оказывается, что намного выгоднее устанавливать в подразделениях организации собственные маломощные компьютеры, кроме того, гораздо дешевле добавить в сеть новые рабочие станции, чем модернизировать систему с мейнфреймом.

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


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

      1. Недостатки

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

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

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

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

        1. Отсутствие стандартов.
Хотя вполне очевидно, что функционирование распределенных СУБД зависит от эффективности используемых каналов связи, только в последнее время стали вырисовываться контуры стандартов на каналы связи и протоколы доступа к данным. Отсутствие стандартов существенно ограничивает потенциальные возможности распределенных СУБД. Кроме того, не существует инструментальных средств и методологий, способных помочь пользователям в преобразовании централизованных систем в распределенные.

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

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

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

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

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

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

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


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

1. Прозрачность размещения.

2. Прозрачность транзакций.

3. Прозрачность выполнения.

4. Прозрачность использования СУБД.

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


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

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

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

        1. Прозрачность репликации.
С прозрачностью местонахождения очень тесно связан еще один тип прозрачности – прозрачность репликации. Он означает, что пользователю не требуется иметь сведения о существующих копиях фрагментов. Под прозрачностью репликации понимается прозрачность местонахождения копий.

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

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

1. Утрата определенной части локальной автономии.

2. Появление проблем с производительностью (поскольку центральный узел превращается в узкое место всей системы).

3. Снижение доступности – если центральный узел по какой-либо причине станет недоступным, все остальные узлы системы не смогут создавать новые объекты базы данных.

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

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


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

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

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

1. К какому фрагменту следует обратиться.

2. Какую копию фрагмента использовать, если его данные участвуют в репликации.

3. В какое место хранения данных следует обратиться.

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

1. Время доступа, включающее физический доступ к данным на диске.

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

3. Время, необходимое для передачи данных по сетевым соединениям.

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


      1. Прозрачность использования СУБД
Прозрачность использования СУБД позволяет скрыть от пользователя распределенной СУБД тот факт, что на разных узлах могут функционировать различные локальные СУБД. Поэтому данный тип прозрачности применим только в случае разнородных распределенных систем. Как правило это один из самых сложных в реализации типов прозрачности.

    1. Двенадцать правил Дейта
Основной принцип. С точки зрения конечного пользователя распределенная система должна выглядеть точно так же, как и обычная нераспределенная система.

Правило 1. Локальная автономность.

Узлы в распределенной системе должны быть автономными. В данном контексте автономность означает следующее:

1. Локальные данные принадлежат локальным владельцам и сопровождаются локально.

2. Все локальные операции остаются сугубо локальными.

3. Все операции на заданном узле контролируются только этим узлом.

Правило 2. Отсутствие зависимости от центрального узла.

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

Правило 3. Непрерывное функционирование.

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

1. Добавление и удаление узла из системы.

2. Динамическое создание и удаление фрагментов из одного или нескольких узлов.

Правило 4. Независимость от местонахождения.

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

Правило 5. Независимость от фрагментации.

Пользователь должен получать доступ к данным независимо от способа их фрагментации.

Правило 6. Независимость от репликации.

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

Правило 7. Обработка распределенных запросов.

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

Правило 8. Обработка распределенных транзакций.

Система должна поддерживать выполнение транзакции как единицы восстановления. Система должна гарантировать, что глобальные и локальные транзакции будут выполняться с сохранением четырех основных свойств транзакций: неразрывности, согласованности, изолированности и устойчивости.

Правило 9. Независимость от типа оборудования.

Распределенная СУБД должна функционировать на оборудовании с различными вычислительными платформами.

Правило 10. Независимость операционной системы.

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

Правило 11. Независимость от сетевой архитектуры.

Распределенная СУБД должна функционировать в среде самых различных сетей связи.

Правило 12. Независимость от базы данных.

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

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


  1. Возможности СУБД Oracle для построения распределенных баз данных

    1. Распределенная СУБД Oracle

Корпорация Oracle первой ввела распределенные базы данных еще в начале 1980-х в ответ на требования организовать доступ к данным на разных платформах.

Как и многие другие коммерческие распределенные СУБД, Oracle не поддерживает механизм фрагментации того типа, который был описан выше, но администратор базы данных может распределить данные вручную для достижения аналогичного эффекта. Но в таком случае конечный пользователь обязан знать, каким образом фрагментирована таблица, и учитывать эти сведения в процессе эксплуатации приложения. Иными словами распределенная СУБД Oracle не поддерживает прозрачность фрагментации. Тем не менее эта СУБД поддерживает прозрачность местонахождения.

Распределенные базы данных Oracle могут быть объединены за счет установки связей между отдельными базами. Применяя представления, процедуры и синонимы программист может делать доступ к этим распределенным источникам данных прозрачным для конкретного местоположения.

Для выполнения запросов распределенные базы данных Oracle связываются за счет установки и поддержания связей баз данных. Чаще всего связь базы данных (database link) создается ее администратором, ответственным за управление доступом к распределенным источникам данных.

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

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

Р
Database link

identified by…


Database

EMP
DEP
Insert into EMP@SALES … ;

delete from DEP … ;

select … from EMP@SALES … ;


Приложение

установления как приватных, так и общедоступных связей.

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

Рис. 3.1 – Схема работы database link

Что такое СЕРВЕ на этом рисунке??

Связь базы данных задает следующую информацию:

1. Сетевой протокол (например, TCP/IP), который используется для соединения.

2. Имя удаленного хоста (компьютера в сети), на котором находится удаленная база данных.

3. Имя базы данных на удаленном хосте.

4. Наименование учетной записи для доступа к удаленной базе данных.

5. Пароль к этой учетной записи.

Локальная БД

Удаленная

Рис. 3.2. – Схема подключения к удаленной БД

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

create database link

connect to {current_user | identified by
}

using "(DESCRIPTION =



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: