
- •3 Завдання до лабораторних робіт
- •3.1 Лабораторна робота № 1
- •1 Теоретические сведения
- •2 Ход работы
- •2.1 Создание базы данных
- •2.2 Регистрация базы данных
- •2.3 Подключение к базе данных
- •2.4 Удаление базы данных
- •2.5 Извлечение метаданных
- •2.6 Резервное копирование и восстановление
- •3 Задание
- •4 Отчет о выполнении работы
- •5 Контрольные вопросы
- •3.2 Лабораторна робота № 2
- •1 Теоретические сведения
- •1.1 Типы данных InterBase
- •2 Ход работы
- •3 Задание
- •4 Отчет о выполнении работы
- •5 Контрольные вопросы
- •3.3 Лабораторна робота № 3
- •1 Теоретические сведения
- •1.1 Таблицы (Tables)
- •1.2 Индексы
- •2 Ход работы
- •3 Задание
- •4 Отчет о выполнении работы
- •5 Контрольные вопросы
- •3.4 Лабораторная работа № 4
- •1 Теоретические сведения
- •1.2 Ограничение первичного ключа (Primary key)
- •1.2 Ограничения уникальности (Unique)
- •1.3 Ограничения внешнего ключа (Foreign keys)
- •1.4 Контрольные ограничения (Checks)
- •2 Ход работы
- •3 Задание
- •4 Отчет о выполнении работы
- •5 Контрольные вопросы
- •3.5 Лабораторная работа №5.
- •1 Теоретические сведения
- •1.1 Генераторы (Generators)
- •1.2 Бизнес-правила
- •1.3 Триггеры (Triggers)
- •2. Ход работы
- •3 Задание
- •4 Отчет о выполнении работы
- •5 Контрольные вопросы
- •3.6 Лабораторная работа №6
- •1 Теоретические сведения
- •1.1 Добавление новых данных
- •1.2 Удаление существующих данных
- •1.3 Обновление существующих данных
- •2. Ход работы
- •3. Задание
- •4. Отчет о выполнении работы
- •5. Контрольные вопросы
- •3.7 Лабораторная работа №7
- •1 Теоретические сведения
- •2. Ход работы
- •3. Задание
- •4. Отчет о выполнении работы
- •5. Контрольные вопросы
- •3.8 Лабораторная работа №8
- •1 Теоретические сведения
- •1.1 Представления (Views)
- •1.2 Модифицируемые представления
- •2 Ход работы
- •3 Задание
- •4 Отчет о выполнении работы
- •5 Контрольные вопросы
- •3.9 Лабораторная работа №9
- •1 Теоретические сведения
- •1.1 Хранимые процедуры (Procedures)
- •1.2 Виды хранимых процедур в InterBase
- •2 Ход работы
- •3 Задание
- •4. Отчет о выполнении работы
- •5. Контрольные вопросы
- •3.10 Лабораторная работа №10
- •1 Теоретические сведения
- •1.1 Функции пользователя (udFs)
1.2 Модифицируемые представления
Для некоторых представлений вставку, удаление или обновление строки можно преобразовать в эквивалентные операции по отношению к исходным таблицам этого представления. Могут существовать представления, для которых добавление, удаление или обновление строк не имеет смысла. Такие представления можно только читать.
Содержимое представления может изменяться командами модификации, которые будут автоматически перенаправлены к базовой таблице. Чтобы представление было модифицируемым, оно должно быть создано на основе одной таблицы (или другого модифицируемого представления), а запрос, на котором основано представление, не должен содержать подзапросов, агрегатных функций, UDF, хранимых процедур, предложений DISTINCT, GROUP BY и HAVING. Если выполняются все эти условия, то представление автоматически становится модифицируемым, т.е. для него можно выполнять запросы DELETE, INSERT и UPDATE, которые будут изменять данные в таблице-источнике.
Чтобы сделать модифицируемым представление, которое нарушает любое из вышеперечисленных условий, применяется механизм триггеров. Триггеры для модификации представления должны срабатывать при событиях BEFORE DELETE, BEFORE UPDATE и BEFORE INSERT. В теле триггеров необходимо описать, что должно происходить с данными при удалении, изменении и вставке.
2 Ход работы
Для создания представлений в диалоговом режиме программы "IB Expert" необходимо выполнить следующие действия:
1. Подключиться к базе данных и выполнить команду главного меню "DatabaseNew View". В результате откроется окно "View", в котором будет содержаться заготовка оператора создания представления (рисунок 8.1).
Рисунок 8.1 – Окно ввода оператора создания представления
2.
Изменить в поле на вкладке "SQL"
текст оператора создания представления
для создания нужного представления, а
затем нажать кнопку
[Compile] (Ctrl+F9). В результате откроется
диалоговое окно (рисунок
8.2), в котором
надо подтвердить (кнопка [Commit]) или
отменить (кнопка [Rollback]) выполнение
операции
Рисунок 8.2 – Диалог создания представления
3. Представление, команда создания которого приведена на рисунке 8.2 не является модифицируемым. Чтобы сделать его модифицируемым, создадим для него триггер позволяющий изменять поле "Name" (изменять поле "NameCount" не имеет смысла).
4. Чтобы создать триггер у имеющегося представления, необходимо в окне "View" перейти на вкладку "Triggers", нажать правую кнопку мыши на типе события, при котором должен срабатывать триггер, и в контекстном меню выбрать команду "New Trigger" (рисунок 8.3). В результате откроется окно "Trigger", в котором будет находиться заготовка оператора создания триггера. Используя эту заготовку, следует ввести правильный оператор создания триггера и нажать кнопку [Compile Trigger] (Ctrl+F9).
Рисунок 8.3 – Окно создания триггера для представления
Пример триггера, которые для представления "TestView" позволяет модифицировать поле "Name" приведен на рисунке 8.4.
Рисунок 8.4 – Триггер, позволяющий модифицировать представление