Презентация Обработка транзакций в реальном масштабе времени (OLTP - технология) онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Обработка транзакций в реальном масштабе времени (OLTP - технология) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 26 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Обработка транзакций в реальном масштабе времени (OLTP - технология)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    26 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    158.00 kB
  • Просмотров:
    52
  • Скачиваний:
    1
  • Автор:
    неизвестен



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

№1 слайд
Обработка транзакций в
Содержание слайда: 3_Обработка транзакций в реальном масштабе времени (OLTP - технология)

№2 слайд
OLTP - технологии OLTP Online
Содержание слайда: OLTP - технологии OLTP – Online Transaction Processing, системы оперативной обработки транзакций. Понятие транзакции необходимо для поддержания логической целостности БД. Транзакция - совокупность действий, которая должна выполняться полностью. Если транзакция успешно выполняется, то СУБД фиксирует изменения БД, иначе выполняется откат до состояния, предшествующего транзакции. Транзакция представляет собой последовательность операторов языка SQL, которая рассматривается как неделимое действие над БД. Традиционные транзакции характеризуются 4 свойствами (ACID - Atomicity, Consistency, Isolation, Durability): атомарности: транзакция должна быть выполнена в целом или не выполнена вовсе. согласованности: по мере выполнения транзакций данные переходят из одного согласованного состояния в другое, т.е. транзакция не разрушает взаимной согласованности данных. изолированности: конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно. долговечности: если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок). Итак, транзакция: последовательность согласованных изменений данных и схемы БД; каждое логическое действие включает одну или более физических операций над БД.

№3 слайд
Транзакция - единица работы в
Содержание слайда: Транзакция - единица работы в БД Команда Begin Tran[action] начинает транзакцию, все последующие команды образуют блок команд транзакции . Заканчивается транзакция командой Commit Tran[saction] или Commit Work, которая предписывает серверу зафиксировать все изменения, выполненные командами транзакции. Второй вариант - завершение транзакции командой Rollback Tran[saction] или Rollback Work, которая заставляет сервер отменить все изменения, сделанные транзакцией. Указание Work в командах означает завершение всех транзакций. Сервер работает по умолчанию в режиме автоматического начала транзакций, в котором каждая команда рассматривается как транзакция, если нет явных команд определения транзакции. Этот режим устанавливается командой SET IMPLICIT_TRANSACTION OFF. Другой режим неявного начала транзакций (устанавливается командой SET IMPLICIT_TRANSACTION ON) автоматически начинает новую транзакцию, если закончена предыдущая командой фиксации или отката. Откат и фиксация транзакций становятся возможными благодаря журналу транзакций. При выполнении любого оператора SQL, который вносит изменения в БД, СУБД автоматически заносит очередную запись в журнал транзакций и после этого вносит изменения в БД. Если после оператора SQL был выполнен оператор Commit, то в журнале транзакций делается отметка о завершении текущей транзакции. Если же после оператора SQL следовал оператор Rollback, то СУБД просматривает журнал транзакций и отыскивает записи, отражающие состояние измененных строк до внесения изменений и восстанавливает те строки в таблицах БД, которые были изменены текущей транзакцией. Таким образом, аннулируются все изменения в БД.

№4 слайд
Управление транзакциями
Содержание слайда: Управление транзакциями Поддержание механизма транзакций - показатель развитости СУБД. Транзакция может быть представлена отдельной программой, являться частью алгоритма программы или отдельной командой и включать произвольное количество операций, выполняемых в БД. Одной из проблем многопользовательских СУБД является организация одновременного доступа к одним и тем же данным множества пользователей с помощью механизма транзакций (потеря изменений, незафиксированные изменения и т.п.). Потеря изменений - две или несколько программ читают одни и те же данные из БД, вносят в них какие-либо изменения и затем пытаются одновременно записать результат по прежнему месту, но в БД могут быть сохранены изменения, выполненные только одной программой, другие изменения будут потеряны. Незафиксированные изменения - когда в процессе выполнения транзакции одной программой в данные были внесены изменения и тут же прочитаны другой программой, однако затем в первой программе транзакция была прервана оператором Rollback, т.е. вторая программа прочитала неверные, незафиксированные данные. Чтение грязных данных - когда транзакция читает данные, изменяемые параллельной транзакцией. В таком случае временные, неподтвержденные данные могут не удовлетворять ограничениям целостности или правилам. И, хотя к моменту фиксации транзакции они могут быть приведены в «порядок», другая транзакция уже может воспользоваться этими неверными данными, что приведет к нарушению ее работы.

№5 слайд
Содержание слайда:

№6 слайд
Подсистема обработка
Содержание слайда: Подсистема обработка транзакций СУБД

№7 слайд
Менеджер транзакций
Содержание слайда: Менеджер транзакций осуществляет координацию работы транзакций, выполняемых прикладными программами. Менеджер транзакций осуществляет координацию работы транзакций, выполняемых прикладными программами. Он взаимодействует с планировщиком (менеджер блокировок), отвечающим за реализацию выбранной стратегии управления параллельностью; второе название применимо в том случае, если выбран протокол управления на основе системы блокировок. Цель работы планировщика – достижение максимально возможного уровня параллельности, при условии исключения влияния параллельно выполняющихся транзакций друг на друга, поскольку это может послужить источником нарушения согласованности базы данных. Если в процессе выполнения транзакции происходит откат, то БД может находиться в несогласованном состоянии. Задачей менеджера восстановления является предоставление гарантий того, что в подобном случае БД будет автоматически восстановлена в то состояние, в котором она находилась на момент начала выполнения транзакции. Менеджер буферов отвечает за передачу данных основной памяти компьютера и вторичной дисковой памяти.

№8 слайд
Транзакции и целостность БД
Содержание слайда: Транзакции и целостность БД

№9 слайд
Сериализация транзакций Во
Содержание слайда: Сериализация транзакций Во избежание искажения данных в запросах к БД требуется разработать процедуру, обеспечивающую согласованность выполнения параллельных транзакций, т.е. изолированность транзакций. Эта процедура в СУБД носит название сериализации транзакций. Для поддержки параллельной работы транзакции строится специальный план. План выполнения набора транзакций называется сериальным, если результат параллельного выполнения транзакций эквивалентен результату последовательного выполнения этих же транзакций. Сериализация транзакций - механизм выполнения транзакций по некоторому сериальному плану, формируемому самой СУБД. При этом: в процессе выполнения транзакции программа «видит» только согласованные состояния БД; пользователь никогда не может получить доступ к незафиксированным изменениям в данных, достигнутым в результате действия другой программы; если две транзакции А и В выполняются параллельно, то СУБД полагает, что результат будет такой же, как если бы “транзакция А” выполнялась бы первой, а за ней выполнялась другая “транзакция В”, т.е. они выполняются последовательно.

№10 слайд
Существует два подхода к
Содержание слайда: Существует два подхода к сериализации транзакций: основанный на синхронизационных захватах (блокировках) объектов БД, и подход, основанный на использовании временных меток (если транзакция Т1 началась раньше транзакции Т2, то система обеспечивает такой режим выполнения, как если бы Т1 была целиком выполнена да начала Т2. К недостаткам этого метода можно отнести более частные откаты транзакций, чем в случае использования синхронизационных захватов). Существует два подхода к сериализации транзакций: основанный на синхронизационных захватах (блокировках) объектов БД, и подход, основанный на использовании временных меток (если транзакция Т1 началась раньше транзакции Т2, то система обеспечивает такой режим выполнения, как если бы Т1 была целиком выполнена да начала Т2. К недостаткам этого метода можно отнести более частные откаты транзакций, чем в случае использования синхронизационных захватов). Для каждого из этих подходов могут существовать пессимистические и оптимистические варианты решения: первые отличаются тем, что применяются в тех ситуациях, когда конфликты возникают часто и распознаются и разрешаются немедленно при их возникновении; вторые - основываются на том, что результаты всех операций на объектами БД сохраняются в рабочей памяти транзакций. Рассмотрим некоторые методы сериализации транзакций с учетом их пессимистических разновидностей. Основным механизмом достижения изолированности операций является механизм блокировок. Транзакция запрашивает захват объекта в одном из режимов: совместный (S - Shared) для операции чтения объекта или монопольный (X - eXclusive) для операций занесения, удаления и модификации. Для реляционных БД объектами захвата могут быть файл: несколько отношений с индексами; отношение (таблица); страница данных: несколько кортежей (записей), индексная страница; запись; Чем крупнее объект, тем меньше возможностей распараллеливания выполнения транзакций и меньше накладные расходы.

№11 слайд
Содержание слайда:

№12 слайд
Содержание слайда:

№13 слайд
Блокировки транзакций На
Содержание слайда: Блокировки транзакций На основании X- и S- блокировок может быть основан протокол доступа к данным: Транзакция, предназначенная для извлечения объекта базы данных, должна осуществить наложение S- блокировки на выбранный объект базы данных. Транзакция, предназначенная для обновления объекта базы данных, должна осуществить наложение X-блокировки на объект базы данных. Если запрашиваемая блокировка со стороны второй транзакции отвергается из-за конфликта с некоторой другой блокировкой со стороны первой транзакции, то вторая транзакция переходи в режим ожидания. X-блокировки не снимаются до конца выполнения транзакции (или до выполнения операторов Commit, Rollback). Для обеспечения сериализации транзакций синхронизационные захваты объектов, произведенные по инициативе транзакции, можно снимать только после ее завершения (двухфазный протокол синхронизационных захватов Two-Phase Locks, в соответствии с которым выполнение транзакции разбивается на 2 фазы: накопление захватов и освобождение захватов после фиксации или отката). Механизм блокировок разрешает многопользовательский доступ, однако замедляет выполнение транзакции, что вызвано необходимостью ожидания освобождения занятых данных. Если СУБД реализована таким образом, что может захватывать для выполнения транзакции отдельные записи таблицы, то скорость обработки существенно повысится. Блокировка на уровне записей позволяет достигнуть максимальной производительности за счет того, что объект “запись” является минимальной структурной единицей БД.

№14 слайд
Мертвые блокировки Одной из
Содержание слайда: “Мертвые блокировки” Одной из проблем механизма блокирования являются «мертвые блокировки» (DeadLock). При возникновении подобной ситуации две или более транзакций находятся во взаимном ожидании освобождения блокировок, удерживаемых каждой из них. Рассмотрим пример возникновения тупика: пусть транзакции Т1и Т2 установили монопольные захваты, соответственно, объектов А1 и А2, после этого транзакция Т1 требуется совместный захват А2, а транзакции Т2 - совместный захват А1. Ни одна транзакция не может продолжиться, монопольные захваты не смогут быть сняты, следовательно, совместные захваты не будут удовлетворены. Поскольку тупики возможны, и никакого естественного выхода из них не может быть, то необходимо такие ситуации обнаруживать и искусственно устранять. Сервер БД имеет встроенный механизм разрешения этой проблемы: предупреждение ошибочных ситуаций (СУБД заранее определяет ситуации, в которых транзакции могут вызывать появление этой ошибки, и предотвращает их возникновение, например, установлением порядка выполнения транзакций на основе использования временных меток. В частности, метод «Ожидание-отмена» требует, чтобы новые транзакции ожидали завершения старых; в противном случае, транзакция отменяется и перезапускается с той же самой временной меткой); выявление взаимных блокировок с последующим их устранением (СУБД допускает появление подобных ситуаций в системе, затем распознает их и организует выход из ситуации. Этот метод более прост в реализации, и поэтому нашел практическое применение. Разрушение тупика начинается с выбора в цикле транзакции - жертвы, чтобы обеспечить возможность продолжения работы других транзакций. Критерием выбора является минимизация стоимости транзакции; стоимость определяется на основе многофакторной оценки, в которую входят с разными весами время выполнения, число накопленных захватов, приоритет. Производится ее откат, что обеспечивает продолжение работы другим транзакциям.

№15 слайд
Метод временных меток При
Содержание слайда: Метод временных меток При соблюдении двухфазного протокола синхронизации захватов обеспечивается полная сериализация транзакций. Для смягчения требований сериализации транзакций вводится понятие уровня изолированности пользователя. Самый высокий уровень изолированности соответствует протоколу сериализации транзакций, что обеспечивает полную изоляцию транзакций и полную корректную обработку параллельных запросов. Следующий уровень изолированности называется уровнем подтвержденного чтения. На этом уровне транзакция не имеет доступа к промежуточным или окончательным результатам других транзакций, поэтому пропавшие обновления, промежуточные или несогласованные данные возникнуть не могут. Во время выполнения своей транзакции можно увидеть строку, добавленную в БД другой транзакцией, т.е. сохраняется проблема строк-призраков. Третий уровень изолированности также связан с подтвержденным чтением. На этом уровне изолированности транзакция не имеет доступа к промежуточным результатам других транзакций, поэтому пропавшие обновления и промежуточные данные возникнуть не могут. Однако, окончательные данные, полученные в ходе выполнения других транзакций, могут быть доступны текущей транзакции. При этом уровне изолированности транзакция не может обновлять строку, уже обновленную другой транзакцией. При попытке выполнить подобное обновление транзакция будет отменена автоматически, во избежание возникновения проблемы попавшего обновления. Самый низкий уровень изолированности называют уровнем неподтвержденного или «грязного» чтения. При этом уровне изолированности текущая транзакция видит промежуточные и несогласованные данные, и также ей доступны строки-призраки. Однако даже на этом уровне изолированности СУБД предотвращает попавшие обновления.

№16 слайд
Четыре уровня изолированности
Содержание слайда: Четыре уровня изолированности транзакций (стандарт ANSI) Read Uncommited. Не допускается обновление данных, пока не закончится первая транзакция, обновляющая эти данные (0-ой уровень изолированности – запрет потерянных и незафиксированных изменений). Read Commited. Не допускается чтение данных, пока не закончится первая транзакция, обновляющая эти данные (1-ый уровень изолированности нет потерянных и незафиксированных изменений и «грязного чтения»). Repeatable Read. Не допускается обновление и чтение данных, пока не закончится транзакция, обновляющая эти данные (2-ой уровень изолированности – запрещено неповторяемое чтение). Serializable. Не допускается обновление и чтение данных, пока не закончится транзакция, обновляющая или читающая эти данные (3-ий уровень изолированности - нет фантомов). Уровень изолированности транзакций устанавливается командой: SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITED READ COMMITED REPEATABLE READ SERILIZABLE } Автоматический откат транзакции устанавливается командой: SET XACT_ABORT ON Чем выше уровень изолированности, тем меньше возможностей для параллельного выполнения транзакций.

№17 слайд
Содержание слайда:

№18 слайд
Символы выделения записи
Содержание слайда: Символы выделения записи

№19 слайд
Типы запросов, связанных с
Содержание слайда: Типы запросов, связанных с транзакциями В MS Access существуют следующие типы запросов по изменению БД

№20 слайд
Содержание слайда:

№21 слайд
Типы блокировки записей в MS
Содержание слайда: Типы блокировки записей в MS Access

№22 слайд
Содержание слайда:

№23 слайд
Содержание слайда:

№24 слайд
Существует три метода
Содержание слайда: Существует три метода обработки транзакций в языке VBA: Существует три метода обработки транзакций в языке VBA: BeginTrans Обозначает начало транзакции CommitTrans Обозначает конец успешной транзакции RollbackTrans Обозначает конец безуспешной транзакции

№25 слайд
Access поддерживает до
Содержание слайда: Access поддерживает до 5 уровней вложенных транзакций Access поддерживает до 5 уровней вложенных транзакций Когда одна транзакция вложена в другую, обновление БД не происходит до тех пор, пока последняя вложенная транзакция не завершится успешно (т.е. пока для нее не выполнится метод CommitTrans). Если этот метод не выполняется или соответствующий метод RollbackTrans выполняется, все вложенные транзакции отменяются. Тип связи, установленной между таблицами, контролирует транзакцию. Для набора данных, использующего метод RollbackTrans для типа связей (в VBA), выполняется откат при выполнении этого метода. Когда данные в БД корректируются через связанные формы, пользователи имеют ограниченные права на контроль транзакций. MS Access контролирует изменения в БД. Решение проблем: определяйте конкурирующие транзакции (например, удалить запись без ее изменения); блокируйте записи для предотвращения выполнения более одной транзакции (блокировка записи позволяет другим читать ее без права изменения).

№26 слайд
Создание триггера в проекте
Содержание слайда: Создание триггера в проекте БД (ADP) Триггер — это объект БД, который запускается на выполнение при выполнении действия в БД. Для создания триггера необходимо указать следующее: текущую таблицу; транзакции, изменяющие данные, которые запускают триггер: добавление новых данных (INSERT), обновление существующих данных (UPDATE) или удаление существующих данных (DELETE); действия, которые триггер будет выполнять сразу после указанных транзакций. Триггеры записываются как инструкции Transact-SQL для БД Microsoft SQL Server. Примечание 1.  Включайте в триггер инструкции RAISERROR и ROLLBACK для ситуаций, когда триггер обнаружит, что изменения не разрешены. Это обеспечит синхронизацию набора записей клиента с данными на сервере. При включении только одной из инструкций RAISERROR или ROLLBACK набор записей клиента не будет отражать текущее состояние данных на сервере. Инструкция RAISERROR должна определяться с уровнем важности >10. Примечание 2. Выберите параметр, который отключает ограничение внешнего ключа во время выполнения транзакций INSERT и UPDATE, если известно, что новые данные будут нарушать ограничение, либо если ограничение применяется только к данным, уже существующим в БД.

Скачать все slide презентации Обработка транзакций в реальном масштабе времени (OLTP - технология) одним архивом:
Похожие презентации