
- •Современные средства и механизмы поддержки транзакций в сурбд
- •Глава 1. Основные термины и понятия 4
- •Глава 2. Механизмы поддержки транзакций в различных сурбд 15
- •Введение
- •Глава 1. Основные термины и понятия
- •1.1 Определение транзакции и ее свойства
- •1.2 Уровни изоляции транзакций
- •1.3 Реализация уровней изоляции и свойств acid
- •1.3.1 Журнализация транзакций
- •1.3.2 Механизм теневых страниц
- •Глава 2. Механизмы поддержки транзакций в различных сурбд
- •Заключение
- •Список литературы
Министерство образования и науки Российской Федерации
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«Уральский федеральный университет
имени первого Президента России Б.Н. Ельцина»
Высшая Школа Экономики и Менеджмента
Департамент бизнес-информатики и математического моделирования
Кафедра моделирования управляемых систем
Современные средства и механизмы поддержки транзакций в сурбд
Курсовая работа
студентки группы ЭМ-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
Введение
Актуальность данного исследования обусловлена необходимостью обработки большого количества баз данных в различных отраслях.
Целью данной работы является рассмотрение технологии работы с транзакциями, а так же работу транзакций в различных СУРБД.
Реализация поставленной цели потребовала решения ряда конкретных задач, а именно:
Рассмотреть принцип создания и работы транзакции;
Рассмотреть свойства транзакций;
Рассмотреть технологию применения транзакций в различных СУРБД.
Работа состоит из введения, двух глав, заключения и списка литературы. Во введении обоснована актуальность исследования и даны его основные характеристики. Первая глава посвящена основным сведениям. В ней рассматривается сущность транзакции, основные ее характеристики, свойства транзакций, журнал транзакций, журнализация и буферизация и др. Во второй главе рассмотрены механизмы поддержки транзакций в СУРБД Oracle, MS SQL Server, PostgreSQL, MySQL, System R. В заключении приведены основные выводы проведенного исследования. Библиография насчитывает 12 наименований.
Глава 1. Основные термины и понятия
1.1 Определение транзакции и ее свойства
Транзакцией называется последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.
Транзакция рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Рассмотрим пример, который связан с принятием заказа в фирме на изготовление компьютера. Компьютер состоит из комплектующих, которые сразу резервируются за данным заказом в момент его формирования. Тогда транзакцией будет вся последовательность операций, включающая следующие операции:
ввод нового заказа со всеми реквизитами заказчика;
изменения состояния для всех выбранных комплектующих на складе на "занято" с привязкой их к определенному заказу;
подсчет стоимости заказа с формированием платежного документа типа выставляемого счета к оплате;
включение нового заказа в производство.
С точки зрения работника, это единая последовательность операций; если она будет прервана, то база данных потеряет свое целостное состояние.
Существуют различные модели транзакций, которые могут быть классифицированы на основании различных свойств, включающих структуру транзакции, параллельность внутри транзакции, продолжительность и т. д. В настоящий момент выделяют следующие типы транзакций: плоские или классические транзакции, цепочечные транзакции и вложенные транзакции.
Плоские, или традиционные, транзакции, характеризуются четырьмя классическими свойствами: атомарности, согласованности, изолированности, надежности — ACID (Atomicity, Consistency, Isolation, Durability). Упомянутые выше свойства означают следующее:
Свойство атомарности (Atomicity) выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.
Свойство согласованности (Consistency) гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных.
Свойство изолированности (Isolation) означает, что конкурирующие за доступ к базе данных транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно.
Свойство надежности (Durability) трактуется следующим образом: если транзакция завершена успешно, то те изменения в данных, которые были ей произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок).
Каждый оператор в транзакции выполняет свою часть работы, но для успешного завершения всей работы в целом требуется безусловное завершение всех их операторов. Группирование операторов в транзакции сообщает СУБД, что вся эта группа должна быть выполнена как единое целое, причем такое выполнение должно поддерживаться автоматически.
Возможны два варианта завершения транзакции.
Если все операторы выполнены успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется. Фиксация транзакции — это действие, обеспечивающее запись на диск изменений в базе данных, которые были сделаны в процессе выполнения транзакции.
Если в процессе выполнения транзакции случилось нечто такое, что делает невозможным ее нормальное завершение, база данных должна быть возвращена в исходное состояние. Откат транзакции — это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции.