Читайте также:
|
|
Изучить предлагаемый теоретический материал.
Выполнить следующие задания:
1. Для отслеживания изменений информации о сотрудниках, создайте таблицу s_emp_log и напишите триггер, заносящий в s_emp_log информацию о времени изменения и информации о сотруднике до изменения.
2. Для отслеживания удалений информации о сотрудниках, напишите триггер, заносящий в s_emp_log удалённую информацию, а также время удаления.
3. Напишите триггер для таблице s_item, позволяющий контролировать изменение цены товара. Если новая цена отличается от старой более чем на 30%, выдаётся соответствующее сообщение и запрещается изменения данных. Реализовать используя исключения.
4. Создайте программную единицу pl/sql, позволяющую отслеживать статистические показатели, касающиеся продуктов. Т.е. для каждого существующего товара указывается количество заказчиков этого товара, количество заказанных единиц, сумма заказа. Результаты будут храниться в таблице major_stats.
5. Создайте таблицу, в которую будут заноситься данные регистрации моментов создания объектов словаря данных:
CREATE TABLE ddl_creations (
user_id VARCHAR2(30),
object_type VARCHAR2(30),
object_name VARCHAR2(30),
object_owner VARCHAR2(30),
creation date DATE);
Создайте системный триггер для регистрации нужных сведений.
6. Создайте таблицу, в которую будут заноситься данные о регистрации ошибок компиляции и ошибок этапа выполнения:
CREATE TABLE error_log(
timestamp DATE,
username VARCHAR2(30),
instanse NUMBER,
database_name VARCHAR2(50),
error_stack VARCHAR2(2000));
Создайте системный триггер для регистрации нужных сведений.
Сгенерируйте несколько ошибок и посмотрите, правильно триггер регистрирует их.
7. Создайте представление, содержащее имя отдела, номер региона, Фамилию, имя, должность и номер сотрудника.
Операции DML для данного представления определим по следующим правилам:
INSERT – Назначить отдел, введенному сотруднику. В результате s_dept (при необходимости s_region) обновляются.
UPDATE – Изменить отдел, назначенный сотруднику. Это может привести к обновлению или s_emp или s_dept, в зависимости от того, какой столбец представления обновляется.
DELETE – Очистить идентификатор отдела для сотрудника (сотрудник не зачислен ни в один отдел). В результате s_emp обновляется: ID устанавливается в значении NULL.
Создайте триггер, реализующий сформулированные выше правила и позволяющий правильно выполнять операции DML над созданным представлением.
Входные данные процедуры – ФИО, должность сотрудника, название отдела. Заработную плату сотруднику определить как среднюю з/п всех сотрудников фирмы.
Содержание отчета
В отчете следует указать:
1. Цель работы
2. Введение
3. Программно-аппаратные средства, используемые при выполнении работы.
4. Основную часть (описание самой работы), выполненную согласно требованиям к результатам выполнения лабораторного практикума.
5. Заключение (выводы)
6. Список используемой литературы
Литература:
1. Баженова И.Ю. Oracle 8/8i. Уроки программирования. - М.: "ДИАЛОГ-МИФИ",2000.
2. Дейт К. Дж. Введение в системы баз данных. 7-е изд. - М.-СПб-К:"Диалектика", 2001.
3. Скотт Урман. "ORACLE 8. Программирование на языке PL/SQL".
(М.: "Лори", 1999, 608 стр.); [оригинал: Scott Urman "Oracle8 PL/SQL Programming" Osborne/McGraw-Hill, 1997]
4. В.А.Кравчук, Ю.П.Бегус, В.А.Габзовский. "Введение в Oracle PL/SQL". ‑ Киев, Издательство "ДиаСофт", 1998, - 400 с.
Лабораторная работа N 7
Триггеры
Цель работы: изучить способы создания триггеров на языке Transact-SQL, приобрести практические навыки разработки и использования триггеров в приложениях баз данных.
Порядок выполнения работы
Основные сведения
Триггер (trigger) — это специальный тип хранимых процедур, запускаемых сервером автоматически при выполнении тех или иных действий с данными таблицы. Каждый триггер привязывается к конкретной таблице. Когда пользователь пытается, например, изменить данные в таблице, сервер автоматически запускает триггер и, только если он завершается успешно, разрешается выполнение изменений. Все производимые триггером модификации данных рассматриваются как одна транзакция. В случае обнаружения ошибки или нарушении целостности данных происходит откат этой транзакции. Тем самым внесение изменений будет запрещено. Будут также отменены все изменения, уже сделанные триггером.
Дата добавления: 2014-12-19; просмотров: 36 | Поможем написать вашу работу | Нарушение авторских прав |