Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_SUBD.docx
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
135.36 Кб
Скачать

4.3. Восстановление индекса

SET STATISTICS INDEX <имя индекса>;

В таблицах, где число повторений значений ключа индекса значительно меняется (возрастает или уменьшается), периодическая перекомпиляция индекса может значительно ускорить время обработки. Команда SET STATISTICS повторно вычисляет селективность индекса. Индексная селективность рассчитывается исходя из количества различных значений ключа. Результаты размещаются в памяти и используются оптимизатором InterBase для построения плана обработки запроса. Сам индекс при этом не перестраивается.

4.4 Удаление индекса

DROP INDEX <имя индекса>;

Команды удаляет существующий индекс. Индекс не может быть удален, пока он используется. Если индекс был создан автоматически при создании таблицы, данная команда для его удаления неприменима.

  1. Исключения. Создание исключения. Изменение исключения. Удаление исключения

Исключение – это поименованное сообщение об ошибке. Исключение может быть инициировано хранимой процедурой или триггером. Инициировано может быть только предварительно объявленное исключение. Один раз объявленное исключение может быть использовано в любых хранимых процедурах и триггерах. Исключения хранятся в базе данных.

Создание исключения Команда

CREATE EXCEPTION <имя> ‘сообщение об ошибке’;

создает новое исключение с названием <имя>, после которого в кавычках указывается текст сообщения об ошибке, связанный с исключением и выдаваемый при инициировании исключения.

Пример.

CREATE EXCEPTION NO_SURNAME ‘Не указана фамилия студента’;

Изменение исключения

ALTER EXCEPTION <имя> ‘сообщение об ошибке’;

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

Удаление исключения

DROP EXCEPTION <имя>;

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

  1. Триггеры и их назначение. Команды создания, удаления и модификации триггеров и хранимых процедур.

Триггер – это отдельная хранимая в базе подпрограмма, связанная с таблицей или обзором (представлением), которая автоматически включается, когда в таблицу ли обзор вставляется (триггер добавления), модифицируется (триггер модификации) или удаляется (триггер удаления) строка.

Триггер никогда не вызывается непосредственно. Он выполняется всякий раз, когда приложение или пользователь пытаются вставлять, модифицировать или удалять строку в таблице. Триггер жестко связан с данными и выполняется тогда и только тогда, когда делается попытка изменить данные.

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

Триггеры позволяют:

  • Контролировать входные данные, обеспечивая повышение достоверности информации и ее логическую непротиворечивость.

  • Повысить независимость прикладного программного обеспечения. Изменение схемы контроля в триггере автоматически отображается во всех приложениях, не требуя ни внесения в них каких-либо изменений, ни их перетрансляции.

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

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

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

Триггеры создаются командой CREATE TRIGGER, модифицируются командой ALTER TRIGGER и удаляются командой DROP TRIGGER.

Триггер состоит из заголовка и тела.

Заголовок содержит:

  • Имя триггера, уникальное в пределах базы данных.

  • Имя таблицы, для которой создается триггер.

  • Действия с таблицей, при наступлении которых триггер включается.

Тело триггера содержит:

  • Необязательный список локальных переменных с указанием их типов.

  • Программный блок на языке процедур и триггеров InterBase (набор инструкций в операторных скобках BEGIN …END). Программный блок выполняется при включении триггера. Блок может включать в себя другие блоки.

Хранимая процедура – это отдельная программа, написанная на SQL для процедур и триггеров InterBase. Сами процедуры хранятся в базе данных. хранимые процедуры позволяют вести поиск и обработку данных непосредственно на сервере, обеспечивая максимальную независимость клиентской части приложений. В них могут использоваться любые конструкции SQL для процедур и триггеров InterBase. Они, как обычные программы, могут получать входные параметры и возвращать значения вызвавшим их приложениям. Кроме того, они могут возвращать не только отдельный набор значений – строку, но и множество строк, которое можно рассматривать как виртуальную таблицу.

Хранимая процедура может также вызываться непосредственно из приложения или других хранимых процедур или триггеров. Хранимые процедуры, возвращающие множество строк, можно использовать в команде SELECT на месте таблиц или обзоров.

Использование хранимых процедур дает ряд преимуществ:

  • Модульность проектирования. Приложения, которые обращаются к одной базе данных, могут совместно использовать хранимые процедуры, устраняя двойной код, уменьшая размер приложений и устраняя потенциальные ошибки.

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

  • Ускорение обработки. Хранимые процедуры выполняются сервером, а не клиентом, что позволяет ускорить обработку запросов и сократить сетевой трафик.

Процедуры по своему назначению разделяются на два вида: выполнимые процедуры и процедуры выбора.

Выполнимая процедура – это обычная программа, которая получает несколько (возможно и не получает) параметров, выполняет какие-либо действия в базе данных и возвращает несколько (возможно и не возвращает) значений.

Процедура выбора – это программа, которая получает несколько (возможно и не получает) параметров, и возвращает множество (возможно пустое) наборов значений. Другими словами, процедура выбора создает вычисляемую таблицу, хотя такая таблица никуда не записывается. Это позволяет обращаться к процедуре, как к таблице, используя команду SELECT.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]