- •Содержание
- •Предисловие
- •Введение
- •1. Основные понятия баз данных
- •1.1. Банк данных и его компоненты
- •Пользователи
- •Прикладные
- •1.2. Модели данных
- •2. Целостность баз данных
- •Условие на значение “Парус” or “Волна” or “Лотос”
- •3. Внутренняя организация субд
- •3.1. Общие положения
- •3.2. Линейный список
- •3.3. Инвертированный список
- •3.4. Индексы
- •3.5. Хеширование
- •Область переполнения
- •3.6. Кластеризация
- •4. Распределенная обработка данных
- •4.1. Режимы работы с базой данных
- •Параллельный
- •4.2. Архитектура «клиент-сервер»
- •Приложения
- •4.3. Модели «клиент-сервер»
- •4.4. Управление распределенными данными
- •5. Восстановление баз данных
- •5.1. Транзакции
- •5.2. Журнал транзакций
- •5.3. Выполнение транзакций в многопользовательских системах
- •6. Защита баз данных
- •7. Основы проектирования реляционных баз данных
- •7.1. Этапы проектирования
- •7.2. Построение концептуальной модели предметной области
- •7.3. Логическое проектирование базы данных
- •7.4. Нормализация отношений
- •7.5. Автоматизированные технологии проектирования баз данных
- •Заключение
- •Библиографический список
4.3. Модели «клиент-сервер»
Технологии работы с базами данных предусматривают выполнение следующих основных функций:
1. Ввод и отображение данных.
2. Решение прикладных задач.
3. Управление информационными ресурсами (реализуется СУБД).
В зависимости от распределения перечисленных функций между клиентом и сервером выделяют несколько различных моделей «клиент-сервер».
Модель удаленного управления данными (файлового сервера File Server, FS)
В этой модели все основные функции, включая управление информационными ресурсами, выполняются клиентом, сервер обеспечивает только доступ к файлам базы данных (рис. 11):
Клиент Сервер База данных
Ввод и отображение
данных Решение
прикладных задач СУБД
Система управления
файлами
Блоки данных
Рис. 11. Модель файлового сервера
В ситуациях, когда приложению необходимы данные для решения выполняемой им задачи, оно обращается с запросом к системе управления базами данных. СУБД переводит поступивший запрос в файловые команды. Система управления файлами в соответствии с этими командами извлекает из базы данных блоки информации и передает их для обработки клиенту. Если в полученном блоке данных нет нужных приложению сведений, рассмотренная процедура повторяется до тех пор, пока проблема не будет решена.
Модель файлового сервера может быть реализована с помощью сетевой (предназначенной для работы в локальной вычислительной сети, ЛВС) или несетевой СУБД.
Когда компьютер не подключен к сети, процесс обработки базы данных не отличается от обычного режима работы на автономном компьютере. При работе в ЛВС с несетевой СУБД, клиенту (в данной ситуации рабочей станции) с сервера передаются один или несколько файлов базы данных для их последующей обработки. По окончании работы файлы базы данных возвращаются на сервер для согласования хранящейся в них информации. Очевидно, что при совместной работе с базой данных нескольких пользователей возможно нарушение целостности данных [ 15 ].
При использовании сетевых СУБД непосредственно их средствами осуществляется контроль над непротиворечивостью изменений в базе данных. Это достигается применением механизма блокировок, ограничивающего возможности доступа пользователей к объектам базы данных (см. п. 4.4).
Основной недостаток модели файлового сервера заключается в большом объеме данных, передаваемых по телекоммуникационной вычислительной сети. При этом доля информации, необходимой для работы приложения, в этом объеме может быть весьма незначительной.
Несмотря на отмеченные недостатки, модель файлового сервера положена в основу архитектуры большинства настольных СУБД: MS Access, Paradox, FoxPro и т. д.
Модель удаленного доступа к данным (Remote Data Access, RDA)
В этой модели функции СУБД и выборки данных реализуются сервером, клиент выполняет операции ввода и отображения данных и решает прикладные задачи (рис. 12):
Клиент Сервер База данных
Ввод и отображение
данных Решение
прикладных задач
СУБД
Результаты запросов
Рис. 12. Модель удаленного доступа
В процессе работы клиент обращается к серверу с запросами на языке SQL (Structured Query Language – язык структурированных запросов). Ответы на эти запросы представляют собой не блоки данных большого объема, часто включающие излишнюю информацию, а конкретные данные, необходимые приложению для решения прикладной задачи.
В модели удаленного доступа к данным объемы информации, передаваемой по сети, существенно меньше, чем в модели файлового сервера. Тем не менее они могут оставаться довольно значительными. Другими недостатками рассматриваемой модели являются сложность разработки, модернизации и обслуживания системы, а также относительная пассивность сервера [ 4 ].
Модель сервера баз данных (DataBase Server, DBS)
В этой модели, в отличие от модели удаленного доступа к данным, клиент выполняет только функции ввода и отображения данных, прикладные функции реализуются сервером с помощью хранимых процедур (см. рис. 13):
Клиент Сервер База данных
В
Реализация хранимых
процедур СУБД
Ввод и отображение
данных
Результаты
выполнения
процедур
Рис. 13. Модель сервера баз данных
Хранимые процедуры представляют собой программы, которые хранятся в базе данных (обычно в ее словаре) и управляются СУБД. Одна процедура может быть востребована несколькими клиентами.
В процессе работы клиент обращается к серверу, вызывая необходимую процедуру. Сервер выполняет процедуру и фиксирует все возникшие при этом изменения в базе данных, а также возвращает клиенту полученные результаты. Такая технология существенно уменьшает объем информации, передаваемой между клиентом и сервером.
В рассматриваемой модели сервер является активным, через механизм триггеров (действий, выполняющихся автоматически при возникновении определенных событий или ситуаций в БД) он может самостоятельно инициировать обработку информации в базе данных [ 4 ].
Модель сервера баз данных применяется в СУБД MS SQL Server, Oracle, Informix, Ingress и т. д.
Основными недостатками данной модели являются большая загрузка сервера и зависимость хранимых процедур от СУБД, для которой они разработаны.
Модель сервера приложений (Application Server, AS)
Эта модель позволяет уменьшить нагрузку на сервер. В отличие от рассмотренных двухуровневых моделей она является трехуровневой (рис. 14):
Клиент Сервер приложений Сервер БД База данных
З апуск
Ввод и отображение
данных
Реализация
прикладных функций
СУБД
Результаты
выполнения
процедур
Рис. 14. Модель сервера приложений
Сервер приложений предоставляет некоторые общие услуги клиентам. Сервер баз данных обеспечивает выполнение только непосредственных функций СУБД: создания, ведения, хранения, поддержания целостности баз данных и т. д.
Достоинствами модели сервера приложений являются ее гибкость и универсальность. Основной недостаток – высокие затраты ресурсов серверов.
В качестве примеров программ, поддерживающих работу серверов приложений, можно привести BEA WebLogic Server, Inprise Application Server и IBM WebSphere Application Server [ 15 ].