ВУЗ:
Составители:
Рубрика:
AS
IF EXISTS (SELECT * FROM authsmall -- inserted;
WHERE au_lname = ‘Geitsi’ -- фамилия;
au_fname = ‘Billy’) -- имя;
BEGIN
PRINT ‘Недопустимо написание кнги’+
‘автором Billy Geitsi’
ROLLBACK TRANSACTION
END
2. Тестирование триггера:
UPDATE authsmall SET au_lname = ‘Geitsi’,
au_fname = ‘Billy’ WHERE au_lname = ‘Smith’.
Лабораторная работа №13
Создание и управление транзакциями
Цель работы – изучение способов обеспечения надежной работы SQL Server 2000 с
помощью механизма транзакций и контрольных точек, приобретение навыков управления
локальными и распределенными транзакциями различных видов, а также ознакомление с
физической и логической архитектурой журнала транзакций и способами восстановления баз
данных.
Одним из способов повышения надежности работы системы MS SQL Server 2000 является
применение встроенного в систему механизма транзакций и контрольных точек и умелое его
управление.
Транзакция – это одна или несколько последовательных команд языка Transact – SQL,
образующих логически завершенный пакет и выполняемых как единое целое. Если по какой-либо
причине хотя бы одна из команд пакета не выполняется, то происходит откат системы к
состоянию, в котором она была до начала транзакции, и транзакция считается не выполненной. По
умолчанию каждая команда выполняется как самостоятельная транзакция. При необходимости в
пакете можно явно указать начало и конец транзакции.
Обработка транзакций в любой системе управления базами данных должна производиться
с соблюдением следующих правил – правил ASID (Atomicity, Consistency, Isolation и Durability):
Atomicity – атомарность: выполняемые в транзакции изменения либо выполняются все,
либо не выполняются вовсе;
Consistency – согласованность: все данные после выполнения транзакции должны
находиться в согласованном состоянии с соблюдением всех правил и ограничений целостности;
Isolation – изолированность: изменения данных, выполняемых различными одновременно
работающими транзакциями, должны быть изолированы;
Durability – долговечность: после завершения транзакции ничто не может вернуть
систему в состояние, в котором она была до начала транзакции (происходит фиксация
транзакции).
Транзакции должны как можно меньше включать команд и изменять минимум данных.
Соблюдение этого требования позволит наиболее эффективным образом обеспечить
одновременную работу с данными множества пользователей системы SQL Server 2000. Они
определяются на уровне соединения с сервером. Поэтому при закрытии соединения происходит
откат невыполненной транзакции, и ее нельзя выполнить позже после восстановления соединения.
SQL Server 2000 поддерживает три вида определений транзакций: явное,
автоматическое и подразумеваемое.
Для управления явными транзакциями применяют команды:
BEGIN TRANSACTION [Имя транзакции] – начало транзакции;
AS
IF EXISTS (SELECT * FROM authsmall -- inserted;
WHERE au_lname = ‘Geitsi’ -- фамилия;
au_fname = ‘Billy’) -- имя;
BEGIN
PRINT ‘Недопустимо написание кнги’+
‘автором Billy Geitsi’
ROLLBACK TRANSACTION
END
2. Тестирование триггера:
UPDATE authsmall SET au_lname = ‘Geitsi’,
au_fname = ‘Billy’ WHERE au_lname = ‘Smith’.
Лабораторная работа №13
Создание и управление транзакциями
Цель работы – изучение способов обеспечения надежной работы SQL Server 2000 с
помощью механизма транзакций и контрольных точек, приобретение навыков управления
локальными и распределенными транзакциями различных видов, а также ознакомление с
физической и логической архитектурой журнала транзакций и способами восстановления баз
данных.
Одним из способов повышения надежности работы системы MS SQL Server 2000 является
применение встроенного в систему механизма транзакций и контрольных точек и умелое его
управление.
Транзакция – это одна или несколько последовательных команд языка Transact – SQL,
образующих логически завершенный пакет и выполняемых как единое целое. Если по какой-либо
причине хотя бы одна из команд пакета не выполняется, то происходит откат системы к
состоянию, в котором она была до начала транзакции, и транзакция считается не выполненной. По
умолчанию каждая команда выполняется как самостоятельная транзакция. При необходимости в
пакете можно явно указать начало и конец транзакции.
Обработка транзакций в любой системе управления базами данных должна производиться
с соблюдением следующих правил – правил ASID (Atomicity, Consistency, Isolation и Durability):
Atomicity – атомарность: выполняемые в транзакции изменения либо выполняются все,
либо не выполняются вовсе;
Consistency – согласованность: все данные после выполнения транзакции должны
находиться в согласованном состоянии с соблюдением всех правил и ограничений целостности;
Isolation – изолированность: изменения данных, выполняемых различными одновременно
работающими транзакциями, должны быть изолированы;
Durability – долговечность: после завершения транзакции ничто не может вернуть
систему в состояние, в котором она была до начала транзакции (происходит фиксация
транзакции).
Транзакции должны как можно меньше включать команд и изменять минимум данных.
Соблюдение этого требования позволит наиболее эффективным образом обеспечить
одновременную работу с данными множества пользователей системы SQL Server 2000. Они
определяются на уровне соединения с сервером. Поэтому при закрытии соединения происходит
откат невыполненной транзакции, и ее нельзя выполнить позже после восстановления соединения.
SQL Server 2000 поддерживает три вида определений транзакций: явное,
автоматическое и подразумеваемое.
Для управления явными транзакциями применяют команды:
BEGIN TRANSACTION [Имя транзакции] – начало транзакции;
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »
