Инфоурок Другое ПрезентацииПрезентация на тему "Транзакции и блокировки"

Презентация на тему "Транзакции и блокировки"

Скачать материал
Скачать материал

Описание презентации по отдельным слайдам:

  • Транзакции, блокировки и согласованность данных

    1 слайд

    Транзакции, блокировки и согласованность данных

  • ТранзакцияЭто последовательность операций, производимых над БД, рассматриваем...

    2 слайд

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

  • ПримерПримером транзакции может быть перевод денег через банкомат.
Сумма 100...

    3 слайд

    Пример
    Примером транзакции может быть перевод денег через банкомат.
    Сумма 100 т.р. переводится с одного счета на другой. Программа вычитает сумму с первого счета, после чего прибавляет ее ко второму. Во время работы программы после выполнения первой модификации может произойти сбой питания, и увеличение второго счета не произойдёт.
    Для того чтобы избежать подобной ситуации обе команды должны быть объединены в транзакцию.

  • ПримерПример транзакции по вводу данных о вновь поступивших в библиотеку книг...

    4 слайд

    Пример
    Пример транзакции по вводу данных о вновь поступивших в библиотеку книгах.
    Эту операцию можно разбить на 2 последовательные: сначала ввод данных о книге – это новая строка в таблице Книги. Затем необходимо ввести данные обо всех экземплярах книги - это ввод набора новых строк в таблицу Экземпляры. Если эта последовательность действий будет прервана, то база данных не будет соответствовать реальному объекту, поэтому желательно выполнять ее как единую работу над базой данных.

  • Проектирование транзакции заключается в определении:данных, используемых тран...

    5 слайд

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

  • Свойства транзакцийАтомарность – транзакция должна быть выполнена целиком или...

    6 слайд

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

  • Свойства транзакцийИзолированность – означает, что конкурирующие за доступ к...

    7 слайд

    Свойства транзакций
    Изолированность – означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей иллюзия параллельности.
    Долговечность – если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах.

  • ФИКСАЦИЯ ИЛИ ОТКАТ?Если все операторы выполнены успешно и не произошло никаки...

    8 слайд

    ФИКСАЦИЯ ИЛИ ОТКАТ?
    Если все операторы выполнены успешно и не произошло никаких сбоев программного или аппаратного обеспечения, то ФИКСАЦИЯ (все результаты транзакции становятся постоянными).

    Если в процессе выполнения транзакции случилось нечто, что ее нормальное завершение становится невозможным, то БД возвращается в свое исходное состояние, т.е. ОТКАТ.

  • Модель транзакцийСтандартом ANSI/ISO SQL определена модель транзакций и функц...

    9 слайд

    Модель транзакций
    Стандартом ANSI/ISO SQL определена модель транзакций и функции операторов:

    COMMIT - сохраняет изменения.
    ROLLBACK - откатывает (отменяет) изменения.
    SAVEPOINT - создаёт точку к которой группа транзакций может откатиться.
    SET TRANSACTION - размещает имя транзакции.

  • Транзакция завершается одним из 4-х возможных вариантов: Оператор COMMIT озна...

    10 слайд

    Транзакция завершается одним из 4-х возможных вариантов:
    Оператор COMMIT означает успешное завершение транзакции; его использование делает постоянными изменения, внесенные в БД в текущей транзакции.
    Оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в БД в рамках этой транзакции; новая транзакция начинается непосредственно после использования ROLLBACK.

  • Транзакция завершается одним из 4-х возможных вариантов:Успешное завершение п...

    11 слайд

    Транзакция завершается одним из 4-х возможных вариантов:
    Успешное завершение программы, в которой была инициирована текущая транзакция, означает успешное ее завершение (как будто был использован оператор COMMIT).
    Ошибочное завершение программы прерывает транзакцию (как будто был использован оператор ROLLBACK).

  • Журнал транзакцийЭто особая часть БД, недоступная пользователям СУБД и поддер...

    12 слайд

    Журнал транзакций
    Это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью, в которую поступают записи обо всех изменениях основной части БД и которая сохраняет промежуточные состояния БД необходимые для отката транзакции.

  • Проблемы параллельного выполнения транзакций пропавшие изменения;
проблемы пр...

    13 слайд

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

  • Сериализация транзакцийЭто механизм их выполнения по некоторому сериальному п...

    14 слайд

    Сериализация транзакций
    Это механизм их выполнения по некоторому сериальному плану.
    Самый популярный механизм реализации сериализации – механизм блокировок.

  • DELETE FROM CUSTOMERS
WHERE AGE = 25;
COMMIT;
Из таблицы будут удалены клиент...

    15 слайд

    DELETE FROM CUSTOMERS
    WHERE AGE = 25;
    COMMIT;

    Из таблицы будут удалены клиенты с возрастом 25, а затем эти изменения будут сохранены в БД.
    DELETE FROM CUSTOMERS
    WHERE AGE = 25;
    ROLLBACK;
    Из БД будут удалены все записи для которых возраст = 25, а затем эти изменения будут отменены.

  • SAVEPOINT SAVEPOINT_NAME;ROLLBACK TO SAVEPOINT_NAME;Установлена точка транзак...

    16 слайд

    SAVEPOINT SAVEPOINT_NAME;
    ROLLBACK TO SAVEPOINT_NAME;
    Установлена точка транзакции, к которой можно вернуть транзакцию, не откатывая ее полностью.
    Возврат к SAVEPOINT.

  • Savepoint created.
DELETE FROM CUSTOMERS WHERE ID=1;
1 row deleted.
SAVEPOINT...

    17 слайд

    Savepoint created.
    DELETE FROM CUSTOMERS WHERE ID=1;
    1 row deleted.
    SAVEPOINT SP2;
    Savepoint created.
    DELETE FROM CUSTOMERS WHERE ID=2;
    1 row deleted.
    SAVEPOINT SP3;
    Savepoint created.
    DELETE FROM CUSTOMERS WHERE ID=3;
    1 row deleted.
    ROLLBACK TO SP2;
    Rollback complete.
    Создаётся точка отката перед каждым удалением, чтобы вернуть данные в исходное состояние.
    Откатить операцию к точке SAVEPOINT, которая определена как SP2.

  • RELEASE SAVEPOINT SAVEPOINT_NAME;SET TRANSACTION [ READ WRITE | READ ONLY ];У...

    18 слайд

    RELEASE SAVEPOINT SAVEPOINT_NAME;
    SET TRANSACTION [ READ WRITE | READ ONLY ];
    Указание характеристик транзакций
    Удаление созданной точки SAVEPOINT.

  • БлокировкиБлокирование обеспечивает логическую целостность транзакций и данны...

    19 слайд

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

  • Блокируемые ресурсыконкретная строка в таблице;
ключ (один или несколько ключ...

    20 слайд

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

  • Режимы блокировок

    21 слайд

    Режимы блокировок

  • Совмещаемая (Shared) блокировкаИспользуются для операций считывания (SELECT)...

    22 слайд

    Совмещаемая (Shared) блокировка
    Используются для операций считывания (SELECT) и предотвращают изменение (UPDATE, DELETE) заблокированного ресурса, может быть совмещена с другими блокировками.

  • Монопольная (Exclusive) блокировкаИспользуется для операций изменения данных...

    23 слайд

    Монопольная (Exclusive) блокировка
    Используется для операций изменения данных (UPDATE, DELETE), не может быть установлена, если существуют какие-либо другие блокировки на ресурсе, т.е. команда будет ждать снятия всех существующих блокировок.

  • Блокировка обновления (Update)Применяется, когда допустимо обновление ресурса...

    24 слайд

    Блокировка обновления (Update)
    Применяется, когда допустимо обновление ресурса. Только одна транзакция единовременно может наложить ее. Если транзакция действительно производит изменение, то эта блокировка преобразуется в монопольную, иначе – в разделяемую.

  • Блокировки с намерением (Intent)Перед установкой низкоуровневых блокировок (у...

    25 слайд

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

  • Блокировки с намерением (Intent)блокировка с намерением совмещаемого доступа;...

    26 слайд

    Блокировки с намерением (Intent)
    блокировка с намерением совмещаемого доступа;
    блокировка с намерением монопольного доступа;
    совмещаемая блокировка с намерением монопольного доступа;
    блокировка с намерением обновления;
    совмещаемая блокировка с намерением обновления;
    блокировка обновления с намерением монопольного доступа.

  • Блокировка схем (Schema)Применяется при выполнении операции, затрагивающей сх...

    27 слайд

    Блокировка схем (Schema)
    Применяется при выполнении операции, затрагивающей схему таблицы, например, при добавлении поля в таблицу или компиляции запросов.

  • Блокировка схем (Schema)Блокировка изменения схемы – устанавливается при обно...

    28 слайд

    Блокировка схем (Schema)
    Блокировка изменения схемы – устанавливается при обновлении схемы таблицы и на время существования запрещает любой доступ к данным таблицы
    Блокировка стабильности схемы – устанавливается при выполнении запросов; блокировка добавляется ко всем объектам схемы, которые задействованы в запросе и на время существования предотвращает их изменение.

  • Блокировка массового обновления  (Bulk update)Позволяет поддерживать нескольк...

    29 слайд

    Блокировка массового обновления (Bulk update)
    Позволяет поддерживать несколько одновременных потоков массовой загрузки данных в одну и ту же таблицу и при этом запрещает доступ к таблице любым другим процессам, отличным от массовой загрузки данных.

  • Блокировка диапазона ключа (Range)Позволяет предотвратить проблему появления...

    30 слайд

    Блокировка диапазона ключа (Range)
    Позволяет предотвратить проблему появления фантомов, путём блокирования диапазона выбранных строк.

  • Правила Дейта

    31 слайд

    Правила Дейта

  • Локальная автономияУправление данными на каждом из узлов распределенной систе...

    32 слайд

    Локальная автономия
    Управление данными на каждом из узлов распределенной системы выполняется локально, независимо от других узлов системы.

  • Независимость от центрального узлаВ идеальной системе все узлы равноправны и...

    33 слайд

    Независимость от центрального узла
    В идеальной системе все узлы равноправны и независимы, а расположенные на них БД являются равноправными поставщиками данных в общее пространство данных.

  • Непрерывное функционированиеВозможность непрерывного доступа к данным вне зав...

    34 слайд

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

  • Независимость от расположенияПользователь, обращающийся к распределенной БД,...

    35 слайд

    Независимость от расположения
    Пользователь, обращающийся к распределенной БД, ничего не знает о физическом размещении данных в узлах ИС.

    Все операции над данными выполняются без учета их местонахождения.

  • Независимость от фрагментацииВозможность распределенного размещения данных, л...

    36 слайд

    Независимость от фрагментации
    Возможность распределенного размещения данных, логически представляющих собой единое целое.
    Фрагментация
    Горизонтальная - хранение строк одной таблицы на различных узлах
    Вертикальная - распределение столбцов логической таблицы по нескольким узлам.

  • Независимость от репликацииВозможность переноса изменений между БД средствами...

    37 слайд

    Независимость от репликации
    Возможность переноса изменений между БД средствами, не видимыми пользователю распределенной системы.

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

    38 слайд

    Обработка распределенных запросов
    Возможность выполнения операций выборки над распределенной БД, сформулированных в рамках обычного запроса на языке SQL.

  • Управление распределенными транзакциямиВозможность выполнения операций обновл...

    39 слайд

    Управление распределенными транзакциями
    Возможность выполнения операций обновления распределенной БД (INSERT, UPDATE, DELETE), не разрушающего целостность и согласованность данных.

  • Аппаратная независимостьВ качестве узлов распределенной системы могут выступа...

    40 слайд

    Аппаратная независимость
    В качестве узлов распределенной системы могут выступать компьютеры любых моделей и производителей.

  • Независимость от ОСВозможно многообразие операционных систем, управляющих узл...

    41 слайд

    Независимость от ОС
    Возможно многообразие операционных систем, управляющих узлами распределенной системы.

  • Независимость от сетиСпектр поддерживаемых конкретной СУБД сетевых протоколов...

    42 слайд

    Независимость от сети
    Спектр поддерживаемых конкретной СУБД сетевых протоколов не должен быть ограничением системы с распределенными БД.

  • Независимость от типа СУБДВ распределенной системе могут «мирно сосуществоват...

    43 слайд

    Независимость от типа СУБД
    В распределенной системе могут «мирно сосуществовать» СУБД различных производителей и возможны операции поиска и обновления в БД различных моделей и форматов.

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

    44 слайд

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

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 011 607 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 02.10.2020 202
    • PPTX 129 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Федотова Ксения Андреевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Федотова Ксения Андреевна
    Федотова Ксения Андреевна
    • На сайте: 4 года и 9 месяцев
    • Подписчики: 4
    • Всего просмотров: 128515
    • Всего материалов: 93

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой