ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.03.2024
Просмотров: 109
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Слабо развитый аппарат транзакций служит потенциальным источником ошибок в плане нарушения смысловой и ссылочной целостности информации при одновременном внесении изменений в одну и ту же запись.
Архитектура «клиент – сервер»
Так же как и выше рассмотренные технологии, технология «клиент – сервер» базируется на однотипной архитектуре. Эта архитектура предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых выполняет специальные управляющие функции, являясь сервером сети.
Особенности в том, что архитектура «клиент – сервер» разделяет функции приложения пользователя (называемого клиентом) и сервера. Приложение-клиент формирует запрос к серверу, на котором расположена база данных, на структурном языке запросов SQL (Struсturеd Quеry Lаnguаge), являющемся промышленным стандартом в мире реляционных баз данных (основанных на реляционной алгебре). Удаленный сервер принимает запрос и переадресует его SQL-серверу базы данных. SQL-сервер – специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса. Клиентский компьютер лишь отсылает запрос к серверной базе данных и получает результат, после чего интерпретирует его необходимым образом и предоставляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети «курсируют» только те данные, которые необходимы клиенту. В итоге существенно снижается общая нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в кротчайшее время и с наименьшими накладными расходами. Представленная архитектура системы базы данных представлена на рисунке 3.3.
Такие действия улучшают быстродействие системы и уменьшают время простоя или время ожидания результата запроса. При выполнении запросов сервером существенно улучшается степень безопасности данных, поскольку правила целостности данных определяются в базе данных на сервере и являются едиными для всех приложений, использующих эту базу данных. Таким образом, исключается возможность определения противоречивых правил поддержания целостности. Расширенный аппарат транзакций, поддерживаемый SQL-серверами, позволяет полностью исключить одновременное изменение одних и тех же данных различными пользователями и предоставляет возможность откатов к первоначальным значениям при внесении в базу данных изменений, что улучшает такую характеристику системы, как отказоустойчивость.
Работа клиент-серверной архитектуры построена следующим образом:
База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).
Рисунок 3.3 – Архитектура «клиент – сервер»
Система управления базой данных располагается также на сервере сети.
Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено прикладные программы (клиентское приложение) для работы с базой данных.
На каждом из клиентских компьютеров пользователи имеют возможность запустить клиентские приложение. Используя предоставляемый приложением пользовательский интерфейс, он задают обращение к системе управления базой данных, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, то есть по сети от клиента к серверу передается лишь запросный текст.
Система управления базой данных инкапсулирует внутри себя все сведения о физической структуре базы данных, расположенной на сервере.
Система управления базой данных инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом, система управления базой данных возвращает результат в приложение.
Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.
Имеются разграничения функций между сервером и клиентом. Эти разграничения представлены следующим образом.
Функции приложения-клиента:
Посылка запросов серверу.
Интерпретация результатов запросов, полученных от сервера.
Представление результатов пользователю в некоторой форме (интерфейс пользователя).
Функции серверной части:
Прием запросов от приложений-клиентов.
Интерпретация запросов.
Оптимизация и выполнение запросов к базе данных.
Отправка результатов приложению-клиенту.
Обеспечение системы безопасности и разграничение доступа.
Управление целостностью базы данных.
Реализация стабильности многопользовательского режима работы.
В клиент-серверной архитектуре работают так называемые «промышленные» системы управления базами данных. Промышленными они называются из-за того, что именно системы управления базами данных этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. К разряду промышленных систем управления базами данных относятся МS SQL Server, Оrасle, Guрtа, Infоrmix, Sybаsе, DВ2, InterВase и ряд других.
Обычно, SQL-сервер обслуживается отдельным сотрудником или группой сотрудников (администраторы SQL-сервера). Они управляют физическими характеристиками баз данных, производят оптимизацию сервера, настройку и переопределение различных компонентов баз данных, создают новые базы данных, изменяют существующие и т.д. Также они выдают привилегии, то есть производят разрешения различным пользователям на доступ определенного уровня к конкретным базам данных и SQL-серверу.
Основные достоинства клиент-серверной архитектуры по сравнению с ранее рассмотренной файл-серверной архитектурой:
Существенно улучшается загруженность сетевого трафика.
Упрощаются клиентские приложения, так как на серверную часть ложится большая часть нагрузки. В этом случае, снижаются требования к аппаратным мощностям клиентских компьютеров.
SQL-сервер это специальное программное средство. Его наличие приводит к предварительному решению существенной части проектных и программных задач.
Существенно повышается целостность и безопасность базы данных.
К недостатка клиент-серверной архитектуры можно отнести, такие характеристики, как более высокие финансовые затраты на аппаратное и программное обеспечение, а также то, что большое количество клиентских компьютеров, расположенных в разных местах, вызывает определенные трудности со своевременным обновлением клиентских приложений на всех компьютерах-клиентах. Не взирая на это, клиент-серверная архитектура с практической стороны хорошо зарекомендовала себя и в настоящий момент существует и функционирует большое количество баз данных построенных в соответствии с данной архитектурой.
Многозвенная архитектура «клиент – сервер»
Многозвенную архитектуру «клиент-сервер» рассмотрим на примере трехзвенная архитектуры, которая в некоторых случаях является многозвенной. Трехзвенная (многозвенная) архитектура (N-tier или multi-tier) представляет собой, более усовершенствованную, клиент-серверную архитектуру. Клиент-серверная архитектура, рассмотренная ранее, является 2-звенной: первое звено – клиентское приложение, второе звено – сервер базы данных и сама база данных. В трехзвенной архитектуре вся бизнес-логика или деловая логика, которая ранее входила в клиентские приложения, выделяется в отдельное звено, которое называется сервером приложений. При этом клиентским приложениям остается лишь пользовательский интерфейс. В качестве клиентского приложения, в описанном выше примере, может выступать Wеb-браузер.
Что становится оптимальным? Какие характеристики улучшаются при использовании трехзвенной архитектуры? Теперь при изменении бизнес-логики более нет необходимости изменять клиентские приложения или прикладные программы и обновлять их у всех пользователей. Кроме того, максимально снижаются требования к аппаратной составляющей пользователя.
Построение работы многозвенной архитектуры выглядит следующим образом:
База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).
Система управления базой данных находится также на сервере сети.
Существует специально выделенный сервер приложений, на котором располагается программное обеспечение (ПО) делового анализа (бизнес-логика).
Существует множество клиентских компьютеров, на каждом из которых установлен так называемый «тонкий клиент» – клиентское приложение, реализующее интерфейс пользователя.
Пользователи на каждом из клиентских компьютеров имеют возможность запустить приложение, которое называется тонким клиентом. Используя предоставляемый приложением пользовательский интерфейс, он задают или инициируют обращение к программному обеспечению делового анализа, которое расположено на сервере приложений.
Сервер приложений осуществляет анализ требований пользователя и формирует запросы к базе данных. Для общения используется специальный язык запросов SQL, то есть, по сети от сервера приложений к серверу базы данных передается лишь запрос в виде текста.
Система управления базой данных инкапсулирует внутри себя все сведения о физической структуре базы данных, расположенной на сервере.
Система управления базой данных инициирует обращения к данным, находящимся на сервере, в результате которых результат выполнения запроса копируется на сервер приложений.
Сервер приложений возвращает результат в клиентское приложение (пользователю).
Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.
Представление информации в реляционных базах данных
В современных условиях реляционный подход является наиболее распространенным в настоящее время, не смотря на то, что наряду с общепризнанными достоинствами обладает и рядом недостатков. К достоинствам реляционного подхода относятся:
- наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать огромную часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными пользователю;