- •Основы систем управления базами данных
- •2.1. Традиционный подход к организации данных
- •2 .2. Система баз данных
- •2.2.1. Данные
- •2.2.2. Аппаратное обеспечение
- •2.2.2. Программное обеспечение
- •2.2.4. Пользователи
- •2.2. Преимущества и недостатки современного подхода к организации данных
- •2.4. Классификация систем баз данных
- •2.5. Архитектура клиент/сервер
- •2.5.1. Компоненты приложений клиент/сервер
- •2.5.2. Разделение клиента и сервера
- •2.5.2. Преимущества и перспективы системы клиент/сервер
- •2.6. Общие понятия реляционного подхода к организации данных
- •2.6.1. Базовые понятия реляционных баз данных
- •Тип данных
- •Отношение
- •2.6.2. Общая характеристика реляционной модели данных
- •2.6.2. Манипулирование данными с помощью языка запросов sql
- •2.7. Основы проектирования реляционных баз данных
- •2.7.1. Основные требования при проектировании бд
- •2.7.2. Основы классической методологии проектирования бд
- •2.7.2. Основные этапы проектирования базы данных
- •2.7.4. Обеспечение свойств бд в процессе проектирования
- •2.8. Проектирование реляционных баз данных с использованием принципов нормализации
- •2.8.1. Первая нормальная форма
- •2.8.2. Вторая нормальная форма
- •2.8.2. Третья нормальная форма
- •2.9. Семантическое моделирование данных. Диаграммы «сущность–связь»
- •2.9.1. Основные понятия
- •2.9.2. Методология idef1
- •2.10. Информационное моделирование с помощью case-средства eRwin
- •2.10.1. Общая характеристика программы eRwin
- •2.10.2. Этапы построения информационной модели в eRwin
- •2.11. Проектирование базы данных доменного производства
- •2.11.1. Концептуальное и логическое проектирование
- •Характеристика вспомогательных сущностей
- •Данные по доменному переделу, приведенные
- •2.11.2. Физическая реализация информационной модели
- •2.12. Контрольные вопросы
2.5. Архитектура клиент/сервер
Архитектура клиент/сервер в той или иной форме стала общераспространенной при общении с компьютерной информационной системой. Приложение, разработанное в архитектуре клиент/сервер, можно определить как состоящее из нескольких частей других приложений, выполняемых на различных компьютерных системах. Одно из основных назначений архитектуры клиент/сервер – достижение высокоэффективного использования ресурсов компьютера – процессора, оперативной и внешней памяти, периферийных устройств – путем разбиения имеющейся задачи на более мелкие части (процессы) и возможность распределения работы по выполнению задачи между двумя или более доступными компьютерами. Правильное построение приложения клиент/сервер предполагает, что процессы протекают именно там, где наиболее эффективно выполняется работа, специфичная для каждого из них.
2.5.1. Компоненты приложений клиент/сервер
Ключ к успешному выполнению программы клиент/сервер – баланс ее различных компонентов. Можно реализовать очень простую и недорогую архитектуру, эффективную для небольшого числа пользователей и/или простых приложений. Однако для поддержки большого числа пользователей или очень сложного приложения необходима более сложная архитектура.
Для реализации компьютерного приложения с архитектурой клиент/сервер в первую очередь необходимо понимание функций различных уровней, обычно существующих внутри этого приложения. На рис. 2.7 показаны некоторые потенциальные уровни любого приложения, которое функционирует в общем случае на одном компьютере.
Крайним слева на этом рисунке изображен конечный пользователь-клиент данной архитектуры – тот, кто запрашивает услуги приложения. Общение пользователя с приложением происходит через пользовательский интерфейс, который обеспечивает непосредственный ввод данных, запросов к системе на извлечение данных, а также представление информации в удобном для пользователя виде.
При продвижении по схеме слева направо каждый из уровней, расположенных левее, можно рассматривать в качестве клиента для сервера, формируемого уровнями, расположенными правее. Так, пользователь приложения через свой интерфейс запрашивает выполнение прикладной задачи, например ввод данных о химическом анализе пробы чугуна, расчет израсходованного за смену кокса в доменном цехе или оформление квартального отчета. Для системы баз данных прикладная задача представляет собой последовательность команд, обрабатываемых управляющей программой, как правило, операционной системой, и требующей для этого выделения ресурсов компьютера – процессора, оперативной и внешней памяти и др.
Прикладные задачи приложения должны соответствовать бизнес-правилам, или коммерческим ограничениям, которые позволяют установить характерные для прикладной (предметной) области ограничения на вводимые данные. С их помощью производится логическая проверка вводимой информации, контроль за правильностью и полнотой заполнения базы данных. В общем случае такие ограничения могут быть произвольной сложности и включать в себя запросы на проверку информации из нескольких таблиц базы данных, в том числе и расположенных на других компьютерах. Например, оператор не может ввести данные химического анализа кокса, если предварительно не была введена информация о дате взятия соответствующей пробы на анализ.
Требования предметной области (бизнес-правила) подчиняются правилам целостности данных. Целостность, как уже было отмечено, – это состояние данных, когда они сохраняют свое информационное содержание и однозначность при физических модификациях базы данных, т.е. замене, добавлении, удалении данных, а также в условиях случайных воздействий (сбой системы). Например, данные о результатах химического анализа может вводить и корректировать только пользователь с соответствующими правами доступа к базе данных, при этом все вводимые величины должны выражаться двузначным неотрицательным числом.
Отметим принципиальное отличие бизнес-правил от правил целостности. Правила целостности используют для описания (при проектировании структуры данных) и поддержания (в процессе функционирования информационной системы) точности и корректности данных, хранящихся в базе данных. В соответствии с концепцией централизованного хранения и управления данными, которая, как уже было отмечено, заложена в основу создания большинства современных информационных систем, база данных используется для обслуживания многих прикладных программ из нескольких предметных областей. В каждой предметной области существуют свои, специфические правила, которые учитываются при проектировании базы данных в виде правил целостности. Уровень бизнес-правил позволяет выполнить логическую проверку вводимых данных на соответствие требованиям предметной области, сформировав соответствующий запрос на следующий уровень – проверку правил целостности данных. Важно подчеркнуть, что на следующий уровень посылается запрос в виде какой-либо логической функции, но не сами данные прикладной программы.
Например, база данных доменного цеха обслуживает множество прикладных программ, в том числе для мастера печи, технологической группы и экономистов. Очевидно, что задачи, решаемые с помощью прикладных программ, для всех групп специалистов различны. Каждая прикладная программа отвечает за правильный ввод и корректировку своей части информации, вводимой в общую базу данных. Информация по загружаемым шихтовым материалам формируется в базе данных от нескольких клиентов: мастер печи вводит количество загружаемых в печь материалов, технологи – данные по химическому анализу, экономисты – стоимостные характеристики. Очевидно, что при вводе и корректировке соответствующей информации возникают свои специфические требования. Например:
число, отражающее количество загружаемых шихтовых материалов, не должно превышать определенную величину, соответствующую общему количеству материалов в бункерах. Поэтому на следующий уровень отправляется запрос о суммарном количестве шихтовых материалов в бункерах;
данные по химическому анализу материалов должны вводиться только определенным пользователем. На следующий уровень посылается запрос на проверку прав зарегистрировавшегося пользователя вводить указанную информацию;
данные о стоимости шихтовых материалов не должны превышать величины, указанной в приходном ордере для партии этих материалов. На следующий уровень посылается запрос о проверке этого ограничения.
В случае соответствия данных правилам целостности осуществляется доступ к базе данных, который использует устройство доступа к файлам данных, управляемое средствами операционной системы. Среди функций, обеспечиваемых этими уровнями, можно отметить следующие:
разграничение прав доступа к базе данных пользователей (чтение, изменение или удаление данных);
возможность одновременной работы нескольких пользователей с базой данных (многопользовательский доступ).
Отметим, что именно благодаря программному разделению системы на несколько уровней, выполняющих свои специфические функции, появилась возможность физической обработки данных на разных компьютерах (клиенте и сервере), т.е. распределенной обработки. Эта возможность настолько важна, что термин «клиент/сервер» стал применяться главным образом в случае, если сервер и клиент находятся на разных компьютерах.