Базы данных

Конспект лекций | назад | содержание | вперед

Тема 1.7. Архитектура многопользовательских СУБД В этом разделе мы познакомимся с различными типовыми архитектурными решениями, используемыми при реализации многопользовательских СУБД, а именно со схемами обычной телеобработки, файловым сервером и технологией "клиент/сервер". 1.7.1. Телеобработка Традиционной архитектурой многопользовательских систем раньше считалась схема, получившая название "телеобработки", при которой один компьютер с единственным процессором был соединен с несколькими терминалами так, как показано на рис. 1.14. При этом вся обработка выполнялась в рамках единственного компьютера, а присоединенные к нему пользовательские терминалы были типичными "неинтеллектуальными" устройствами, не способными функционировать самостоятельно. С центральным процессором терминалы были связаны с помощью кабелей, по которым они посылали сообщения пользовательским приложениям (через подсистему управления обменом данными операционной системы). В свою очередь, пользовательские приложения обращались к необходимым службам СУБД. Таким же образом сообщения возвращались назад на пользовательский терминал. К сожалению, при такой архитектуре основная и чрезвычайно большая нагрузка возлагалась на центральный компьютер, который должен был выполнять не только действия прикладных программ и СУБД, но и значительную работу по обслуживанию терминалов (например, форматирование данных, выводимых на экраны терминалов). В последние годы был достигнут существенный прогресс в разработке высокопроизводительных персональных компьютеров и составленных из них сетей. При этом во всей индустрии наблюдается заметная тенденция к децентрализации, т.е. замене дорогих мейнфреймов более эффективными, с точки зрения эксплуатационных затрат, сетями персональных компьютеров, позволяющими получить такие же результаты, если не лучше. Эта тенденция привела к появлению следующих двух типов архитектуры СУБД: технологии файлового сервера и технологии "клиент/сервер". Рис. 1.14. Топология архитектуры телеобработки 1.7.2. Файловый сервер В среде файлового сервера обработка данных распределена в сети, обычно представляющей собой локальную вычислительную сеть (ЛВС). Файловый сервер содержит файлы, необходимые для работы приложений и самой СУБД. Однако пользовательские приложения и сама СУБД размещены и функционируют на отдельных рабочих станциях, и обращаются к файловому серверу только по мере необходимости получения доступа к нужным им файлами — как показано на рис. 1.15. Таким образом, файловый сервер функционирует просто как совместно используемый жесткий диск. СУБД на каждой рабочей станции посылает запросы файловому серверу по всем необходимым ей данным, которые хранятся на диске файл-сервера. Такой подход характеризуется значительным сетевым графиком, что может привести к снижению производительности всей системы в целом. Рассмотрим, например, ситуацию, когда пользователь посылает запрос на выборку данных обо всех сотрудниках отделения компании, находящегося в Барнауле. Эту задачу можно сформулировать в помощью SQL-оператора. Поскольку файловый сервер не понимает команд на языке SQL, СУБД должна запросить у файлового сервера файлы, соответствующие отношениям Филиал и Персонал, а не искомые имена сотрудников. Таким образом, архитектура с использованием файлового сервера обладает следующими основными недостатками. 1. Большой объем сетевого графика. 2. На каждой рабочей станции должна находиться полная копия СУБД. 3. Управление параллельностью, восстановлением и целостностью усложняется, поскольку доступ к одним и тем же файлам могут осуществлять сразу несколько экземпляров СУБД. Рис. 1.15. Архитектура с использованием файлового сервера 1.7.3. Технология „клиент/сервер" Технология "клиент/сервер" была разработана с целью устранения недостатков, имеющихся в первых двух подходах. "Клиент/сервер" означает такой способ взаимодействия программных компонентов, при котором они образуют единую систему. Как видно из самого названия, существует некий клиентский процесс, требующий определенных ресурсов, а также серверный процесс, который эти ресурсы предоставляет. При этом совсем необязательно, чтобы они находились на одном и том же компьютере. На практике принято размещать сервер на одном узле локальной сети, а клиенты — на других узлах. На рис. 1.16 показана архитектура типа "клиент/сервер". Рис. 1.16. Схема построения систем с архитектурой "клиент/сервер" В контексте базы данных клиент управляет пользовательским интерфейсом и логикой приложения, действуя как сложная рабочая станция, на которой выполняются приложения баз данных. Клиент принимает от пользователя запрос, проверяет синтаксис и генерирует запрос к базе данных на языке SQL или другом языке базы данных, который соответствует логике приложения. Затем он передает сообщение серверу, ожидает поступления ответа и форматирует полученные данные для представления их пользователю. Сервер принимает и обрабатывает запросы к базе данных, а затем передает полученные результаты обратно клиенту. Такая обработка включает проверку полномочий клиента, обеспечение требований целостности, поддержку системного каталога, а также выполнение запроса и обновление данных. Помимо этого, поддерживается управление параллельностью и восстановлением. Выполняемые клиентом и сервером операции приведены в табл. 2.3. Таблица 2.3. Функции, выполняемые участниками взаимодействия в среде „клиент/сервер"
Клиент | Сервер
Управляет пользовательским интерфейсом | Принимает и обрабатывает запросы к базе данных со стороны клиентов
Принимает и проверяет синтаксис введенного пользователем запроса | Проверяет полномочия пользователей
Выполняет приложение | Гарантирует соблюдение ограничений целостности
Генерирует запрос к базе данных и передает его серверу | Выполняет запросы/обновления и возвращает результаты клиенту
Отображает полученные данные пользователю | Поддерживает системный каталог
| Обеспечивает параллельный доступ к базе данных
| Обеспечивает управление восстановлением
Этот тип архитектуры обладает приведенными ниже преимуществами. Обеспечивается более широкий доступ к существующим базам данных. Повышается общая производительность системы. Поскольку клиенты и сервер находятся на разных компьютерах, их процессоры способны выполнять приложения параллельно. При этом настройка производительности компьютера с сервером упрощается, если на нем выполняется только работа с базой данных. Стоимость аппаратного обеспечения снижается. Достаточно мощный компьютер с большим устройством хранения нужен только серверу — для хранения и управления базой данных. Сокращаются коммуникационные расходы. Приложения выполняют часть операций на клиентских компьютерах и посылают через сеть только запросы к базе данных, что позволяет существенно сократить объем пересылаемых по сети данных. Повышается уровень непротиворечивости данных. Сервер может самостоятельно управлять проверкой целостности данных, поскольку все ограничения определяются и проверяются только в одном месте. При этом каждому приложению не придется выполнять собственную проверку. Эта архитектура весьма естественно отображается на архитектуру открытых систем. Некоторые разработчики баз данных использовали эту архитектуру для организации средств работы с распределенными базами данных, т.е. с набором нескольких баз данных, логически связанных и распределенных в компьютерной сети. Однако, несмотря на то, что архитектура "клиент/сервер" вполне может быть использована для организации распределенной СУБД, сама по себе она не образует распределенную СУБД. В разделе 24.2.2 обсуждается дальнейшее расширение двухуровневой архитектуры "клиент/сервер", при котором функциональная часть прежнего, толстого (интеллектуального) клиента разделяется на две части. В трехуровневой архитектуре "клиент/сервер" тонкий (неинтеллектуальный) клиент на рабочей станции управляет только пользовательским интерфейсом, тогда как средний уровень обработки данных управляет всей остальной логикой приложения. Третьим уровнем здесь является сервер базы данных. Эта трехуровневая архитектура оказалась более подходящей для некоторых сред — например, для сетей Internet и intranet, где в качестве клиента может использоваться обычный Web-броузер. Вопросы для самопроверки 1. В чем заключаются преимущества системы баз данных перед файловыми системами? 2. Что такое избыточность данных? К чему приводит избыточность данных? 3. Что такое модель данных? Дайте определение основным типам моделей данных. 4. Из каких частей состоит система базы данных? 5. В чем разница между рабочими и транзакционными СУБД? 6. Каковы основные функции системы безопасности СУБД? 7. Для чего используется концептуальная модель? 8. Объясните, что означает термин архитектура "клиент/сервер". Опишите преимущества, которыми обладает эта схема. 9. Какие типы связей между данными вы знаете? 10. В чем заключаются преимущества реляционной модели баз данных?

назад | содержание | вперед