Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uch_pos.docx
Скачиваний:
213
Добавлен:
20.03.2016
Размер:
423.96 Кб
Скачать

5. Базы данных в сетях

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

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

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

В этой главе мы рассмотрим некоторые варианты распределенной обработки данных .

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

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

  1. СУБД в архитектуре "клиент-сервер".

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

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

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

  • хранение и резервное копирование данных;

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

  • обеспечение авторизованного доступа к данным на основе проверки прав и привилегий пользователей;

  • протоколирование операций и ведение журнала транзакций (сущность транзакции будет рассмотрена ниже).

Клиентские узлы поддерживают пользовательские интерфейсы и функциональность приложений.

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

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

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

  2. Прикладные функции, определяющие основные алгоритмы решения задач (Business Logic – бизнес-логика).

  3. Функции обработки данных внутри приложения (Database Logic – логика обработки данных).

  4. Функции управления информационными ресурсами (Database Manager Logic). Это собственно СУБД, обеспечивающая хранение и управление базами данных.

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

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

В модели удаленного доступа к данным (Remote Data Access, RDA) на сервере хранится база данных и ядро СУБД. На клиенте располагается презентационная логика и бизнес-логика. Клиент обращается к серверу с запросом на языке SQL, либо посредством средств пользовательского интерфейса (API). Данную модель поддерживает большое число серверных СУБД, имеющих SQL-интерфейсы, и инструментальных средств, обеспечивающих создание клиентской части.

Модель сервера БД ( Database Server – DBS) характеризуется тем, что функции компьютера-клиента ограничиваются презентационной логикой. Большая часть бизнес-логики переложена на сервер. Иногда такую модель называют моделью с "тонким клиентом". Эта модель является более технологичной, чем RDA и применяется в таких СУБД как Informix, Ingres, Sybase, Oracle, SQL MS Server.

Существуют и более сложные варианты реализации архитектуры "клиент-сервер", например, трехзвенные информационные системы с использованием серверов приложений, реализующих бизнес-логику информационной системы (модель сервера приложений – Application Server (AS)) (рис. 63).

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

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

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

Транзакцией называется совокупность операций манипулирования данными (вставкой, удалением, выборкой, обновлением) в системах баз данных, которая переводит базу данных из одного целостного (непротиворечивого) состояния в другое целостное состояние. Транзакция рассматривается как некоторое неделимое с точки зрения пользователя действие над базой данных. Например, транзакцией может быть последовательность операций по формированию заказа на сборку компьютера в компьютерной фирме: ввод нового заказа с реквизитами заказчика, формирование платежного документа, запрос на комплектующие. С точки зрения сотрудника компьютерной фирмы, это единая операция: если она будет прервана, то база данных потеряет свое целостное состояние. Восстановление данных в СУБД является составной часть управления данными и подразумевает восстановление самой базы данных, т.е. возвращение базы данных в правильное состояние в случае изменения данных в результате сбоя. Восстановление данных реализуется через механизм транзакций. Завершение транзакции означает, что все операции, входящие в состав транзакций, успешно завершены и результат их работы сохранен в базе данных. Откат транзакции означает, что все уже выполненные операции отменяются и все объекты базы данных, затронутые этими операциями возвращены в исходное состояние. Для реализации возможности отката транзакций большинство СУБД поддерживают запись в журналы транзакций, позволяющие сохранять промежуточные состояния и восстанавливать исходные данные при откате. Существуют различные модели транзакций [10,14, 26 и др.].

Под монитором обработки транзакций (Transaction Processing Monitor – TPM) понимаются средства программного обеспечения промежуточного слоя, предназначенные для обеспечения эффективного управления информационными и вычислительными ресурсами в распределенных системах при обработке транзакций. Понятие транзакции в TPM шире, чем транзакция в СУБД. Основными функциями TPM являются: аутентификация пользователей и проверка полномочий доступа, управление коммуникациями, необходимыми для выполнения транзакций, собственно управление транзакциями, включая управление блокировкой ресурсов, журнализацию, фиксацию, откаты и восстановление транзакций [15].

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]