Тема №21

21 СИСТЕМЫ ОБРАБОТКИ МНОГОПОЛЬЗОВАТЕЛЬСКИХ БАЗ ДАННЫХ

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

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

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

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

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

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

• рабочие станции — компьютеры, имеющие удаленный доступ к этим ресурсам.

Сервер компьютерной сети представляет собой компьютер, обладающий высоким быстродействием и большими объемами памяти.

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

21.1 Обработка в многотерминальных системах

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

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

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

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

На рисунке 21.1 изображена описанная вычислительная архитектура.

Рисунок 21.1 – Многотерминальная система

21.2 Системы совместного использования файлов. Архитектура файл/сервер

Архитектура с совместным использованием файлов (file-sharing) получила название «архитектура файл/сервер». Она представлена на рисунке 21.2.

Рисунок 21.2 – Архитектура файл/сервер

В данной архитектуре компьютеры объединены в сеть.

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

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

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

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

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

Основными недостатками такой системы явлюются:

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

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

21.3 Архитектура клиент/сервер

Архитектура клиент/серверной системы (client server system) обеспечивает более эффективную работу с многопользовательской базой данных, чем архитектура файл/сервер. Централизация хранения и обработки данных является базовым принципом этой компьютерной архитектуры. Она представлена на рисунке 21.3.

Рисунок 21.3 – Архитектура клиент/сервер

На сервере сети устанавливаются операционная система (ОСсеть), мощная серверная СУБД (сервер баз данных) и размещается база данных.

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

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

В роли клиентских компьютеров могут выступать компьютеры разного типа — мэйнфреймы, мини-ЭВМ, персональные компьютеры.

Современные компьютеры-серверы — это мощные персональные компьютеры, имеющие несколько процессоров, большую оперативную память, несколько жестких дисков с общим объемом памяти в несколько Тбайт. Наиболее известными производителями компьютеров-серверов являются фирмы Hewlett Packard, Dell, FUJITSU-SIEMENS, IBM, ACER.

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

В основе клиент/серверных технологий лежит известная идея распределения обязанностей.

На клиентском компьютере приложение формирует SQL-запрос к базе данных.

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

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

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

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

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

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

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

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

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

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

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

21.4 Системы обработки распределенных баз данных

В системах обработки распределенных баз данных (distributed database system) реализуется децентрализованная обработка данных. Она предполагает, что базы данных находятся на компьютерах сети, на них устанавливается локальная СУБД и можно обрабатывать данные в автономном режиме.

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

Рисунок 21.4 – Архитектура системы обработки РаБД

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

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

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

При создании и ведении РаБД могут быть реализованы следующие стратегии распределения данных по компьютерам:

• разделения — нереплицирования;

• неразделения — реплицирования;

• разделения — реплицирования.

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

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

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

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

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

Рисунок 21.5 – Пример горизонтальной фрагментации

При вертикальной фрагментации таблица СЛУЖАЩИЕ разделяется на совокупности столбцов (полей), которые хранятся на различных компьютерах (рисунок 21.6).

Рисунок 21.5 – Пример вертикальной фрагментации

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

Достоинства РаБД:

• более полно отражается территориально распределенная структура предприятия;

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

К недостаткам РаБД следует отнести повышенную сложность их практической реализации.