Определение транзакции и ее свойства
Современные средства и механизмы
Поддержки транзакций в СУРБД
Курсовая работа
студентки группы ЭМ-301701
Мальцевой А. А.
___________________
Научный руководитель:
Озорнин П. Н. ___________________
Екатеринбург
2012 г.
Оглавление
Введение. 3
Глава 1. Основные термины и понятия. 4
1.1 Определение транзакции и ее свойства. 4
1.2 Уровни изоляции транзакций. 7
1.3 Реализация уровней изоляции и свойств ACID.. 9
1.3.1 Журнализация транзакций. 11
1.3.2 Механизм теневых страниц. 13
Глава 2. Механизмы поддержки транзакций в различных СУРБД.. 15
2.1 Oracle. 15
2.2 MS SQL Server. 17
2.3 PostgreSQL.. 19
2.4 MySQL.. 21
2.5 System R.. 22
Заключение. 27
Список литературы.. 28
Введение
Актуальность данного исследования обусловлена необходимостью обработки большого количества баз данных в различных отраслях.
Целью данной работы является рассмотрение технологии работы с транзакциями, а так же работу транзакций в различных СУРБД.
Реализация поставленной цели потребовала решения ряда конкретных задач, а именно:
1. Рассмотреть принцип создания и работы транзакции;
2. Рассмотреть свойства транзакций;
3. Рассмотреть технологию применения транзакций в различных СУРБД.
Работа состоит из введения, двух глав, заключения и списка литературы. Во введении обоснована актуальность исследования и даны его основные характеристики. Первая глава посвящена основным сведениям. В ней рассматривается сущность транзакции, основные ее характеристики, свойства транзакций, журнал транзакций, журнализация и буферизация и др. Во второй главе рассмотрены механизмы поддержки транзакций в СУРБД Oracle, MS SQL Server, PostgreSQL, MySQL, System R. В заключении приведены основные выводы проведенного исследования. Библиография насчитывает 12 наименований.
Глава 1. Основные термины и понятия
Определение транзакции и ее свойства
Транзакцией называется последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.
Транзакция рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Рассмотрим пример, который связан с принятием заказа в фирме на изготовление компьютера. Компьютер состоит из комплектующих, которые сразу резервируются за данным заказом в момент его формирования. Тогда транзакцией будет вся последовательность операций, включающая следующие операции:
· ввод нового заказа со всеми реквизитами заказчика;
· изменения состояния для всех выбранных комплектующих на складе на "занято" с привязкой их к определенному заказу;
· подсчет стоимости заказа с формированием платежного документа типа выставляемого счета к оплате;
· включение нового заказа в производство.
С точки зрения работника, это единая последовательность операций; если она будет прервана, то база данных потеряет свое целостное состояние.
Существуют различные модели транзакций, которые могут быть классифицированы на основании различных свойств, включающих структуру транзакции, параллельность внутри транзакции, продолжительность и т. д. В настоящий момент выделяют следующие типы транзакций: плоские или классические транзакции, цепочечные транзакции и вложенные транзакции.
Плоские, или традиционные, транзакции, характеризуются четырьмя классическими свойствами: атомарности, согласованности, изолированности, надежности — ACID (Atomicity, Consistency, Isolation, Durability). Упомянутые выше свойства означают следующее:
· Свойство атомарности (Atomicity) выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.
· Свойство согласованности (Consistency) гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных.
· Свойство изолированности (Isolation) означает, что конкурирующие за доступ к базе данных транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно.
· Свойство надежности (Durability) трактуется следующим образом: если транзакция завершена успешно, то те изменения в данных, которые были ей произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок).
Каждый оператор в транзакции выполняет свою часть работы, но для успешного завершения всей работы в целом требуется безусловное завершение всех их операторов. Группирование операторов в транзакции сообщает СУБД, что вся эта группа должна быть выполнена как единое целое, причем такое выполнение должно поддерживаться автоматически.
Возможны два варианта завершения транзакции.
Если все операторы выполнены успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется. Фиксация транзакции — это действие, обеспечивающее запись на диск изменений в базе данных, которые были сделаны в процессе выполнения транзакции.
Если в процессе выполнения транзакции случилось нечто такое, что делает невозможным ее нормальное завершение, база данных должна быть возвращена в исходное состояние. Откат транзакции — это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции.