Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ТБДиЗ !!!!.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
508.42 Кб
Скачать

9.9 Архитектура клиент/сервер. Функции клиентского приложения и серверной субд.

Наиболее эффективную работу с централизованной БД обеспечивает архитектура клиент/сервер. В отличие от системы удаленной обработки, в которой имеется только один компьютер, клиент/серверная система состоит из множества компьютеров, объединенных в сеть.В архитектуре клиент/сервер функции клиентского приложения и серверной СУБД разделены.Функции клиентского приложения разбиваются на следующие группы: ввод-вывод данных (презентационная логика) – это часть кода клиентского приложения, которая определяет, что пользователь видит на экране, когда работает с приложением; бизнес-логика – это часть кода клиентского приложения, которая определяет алгоритм решения конкретных задач приложения; обработка данных внутри приложения (логика БД) – это часть кода клиентского приложения, которая связывает данные сервера с приложением. Для этой связи используется процедурный язык запросов SQL, с помощью которого осуществляется выборка и модификация данных в серверных СУБД.Сервер БД в общем случае осуществляет целый комплекс действий по управлению данными. Основными среди них являются следующие: выполнение пользовательских запросов на выбор и модификацию данных и метаданных, получаемых от клиентских приложений, функционирующих на ПК локальной сети; хранение и резервное копирование данных; поддержка ссылочной целостности данных согласно определенным в БД правилам; обеспечение авторизованного доступа к данным на основе проверки прав и привилегий пользователя; протоколирование операций и ведение журнала транзакций.

9.10 Преимущества архитектуры клиент/сервер

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

9.11 Общие сведения о хранимых процедурах и триггерах

В современной модели клиент/сервер бизнес-логика разделена между клиентом и сервером. На сервере бизнес-логика реализована в виде хранимых процедур – специальных программных модулей, которые хранятся в БД и управляются непосредственно СУБД.Хранимая процедура – это специальная процедура, которая выполняется сервером БД. Хранимые процедуры пишутся на процедурном языке, который зависит от конкретной СУБД. Для написания хранимых процедур для MS SQL Server используется расширенный стандарт языка SQL – Transact-SQL. Хранимая процедура здесь – это последовательность операторов Transact-SQL, хранящихся в БД. Хранимые процедуры предварительно откомпилированы, поэтому их эффективность выше, чем обычных запросов. Они выполняются непосредственно на сервере.Существует два вида хранимых процедур: системные и пользовательские. Системные хранимые процедуры предназначены для получения информации из системных таблиц и выполнения различных служебных операций и особенно полезны при администрировании БД. Пользовательские хранимые процедуры создаются непосредственно разработчиками или администраторами БД. Полезность хранимых процедур определяется в первую очередь высокой (по сравнению с обычными Transact-SQL запросами) скоростью их выполнения. Однако наибольший эффект достигается при выполнении многократно повторяющихся операций. Пользовательские хранимые процедуры применяются при решении практически любых задач. Пользователь может получить право выполнения хранимой процедуры, даже если он не имеет права доступа к объектам, к которым обращается программа.Хранимая процедура вызывается при непосредственном обращении к процедуре из клиентского приложения, работающего с базой данных. Хранимые процедуры исп-ся для извлечения или изменения данных в любое время. Хранимые процедуры могут принимать аргументы при запуске и возвращать значения в виде результирующих наборов данных.Логика БД реализуется с помощью триггеров. Триггер – это специальный тип хранимой процедуры, которая автоматически выполняется при каждой попытке изменить данные. Триггер всегда связан с конкретной таблицей и выполняется тогда, когда при редактировании этой таблицы наступает событие, с которым он связан. Каждая таблица может иметь произвольное количество триггеров любых типов. После операций вставки, обновления, удаления может быть запущен триггер, который в результате приведет к вычислению бизнес-правил или к выполнению определенных действий. При удалении таблицы, имеющей триггеры, все они также удаляются.Триггеры обеспечивают целостность данных, предотвращая их несанкционированное или неправильное изменение. Триггеры не принимают параметров и не возвращают значений. Они выполняются только при попытке изменения данных. Триггеры могут иметь несколько уровней вложенности ( СУБД MS SQL Server триггеры имеют до 32 уровней вложенности), т.е. выполнение одного триггера инициирует выполнение другого триггера. Триггер является частью транзакции, следовательно, если триггер не выполнятся, то отменяется вся транзакция, и наоборот.