Установка уровня изоляции в Microsoft Query Analyzer выполняется командой:
SET TRANSACTION ISOLATION LEVEL уровень_изоляции уровень_изоляции может принимать значения: READ UNCOMMITTED / READ COMMITTED / REPEATABLE READ / SERIALIZABLE
Команду, выполняющую изменение уровня изоляции, следует разместить первой в скрипте.
В процессе выполнения задания в каждом из окон следует выделять только строчки, присутствующие на данном шаге, и нажимать на кнопку «выполнить». В процессе работы после нажатия на эту кнопку выполнение дальнейших команд может быть заблокировано (становится активна только кнопка «остановить текущую операцию»). В этом случае результат выполнения зависит от параллельной транзакции, и может быть вычислен только при её завершении
(COMMIT/ROLLBACK).
Инструментальные средства DB2
Для выполнения сценариев проверки изолированности следует запустить два сеанса интерактивного SQL. Можно запустить в два сеанса DB2 Command Center, однако, Command Center - приложение довольно ресурсоемкое, и его выполнение в двух экземплярах на компьютере недостаточной мощности может оказаться затруднительным, поэтому мы предлагаем во втором сеансе запустить DB2 Command Line Processor.
Command Line Processor - приложение для интерактивного выполнения операторов SQL из командной строки.
По умолчанию в средах интерактивного SQL DB2 режим AUTOCOMMIT включен. Чтобы его отключить следует ввести команду:
UPDATE COMMAND OPTIONS USING c OFF
9
Установка уровня изоляции в DB2 выполняется командой:
CHANGE ISOLATION TO уровень_изоляции
уровень_изоляции может принимать значения: UR / CS / RS / RR
Изменение уровня изоляции может выполняться только при отсутствии соединения с базой данных. Соединение с базой данных выполняется командой:
CONNECT TO имя базы разрыв соединения - оператором
CONNECT RESET
Инструментальные средства Oracle
По умолчанию в среде SQL*Plus режим AUTOCOMMIT выключен.
Установка уровня изоляции в Oracle выполняется командой:
ALTER SESSION SET ISOLATION_LEVEL =
уровень_изоляции
уровень_изоляции может принимать значения READ COMMITTED / SERIALIZABLE
Контрольные вопросы
1.В чем различия имени входа (логина) и пользователя?
2.Рассказать о ролях уровня сервера.
3.Рассказать о ролях уровня базы данных.
4.Можно ли создать свою роль уровня сервера?
5.Для чего нужны роли?
6.Что такое схема?
10
7.Рассказать о роли уровня базы данных public.
8.Рассказать про директивы GRANT, DENY и
REVOKE.
9.Как разрешить пользователю предоставлять разрешение другим пользователям?
10.Как добавить нового пользователя в текущую
базу данных?
11.Как создать новый логин?
Дополнительные вопросы
1.Исправить ошибки в обязательной части.
2.Сменить владельца базы данных.
3.Сменить пароль для имени входа.
4.Сменить базу данных по умолчанию для имени
входа.
5.Определить роль с заданными правами.
11
Лабораторная работа № 7 Создание и использование триггеров
Цель работы
Освоение способов создания триггеров в среде Microsoft
SQL Server.
Темы для предварительной проработки
•Функции триггеров.
•Синтаксис создания триггеров
•Использование триггеров в целях аудита
Подготовка к работе
•Подготовить план создания триггера для контроля ограничений целостности, заданных в Вашем варианте индивидуального задания. Использовать диалекты как Oracle, так и DB2.
•Сформулировать 2-4 запроса на добавление / изменение / удаление данных в таблицу, для которой будет назначен триггер. Составить SQL-скрипты для выполнения этих запросов.
Выполнение работы
•Запустить Microsoft Enterprise Manager и
Microsoft Query Analyzer, соединиться с локальной базой данных.
•В среде Microsoft Enterprise Manager создать триггер контроля ограничений целостности. В среде Microsoft Query Analyzer выполнить скрипты, подготовленные для проверки триггера и сохранить протокол их выполнения.
•Вывести содержимое таблиц, показывающее действие триггеров.
•Закончить работу с Microsoft SQL Server.
12
Содержание отчета
•Протокол работы в среде Microsoft Query
Analyzer.
•Краткие выводы о навыках, приобретенных в ходе выполнения работы.
Теор етические сведения
Триггеры - средство, обеспечивающее автоматическое выполнение некоторых действий при каждой модификации таблицы.
Триггер характеризуется следующими классификационными признаками, которые должны быть заданы при его создании:
условие активизации - действие над таблицей, которое вызывает запуск триггера - такими действиями являются операции INSERT, DELETE, UPDATE;
время активизации - выполнение триггера до или после выполнения операции над таблицей; область действия - выполнение триггера либо один раз
для каждого оператора модификации таблицы, либо для каждой строки, изменяемой / удаляемой / вставляемой в таблицу.
Таким образом, для каждой таблицы может быть создано до 12 типов триггеров. На самом деле, триггеров может быть и больше, так как может быть создано и несколько триггеров одного типа. В таком случае однотипные триггеры выполняются в порядке их создания.
При обеспечении в общем-то одинаковой функциональности, синтаксис и некоторые детали применения триггеров различаются в DB2, Oracle и MSSQL, поэтому мы рассматриваем их раздельно.
Триггеры: DB2
Триггер создается оператором языка SQL CREATE TRIGGER:
13