Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОСЫ_ИТОГ_2.doc
Скачиваний:
41
Добавлен:
24.09.2019
Размер:
6.92 Mб
Скачать

2. Понятие бизнес-логики. Хранимые процедуры, триггеры, представления.

Бизнес-логика — в разработке информационных систем — совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика — это реализация правил и ограничений автоматизируемых операций. Является синонимом термина «логика предметной области» (англ. domain logic).

Проще говоря, бизнес-логика — это реализация предметной области в информационной системе. К ней относятся, например, формулы расчёта ежемесячных выплат по ссудам (в финансовой индустрии), автоматизированная отправка сообщений электронной почты руководителю проекта по окончании выполнения частей задания всеми подчиненными (в системах управления проектами), отказ от отеля при отмене рейса авиакомпанией (в туристическом бизнесе) и т. д.

Представления.

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

Преимущества представлений:

  • позволяют просматривать различным пользователям данные разными способами в одно и тоже время;

  • обеспечение безопасности данных (возвращение пользователям данных в зависимости от категории (имени) пользователя);

  • для скрытых данных обеспечивается автоматическая защита.

Хранимые процедуры

Хранимые процедуры – скомпилированный набор SQL предложений, сохраненный в базе данных как именованный объект и выполняющийся как единый фрагмент программного кода. Отдельные процедуры могут иметь параметры и возвращать значения. Созданная пользователем процедура компилируется сервером, а затем откомпилированный программный код может быть использован любым пользователем (рис.1)

В том случае если приложение использует данное предложение, сервер выполняет данную процедуру без перекомпиляции. Хранимые процедуры повышают производительность приложений:

Рис.1 Вызов хранимой процедуры клиентским приложением

  • эти процедуры требуют меньше времени для подготовки и выполнения по сравнению с обычными SQL-запросами, посылаемыми из клиентских приложений;

  • уменьшается сетевой трафик, т.к. по сети предается меньший объем информации;

  • хранимые процедуры автоматически перекомпилируются в том случае, если объекты, входящие в состав процедуры, претерпевают изменения; т.о. хранимые процедуры всегда актуальны;

  • возможно задание различных входных наборов данных для одной хранимой процедуры, если она имеет параметры;

  • процедуры применяются для поддержки ограничений целостности и реализации бизнес-правил; это обеспечивает большую гибкость системе, т.к. при модификации бизнес-правил изменяются только процедуры, а не клиентские процедуры.

Кроме процедур, используемых в клиентских приложениях, СУБД имеет системные хранимые процедуры; они могут использоваться для выполнения следующих задач:

  • вывод и изменения глобальных конфигураций сервера;

  • получение сведений о поддерживаемых типах данных;

  • получение сведений об объектах базы данных;

  • вывод статистики СУБД;

  • вывод сведений обо всех базах данных, доступных данному серверу.

Системные процедуры, также как и обычные процедуры могут использоваться клиентскими приложениями.

Триггеры

Триггер - специальный тип хранимой процедуры, которая вызывается в том случае, когда данные в определенной таблице добавляются, удаляются или изменяются с помощью соответствующих операторов SQL (рис.2).

Рис.2 Автоматический вызов триггера

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

Триггер всегда выполняет некоторое действие и никогда не возвращает пользователю данные.