🗊Презентация Транзакции. Часть 2

Категория: Информатика
Нажмите для полного просмотра!
Транзакции. Часть 2, слайд №1Транзакции. Часть 2, слайд №2Транзакции. Часть 2, слайд №3Транзакции. Часть 2, слайд №4Транзакции. Часть 2, слайд №5Транзакции. Часть 2, слайд №6Транзакции. Часть 2, слайд №7Транзакции. Часть 2, слайд №8Транзакции. Часть 2, слайд №9Транзакции. Часть 2, слайд №10Транзакции. Часть 2, слайд №11Транзакции. Часть 2, слайд №12Транзакции. Часть 2, слайд №13Транзакции. Часть 2, слайд №14Транзакции. Часть 2, слайд №15Транзакции. Часть 2, слайд №16Транзакции. Часть 2, слайд №17Транзакции. Часть 2, слайд №18Транзакции. Часть 2, слайд №19Транзакции. Часть 2, слайд №20Транзакции. Часть 2, слайд №21

Содержание

Вы можете ознакомиться и скачать презентацию на тему Транзакции. Часть 2. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Курс «Базы данных»

Тема. Транзакции. Часть 2
Барабанщиков
Игорь Витальевич
Описание слайда:
Курс «Базы данных» Тема. Транзакции. Часть 2 Барабанщиков Игорь Витальевич

Слайд 2





План  лекции
Проблемы выполнения параллельных транзакций и способы их решения.
Блокировки и взаимоблокировки.
Описание слайда:
План лекции Проблемы выполнения параллельных транзакций и способы их решения. Блокировки и взаимоблокировки.

Слайд 3





Многопользовательский режим работы СУБД
Если с базой данных одновременно работают несколько пользователей, СУБД должна гарантировать, что пользователи не будут мешать друг другу. 
В идеальном случае каждый пользователь должен работать с БД так, как если бы он имел к ней монопольный доступ, и не должен беспокоиться о действиях других пользователей. 
Средства обработки транзакций в SQL позволяют реляционным СУБД изолировать пользователей друг от друга именно таким образом.
Если транзакции не будут корректно обработаны, то могут возникнуть проблемы. 
Такие проблемы можно разбить на четыре основные категории.
Описание слайда:
Многопользовательский режим работы СУБД Если с базой данных одновременно работают несколько пользователей, СУБД должна гарантировать, что пользователи не будут мешать друг другу. В идеальном случае каждый пользователь должен работать с БД так, как если бы он имел к ней монопольный доступ, и не должен беспокоиться о действиях других пользователей. Средства обработки транзакций в SQL позволяют реляционным СУБД изолировать пользователей друг от друга именно таким образом. Если транзакции не будут корректно обработаны, то могут возникнуть проблемы. Такие проблемы можно разбить на четыре основные категории.

Слайд 4





Проблемы  параллелизма
Параллелизм (concurrency) – это одновременная  обработка  транзакций.
Проблемы, которые возникают при этом:
Потерянное обновление (lost update)
Неповторяющееся чтение (non-repeatable read)
Преждевременное чтение (dirty read)
Фантомная вставка (phantom insert)
Описание слайда:
Проблемы параллелизма Параллелизм (concurrency) – это одновременная обработка транзакций. Проблемы, которые возникают при этом: Потерянное обновление (lost update) Неповторяющееся чтение (non-repeatable read) Преждевременное чтение (dirty read) Фантомная вставка (phantom insert)

Слайд 5





Грязное  чтение
     «Грязное» чтение (dirty read) – чтение данных, добавленных или изменённых незафиксированной транзакцией, которая впоследствии откатится.
balance = 500
Описание слайда:
Грязное чтение «Грязное» чтение (dirty read) – чтение данных, добавленных или изменённых незафиксированной транзакцией, которая впоследствии откатится. balance = 500

Слайд 6





Неповторяющееся чтение 
(non-repeatable read)
Неповторяющееся чтение (non-repeatable read) – при повторном чтении в рамках одной транзакции, ранее прочитанные  данные  оказываются  изменёнными.
balance = 100
Описание слайда:
Неповторяющееся чтение (non-repeatable read) Неповторяющееся чтение (non-repeatable read) – при повторном чтении в рамках одной транзакции, ранее прочитанные данные оказываются изменёнными. balance = 100

Слайд 7





Потерянное  обновление
       Потерянное обновление (lost update) – 
при одновременном изменении одного блока данных разными транзакциями, одно из изменений теряется.
balance = 500
Описание слайда:
Потерянное обновление Потерянное обновление (lost update) – при одновременном изменении одного блока данных разными транзакциями, одно из изменений теряется. balance = 500

Слайд 8





Фантомная вставка (phantom insert)
Фантомная вставка (phantom insert) – одна транзакция в ходе своего выполнения несколько раз выбирает множество строк по одним и тем же критериям. 
      Другая транзакция в интервалах между этими выборками добавляет и удаляет строки, попадающие в критерии выборки первой транзакции, и успешно заканчивается. 
     В результате одни и те же выборки первой транзакции дают разные множества строк.
Описание слайда:
Фантомная вставка (phantom insert) Фантомная вставка (phantom insert) – одна транзакция в ходе своего выполнения несколько раз выбирает множество строк по одним и тем же критериям. Другая транзакция в интервалах между этими выборками добавляет и удаляет строки, попадающие в критерии выборки первой транзакции, и успешно заканчивается. В результате одни и те же выборки первой транзакции дают разные множества строк.

Слайд 9





Параллельное выполнение транзакций
Когда 2 транзакции, А и В, выполняются параллельно, СУБД  гарантирует,  что  результаты  их  выполнения будут  точно  такими  же,  как  и  в  случае,  если:
    - либо вначале выполняется транзакция А, а затем
       транзакция В; 
    - либо вначале выполняется транзакция В, а затем
       транзакция А.
Данная концепция называется сериализацией транзакций. 
На практике это означает, что каждый пользователь может работать с БД так, как если бы не было других пользователей, работающих параллельно.
Описание слайда:
Параллельное выполнение транзакций Когда 2 транзакции, А и В, выполняются параллельно, СУБД гарантирует, что результаты их выполнения будут точно такими же, как и в случае, если: - либо вначале выполняется транзакция А, а затем транзакция В; - либо вначале выполняется транзакция В, а затем транзакция А. Данная концепция называется сериализацией транзакций. На практике это означает, что каждый пользователь может работать с БД так, как если бы не было других пользователей, работающих параллельно.

Слайд 10





Сериализация  транзакций
Процедура  согласованного  выполнения параллельных  транзакций:
В  ходе  выполнения  транзакции пользователь видит только согласованные данные.  
Пользователь  не  должен  видеть несогласованных промежуточных данных.
Когда  в  БД  две  транзакции  выполняются параллельно,  то  СУБД  гарантированно поддерживает  принцип  независимого выполнения  транзакций.
Описание слайда:
Сериализация транзакций Процедура согласованного выполнения параллельных транзакций: В ходе выполнения транзакции пользователь видит только согласованные данные. Пользователь не должен видеть несогласованных промежуточных данных. Когда в БД две транзакции выполняются параллельно, то СУБД гарантированно поддерживает принцип независимого выполнения транзакций.

Слайд 11





Уровни  изоляции  транзакций
Стандарт  ANSI/ISO  для  SQL  устанавливает различные  4 уровня  изоляции транзакций.
Уровень  изоляции  определяет  может  ли читающая  транзакция  считывать  («видеть») результаты  работы  других  одновременно выполняемых  завершенных  и\или незавершенных  пишущих  транзакций.
По мере увеличения уровня изоляции увеличивается число проблем, от которых СУБД защищает пользователя.
Описание слайда:
Уровни изоляции транзакций Стандарт ANSI/ISO для SQL устанавливает различные 4 уровня изоляции транзакций. Уровень изоляции определяет может ли читающая транзакция считывать («видеть») результаты работы других одновременно выполняемых завершенных и\или незавершенных пишущих транзакций. По мере увеличения уровня изоляции увеличивается число проблем, от которых СУБД защищает пользователя.

Слайд 12





Уровни  изоляции  транзакций
READ UNCOMMITTED - нефиксированное чтение. Здесь возможно получение разных результатов для одинаковых запросов без учета фиксации транзакции.
READ COMMITTED - фиксированное чтение. Этот уровень позволяет получать разные результаты для одинаковых запросов, но только после фиксации транзакции, повлекшей изменение данных;
REPEATABLE READ - повторяющееся чтение. На этом уровне разрешено выполнение операторов INSERT, приводящих к конфликтной ситуации "фантомная вставка". 
SERIALIZABLE - последовательное выполнение (используется по умолчанию). Этот уровень гарантирует предотвращение всех описанных выше конфликтных ситуаций, но при нем наблюдается самая низкая степень параллелизма;
Описание слайда:
Уровни изоляции транзакций READ UNCOMMITTED - нефиксированное чтение. Здесь возможно получение разных результатов для одинаковых запросов без учета фиксации транзакции. READ COMMITTED - фиксированное чтение. Этот уровень позволяет получать разные результаты для одинаковых запросов, но только после фиксации транзакции, повлекшей изменение данных; REPEATABLE READ - повторяющееся чтение. На этом уровне разрешено выполнение операторов INSERT, приводящих к конфликтной ситуации "фантомная вставка". SERIALIZABLE - последовательное выполнение (используется по умолчанию). Этот уровень гарантирует предотвращение всех описанных выше конфликтных ситуаций, но при нем наблюдается самая низкая степень параллелизма;

Слайд 13





Уровни  изоляции  транзакций
Описание слайда:
Уровни изоляции транзакций

Слайд 14





Блокировка
Наиболее распространенный механизм разграничения пишущих транзакций – использование блокировок.

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

Слайд 15





Типы блокировок
     Различают следующие типы блокировок:
По степени доступности данных:
    - разделяемые
    - исключающие
По множеству блокируемых данных:
    - строчные
    - страничные
    - табличные
По способу установки:
    - автоматические
    - явные
Описание слайда:
Типы блокировок Различают следующие типы блокировок: По степени доступности данных: - разделяемые - исключающие По множеству блокируемых данных: - строчные - страничные - табличные По способу установки: - автоматические - явные

Слайд 16





Режимы  блокировки
S (Shared) Совместный режим блокировки — нежесткая или разделяемая блокировка :
Разделяемый захват объекта
Для выполнения операции чтения объекта (SELECT)
Объекты не изменяются при выполнении транзакции и доступны другим транзакциям  только для чтения

X (eXclusive) Монопольный режим блокировки — жесткая или эксклюзивная блокировка : 
Монопольный захват объекта.
Для выполнения операций занесения, удаления и модификации (INSERT, DELETE, UPDATE). 
Объекты недоступны для других транзакций до момента окончания работы данной транзакции.
Описание слайда:
Режимы блокировки S (Shared) Совместный режим блокировки — нежесткая или разделяемая блокировка : Разделяемый захват объекта Для выполнения операции чтения объекта (SELECT) Объекты не изменяются при выполнении транзакции и доступны другим транзакциям только для чтения X (eXclusive) Монопольный режим блокировки — жесткая или эксклюзивная блокировка : Монопольный захват объекта. Для выполнения операций занесения, удаления и модификации (INSERT, DELETE, UPDATE). Объекты недоступны для других транзакций до момента окончания работы данной транзакции.

Слайд 17





Матрица совместимости блокировок
Описание слайда:
Матрица совместимости блокировок

Слайд 18





Блокировки в Oracle
При выполнении транзакции СУБД Oracle автоматически блокирует необходимые данные.
Блокировка устанавливается на самом минимальном уровне – на уровне строки.
Это позволяет одновременно выполнять много параллельных транзакций.
Описание слайда:
Блокировки в Oracle При выполнении транзакции СУБД Oracle автоматически блокирует необходимые данные. Блокировка устанавливается на самом минимальном уровне – на уровне строки. Это позволяет одновременно выполнять много параллельных транзакций.

Слайд 19





Взаимоблокировки
Взаимная блокировка (deadlock) — это ситуация в СУБД, при которой двое или более сеансов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими же сеансами
Описание слайда:
Взаимоблокировки Взаимная блокировка (deadlock) — это ситуация в СУБД, при которой двое или более сеансов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими же сеансами

Слайд 20





Пример. Взаимоблокировка
Описание слайда:
Пример. Взаимоблокировка

Слайд 21





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



Похожие презентации
Mypresentation.ru
Загрузить презентацию