MS SQL-Server 2000. Сивохин А.В. - 57 стр.

UptoLike

Составители: 

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 [Имя транзакции] – начало транзакции;