Дипломная работа: Информационно-справочная система кинотеатра
AND ID_SE=ID_SE2
ANDID_F=ID_F2;
5.5 Описание индексов
Индекс (англ. index) – объект базы данных, создаваемый с целью повышения производительности выполнения запросов. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному значению путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет находить нужную строку по заданному значению. Ускорение работы с использованием индексов достигается в первую очередь за счет того, что индекс имеет структуру, оптимизированную под поиск – например, балансированного дерева. Некоторые СУБД расширяют возможности индексов введением возможности создания индексов по выражениям. Кроме того, индексы могут быть объявлены как уникальные и как неуникальные. Уникальный индекс реализует ограничение целостности на таблице, исключая возможность вставки повторяющихся значений [39].
Создание индексов значительно ускоряет работу с таблицами. Обязательно надо строить индексы для первичных ключей, поскольку по их значениям осуществляется доступ к данным при операциях соединения двух и более таблиц. Так в данном дипломном проекте было построено три индекса ко всем ключевым полям. После оператора он указывается имя таблицы, для которой создаётся индекс, а в скобках указывается ключевое поле данной таблицы.
Запроссозданияиндексов:
CREATE INDEX IDX_BILETY ON BILETY (ID_TODAY2);
CREATE INDEX IDX_TODAY ON TODAY (ID_F2);
CREATE INDEX IDX_TODAY1 ON TODAY (ID_SE2);
5.6 Описание исключений
Исключения – это созданные пользователем ошибки с ассоциированными сообщениями, которые могут быть использованы в сохраненных процедурах и триггерах [49].
Исключения генерируют сообщения об ошибке.
Было создано исключение «NO_DATA», которое далее применялось в триггере "BILETY_BI". Исключение выдавало сообщение об ошибке, если при попытке добавления данных, одно из полей оставалось пустым.
CREATEEXCEPTION "NO_DATA" 'Все поля таблицы должны быть заполнены';
5.7 Описание триггеров
Триггер – отдельная хранимая в базе подпрограмма, связанная с таблицей или обзором (представлением), которая автоматически включается, когда в таблицу обзор вставляется (триггер добавления), модифицируется (триггер модификации) или удаляется (триггер удаления). Триггеры предназначены для контроля за входной информацией, обеспечения автоматической регистрации изменения в таблицах, выполнения синхронных изменений в нескольких таблицах, обеспечивая при этом как логическую целостность, так и автоматическое поддержание соответствия первичных и агрегированных данных, для автоматического уведомления об изменениях в базе данных.
Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции [40].
Был создан один триггер. Триггер «BILETY_BI» при вставке в таблицу Bilety в поля SALE, MESTO, RIAD проверяет, не являются ли они нулевыми. Если так, то выдается сообщение об ошибке.
CREATETRIGGER "BILETY_BI" FOR "BILETY"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW."sale"_date IS NULL) THEN EXCEPTION "NO_DATA";
IF (NEW."mesto" IS NULL) THEN EXCEPTION "NO_DATA";
IF (NEW."riad" IS NULL) THEN EXCEPTION "NO_DATA";
END
5.8 Описание пользователей и ролей
Для базы данных были созданы пользователи ADMIN, PUBLIC и USER, а так же роли
ADMIN_1, PUBLIC_1 и USER_1.