Презентация, доклад по основам проектирования баз данных на тему Транзакции и блокировки

Содержание

ТранзакцияЭто последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.

Слайд 1Транзакции и блокировки

Транзакции и блокировки

Слайд 2Транзакция
Это последовательность операций, производимых над базой данных и переводящих базу данных

из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.
ТранзакцияЭто последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в

Слайд 3Типы транзакций
плоские (классические) транзакции
вложенные транзакции
цепочечные транзакции

Типы транзакцийплоские (классические) транзакциивложенные транзакциицепочечные транзакции

Слайд 4Свойства транзакций
свойство атомарности (Atomicity);
свойство согласованности (Consistency);
свойство изолированности (Isolation);
свойство долговечности (Durability).

Свойства транзакцийсвойство атомарности (Atomicity);свойство согласованности (Consistency);свойство изолированности (Isolation);свойство долговечности (Durability).

Слайд 5Свойство атомарности (Atomicity)
Выражается в том, что транзакция должна быть выполнена в целом

или не выполнена вовсе.
Свойство атомарности (Atomicity)Выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.

Слайд 6Свойство согласованности (Consistency)
Гарантирует, что по мере выполнения транзакций данные переходят

из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных.
Свойство согласованности (Consistency) Гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое

Слайд 7Свойство изолированности (Isolation)
Означает, что конкурирующие за доступ к базе данных

транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно.
Свойство изолированности (Isolation) Означает, что конкурирующие за доступ к базе данных транзакции физически обрабатываются последовательно, изолированно друг

Слайд 8Свойство долговечности (Durability)
Если транзакция завершена успешно, то те изменения в данных, которые

были ею произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок).
Свойство долговечности (Durability)Если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут

Слайд 9Варианты завершения транзакции
фиксация транзакции
откат транзакции

Варианты завершения транзакциификсация транзакцииоткат транзакции

Слайд 10Фиксация транзакции
Это действие, обеспечивающее запись на диск изменении в базе данных,

которые были сделаны в процессе выполнения транзакции.
Фиксация транзакцииЭто действие, обеспечивающее запись на диск изменении в базе данных, которые были сделаны в процессе выполнения

Слайд 11Откат транзакции
Это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны

операторами SQL в теле текущей незавершенной транзакции.

Откат транзакцииЭто действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной

Слайд 12Команды для управления транзакциями
COMMIT – для сохранения изменений;
ROLLBACK – для отмены

изменений;
SAVEPOINT – для установки особых точек возврата.
Команды для управления транзакциямиCOMMIT – для сохранения изменений;ROLLBACK – для отмены изменений;SAVEPOINT – для установки особых точек

Слайд 13Команда ROLLBACK
Предназначена для отмены транзакций, еще не сохраненных в базе данных.

ROLLBACK

TO имя_точки_сохранения
Команда ROLLBACKПредназначена для отмены транзакций, еще не сохраненных в базе данных.ROLLBACK TO имя_точки_сохранения

Слайд 14Команда SAVEPOINT
Предназначена для установки в транзакции особых точек, куда в дальнейшем

может быть произведен откат.

SAVEPOINT имя_точки_сохранения
Команда SAVEPOINTПредназначена для установки в транзакции особых точек, куда в дальнейшем может быть произведен откат.SAVEPOINT имя_точки_сохранения

Слайд 15Режимы транзакций в MS SQL Server
автоматическое определение транзакции (по умолчанию);
явное определение транзакции;


неявное определение транзакции.
Режимы транзакций в MS SQL Serverавтоматическое определение транзакции (по умолчанию);явное определение транзакции; неявное определение транзакции.

Слайд 16SET IMPLICIT_TRANSACTIONS OFF – автоматическое определение транзакций;
SET IMPLICIT_TRANSACTIONS ON – неявное

определение транзакций.
SET IMPLICIT_TRANSACTIONS OFF – автоматическое определение транзакций;SET IMPLICIT_TRANSACTIONS ON – неявное определение транзакций.

Слайд 17Явные транзакции
Начало транзакции: в журнале транзакций фиксируются первоначальные значения изменяемых данных

и момент начала транзакции.

BEGIN TRAN[SACTION]
[имя_транзакции| @имя_переменной_транзакции
[WITH MARK [‘описание_транзакции’]]]
Явные транзакцииНачало транзакции: в журнале транзакций фиксируются первоначальные значения изменяемых данных и момент начала транзакции.BEGIN TRAN[SACTION][имя_транзакции| @имя_переменной_транзакции[WITH MARK

Слайд 18Явные транзакции
Конец транзакции: если в теле транзакции не было ошибок, то эта команда

предписывает серверу зафиксировать все изменения, сделанные в транзакции, после чего в журнале транзакций помечается, что изменения зафиксированы и транзакция завершена.

COMMIT [TRAN[SACTION]
[имя_транзакции |
@имя_переменной_транзакции]]
Явные транзакцииКонец транзакции: если в теле транзакции не было ошибок, то эта команда предписывает серверу зафиксировать все изменения, сделанные

Слайд 19Явные транзакции
Создание внутри транзакции точки сохранения: СУБД сохраняет состояние БД в текущей точке

и присваивает сохраненному состоянию имя точки сохранения.

SAVE TRAN[SACTION]
{имя_точки_сохранения| @имя_переменной_точки_сохранения}
Явные транзакцииСоздание внутри транзакции точки сохранения: СУБД сохраняет состояние БД в текущей точке и присваивает сохраненному состоянию имя точки

Слайд 20Явные транзакции
Прерывание транзакции: когда сервер встречает эту команду, происходит откат транзакции, восстанавливается первоначальное

состояние системы, в журнале транзакций отмечается, что транзакция была отменена.

ROLLBACK [TRAN[SACTION]
[имя_транзакции |
@имя_переменной_транзакции
|имя_точки_сохранения |@имя_переменной_точки_сохранения]]
Явные транзакцииПрерывание транзакции: когда сервер встречает эту команду, происходит откат транзакции, восстанавливается первоначальное состояние системы, в журнале транзакций отмечается, что транзакция была отменена.ROLLBACK [TRAN[SACTION][имя_транзакции

Слайд 21Явные транзакции
@@TRANCOUNT - возвращает количество активных транзакций.

@@NESTLEVEL - возвращает уровень вложенности

транзакций.
Явные транзакции@@TRANCOUNT - возвращает количество активных транзакций.@@NESTLEVEL - возвращает уровень вложенности транзакций.

Слайд 22Вложенные транзакции
Это транзакции, выполнение которых инициируется из тела уже активной транзакции.

BEGIN

TRAN
INSERT Товар (Название, остаток)
VALUES ('v',40)
BEGIN TRAN
INSERT Товар (Название, остаток)
VALUES ('n',50)
BEGIN TRAN
INSERT Товар (Название, остаток)
VALUES ('m',60)
ROLLBACK TRAN
Вложенные транзакцииЭто транзакции, выполнение которых инициируется из тела уже активной транзакции.BEGIN TRANINSERT Товар (Название, остаток)VALUES ('v',40)

Слайд 23Журнал транзакций
сохранение промежуточных состояний
подтверждение транзакции, отката транзакции.

Журнал транзакцийсохранение промежуточных состояний подтверждение транзакции, отката транзакции.

Слайд 24Общие принципы восстановления
результаты зафиксированных транзакций должны быть сохранены в восстановленном состоянии

базы данных;
результаты незафиксированных транзакций должны отсутствовать в восстановленном состоянии базы данных.
Общие принципы восстановлениярезультаты зафиксированных транзакций должны быть сохранены в восстановленном состоянии базы данных; результаты незафиксированных транзакций должны

Слайд 25Восстановление нужно в случае:
индивидуального отката транзакции
жёсткого сбоя (поломка основного внешнего носителя

бд)

мягкого сбоя (внезапная потеря содержимого оперативной памяти)

Восстановление нужно в случае:индивидуального отката транзакциижёсткого сбоя (поломка основного внешнего носителя бд)мягкого сбоя (внезапная потеря содержимого оперативной

Слайд 26Должен быть применен в случаях:
стандартной ситуации отката транзакции (явное завершение

транзакции оператором ROLLBACK);
аварийное завершение работы прикладной программы (выполнению оператора ROLLBACK);
принудительный откат транзакции в случае взаимной блокировки при параллельном выполнении транзакций.

Индивидуальный откат транзакции

Должен быть применен в случаях: стандартной ситуации отката транзакции (явное завершение транзакции оператором ROLLBACK); аварийное завершение работы

Слайд 27Происходит при:
аварийном выключении электрического питания;
возникновении неустранимого сбоя процессора.
Мягкий сбой

Происходит при:аварийном выключении электрического питания; возникновении неустранимого сбоя процессора.Мягкий сбой

Слайд 28Основой восстановления является архивная копия и журнал изменений базы данных.
Жёсткий сбой

Основой восстановления является архивная копия и журнал изменений базы данных.Жёсткий сбой

Слайд 29Блокировка
Это временное ограничение на выполнение операций обработки данных.

БлокировкаЭто временное ограничение на выполнение операций обработки данных.

Слайд 30Уровни блокирования объектов
на уровне строки;
на уровне таблицы;
на уровне бд.

Уровни блокирования объектовна уровне строки;на уровне таблицы;на уровне бд.

Слайд 31Виды блокировок
коллективные блокировки (накладываются при выполнении операций чтения данных)
монопольная блокировка (используется,

если транзакция изменяет данные)

блокировка обновления

Виды блокировокколлективные блокировки (накладываются при выполнении операций чтения данных)монопольная блокировка (используется, если транзакция изменяет данные) блокировка обновления

Слайд 32Виды блокировок
блокировка записи - транзакция блокирует строки в таблицах таким образом,

что запрос другой транзакции к этим строкам будет отменен

блокировка чтения - транзакция блокирует строки так, что запрос со стороны другой транзакции на блокировку записи этих строк будет отвергнут, а на блокировку чтения – принят.

Виды блокировокблокировка записи - транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции к этим

Слайд 33«Мёртвые» блокировки
Характерны для многопользовательских систем.
«Мертвая» блокировка возникает, когда две транзакции блокируют

два блока данных и для завершения любой из них нужен доступ к данным, заблокированным ранее другой транзакцией.
«Мёртвые» блокировкиХарактерны для многопользовательских систем.«Мертвая» блокировка возникает, когда две транзакции блокируют два блока данных и для завершения

Слайд 34Вопросы
Что такое транзакция?
Какие типы транзакций вы знаете?
Какие свойства транзакций вы знаете?
Какие

варианты завершения транзакций существуют?
Какие существуют команды управления транзакциями?
Что такое блокировка?
Какие уровни блокировок вы знаете?
Какие виды блокировок вы знаете?
ВопросыЧто такое транзакция?Какие типы транзакций вы знаете?Какие свойства транзакций вы знаете?Какие варианты завершения транзакций существуют?Какие существуют команды

Слайд 35Спасибо за внимание!

Спасибо за внимание!

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть