Транзакции
Курсовая работа, 29 Августа 2012, автор: пользователь скрыл имя
Описание работы
Понятие транзакции не входит в реляционную модель данных, т.к. транзакции рассматриваются не только в реляционных СУБД, но и в СУБД других типов, а также и в других типах информационных систем.
Содержание
Введение 3
1 Основы обработки транзакций 5
1.1 Свойства транзакций 5
1.2 Управление транзакциями 7
1.3 Параллельное выполнение транзакций 9
2 Принципы и модели обработки транзакций 12
2.1 Плоские транзакции 12
2.2 Режим блокировки 14
2.3 Реализация транзакций 17
3 Классификация систем обработки транзакций 20
3.1 Описание принципа обработки транзакций 20
3.2 Языки транзакций 21
3.3 Экстремальная обработка транзакций 23
Заключение 25
Глоссарий 27
Список использованных источников 29
Приложения 30
Работа содержит 1 файл
ШаблонТранзакции.doc
— 216.00 Кб (Скачать)- уровень 0 – запрещение "загрязнения" данных. Этот уровень требует, чтобы изменять данные могла только одна транзакция; если другой транзакции необходимо изменить те же данные, она должна ожидать завершения первой транзакции;
- уровень 1 – запрещение "грязного" чтения. Если транзакция начала изменение данных, то никакая другая транзакция не сможет прочитать их до завершения первой;
- уровень 2 – запрещение неповторяемого чтения. Если транзакция считывает данные, то никакая другая транзакция не сможет их изменить. Таким образом, при повторном чтении они будут находиться в первоначальном состоянии;
=
уровень 3 – запрещение фантомов.
Если транзакция обращается к
данным, то никакая другая транзакция
не сможет добавить новые или
удалить имеющие строки, которые
могут быть считаны при
2.3 Реализация транзакций
Полноценная реализация уровней изоляции и свойств ACID представляет из себя нетривиальную задачу. Обработка поступающих данных приводит к большому количеству маленьких изменений, включая обновление как самих таблиц, так и индексов. Эти изменения потенциально могут потерпеть неудачу: закончилось место на диске, операция занимает слишком много времени (timeout) и т. д. Система должна в случае неудачи корректно вернуть базу данных в состояние до транзакции.
Первые коммерческие СУБД (к примеру, IBM DB2), пользовались исключительно блокировкой доступа к данным для обеспечения свойств ACID. Но большое количество блокировок приводит к существенному уменьшению производительности. Есть два популярных семейства решений этой проблемы, которые снижают количество блокировок: Журнализация изменений (write ahead logging, WAL) и механизм теневых страниц (shadow paging). В обоих случаях, блокировки должны быть расставлены на всю информацию, которая обновляется. В зависимости от уровня изоляции и имплементации, блокировки записи также расставляются на информацию, которая была прочитана транзакцией.
При упреждающей журнализации, используемой в Sybase и MS SQL Server до версии 2005, все изменения записываются в журнал, и только после успешного завершения — в базу данных. Это позволяет СУБД вернуться в рабочее состояние после неожиданного падения системы. Теневые страницы содержат копии тех страниц базы данных на начало транзакции, в которых происходят изменения. Эти копии активизируются после успешного завершения. Хотя теневые страницы легче реализуется, упреждающая журнализация более эффективна.
Дальнейшее
развитие технологий управления базами
данных привело к появлению
- Записать намерение произвести некоторые операции.
-
Выполнить задание, копируя
- Записать, что всё сделано без ошибок.
Журнал транзакций в сочетании с сегментом отката (область, в которой хранится копия всех изменяемых в ходе транзакции данных) гарантирует целостность данных. В случае сбоя запускается процедура восстановления, которая просматривает отдельные его записи следующим образом:
Если повреждена запись, то сбой произошёл во время проставления отметки в журнале. Значит, ничего важного не потерялось, игнорируем эту ошибку.
Если все записи помечены как успешно выполненные, то сбой произошёл между транзакциями, здесь также нет потерь.
Если в журнале есть незавершённая транзакция, то сбой произошёл во время записи на диск. В этом случае мы восстанавливаем старую версию данных из сегмента отката.
Firebird
вообще не имеет ни журнала изменений,
ни сегмента отката, а реализует MVCC, записывая
новые версии строк прямо в активное пространство
данных. Также поступает MS SQL 2005. Теоретически
это даёт максимальную эффективность
при параллельной работе с данными, но
ценой является необходимость «сборки
мусора», то есть удаления старых и уже
не нужных версий строк.
3 Классификация систем обработки транзакций
Обработкой транзакции,в информационных технологиях, называется обработка информации, разделенная на отдельные неделимые операции, называемые транзакциями. Каждая транзакция должна быть успешной или неудачной как единое целое; она не может оставаться в промежуточном состоянии.
3.1 Описание принципа обработки транзакций
Обработка транзакций направлена на поддержание компьютерной системы (как правило, базы данных или каких-либо современных файловых систем) в известном, согласованном состоянии, путем обеспечения того, чтобы любые операции, осуществляющиеся в системе, являются взаимозависимыми и либо все успешно завершены, либо полностью и успешно отменены.
Обработка транзакций имеет следующие преимущества:
-
Она позволяет разделять
- Она смещает время обработки заданий, когда вычислительные ресурсы менее заняты.
-
Она позволяет избежать
-
Она используется на дорогих
компьютерах, которые помогут
окупить расходы, сохраняя
-
Транзакция — минимальная
Например,
рассмотрим типичную банковскую транзакцию,
которая включает в себя перемещение
$ 700 с сберегательного счета
Обработка транзакций позволяет нескольким отдельным операциям автоматически быть связанными друг с другом, как единая неделимая транзакция. Системы обработки транзакций гарантирует, что либо все операции в транзакции завершены без ошибок, либо ни одна из них. Если некоторые из операций завершены, но с ошибками, а другие без, системы обработки транзакций дает команду на «откат» всех операций транзакции (в том числе удачных), что означает стирание всех следов операции и восстановление системы до согласованного известного состояния, которое было до начала процесса транзакции. Если все операции транзакции завершены успешно, то транзакция фиксируется в системе, и все изменения в базе данных становятся «постоянными» (commited); транзакции не могут быть отменены, если они уже были сделаны.
Обработка транзакций защищает от аппаратных и программных ошибок, которые могут оставить транзакцию, завершенной частично, с системой, оставленной в неизвестном, противоречивом состоянии. Если в компьютерной системе происходит сбой в середине транзакция, обработка транзакций гарантирует, что все операции в любых незафиксированных (то есть, не полностью обработанных) транзакциях будут отменены.
Транзакции
оформлены в строгом
3.2 Языки транзакций
Ранее была рассмотрена Encina - монитор транзакций корпорации Transarc - который включает множество библиотек и макросов, составляющих среду разработки Transactional C. Альтернативный способ задания директив обработки транзакций состоит в применении специального языка5. В качестве примера рассмотрим язык InterBase Parallel Language (IPL), входящий в состав неоднородной распределенной cреды баз данных InterBase. IPL разработан с учетом поддержки высокой степени параллелизма и взаимодействия между субтранзакциями, принадлежащими общей глобальной транзакции. IPL предназначался для поддержки транзакций разных типов (т. е. смешанных транзакций), а также как системно-независимый декларативный язык, обеспечивающий прозрачность управления транзакциями.
Программа на IPL представляет собой блок, обрамленный ключевыми словами program - endprogram, и включает декларации записей и описания субтранзакций. Поскольку IPL постоянно развивается и в настоящее время в стадии исследований находится графический интерфейс, а также объектно-ориентированная версия этого языка, то за более полной информацией мы отсылаем читателя к материалам проекта InterBase, который ведется в Университете Пурдью.
Альтернативный подход к спецификации транзакций - использование языка, ориентированного не на глобальную схему или на специфическую для какого-либо продукта реализацию, а на нейтральную семантическую модель данных. В связи с возрастающей ролью моделирования данных применение архитектур транзакций непосредственно к семантической модели также приобретает важное значение.
Значение этих средств определяется отчасти тем, что они способствуют интеграции концептуального моделирования процессов и данных. Классические процедуры интеграции 1970-х годов ориентировались, например, на отображение диаграмм потоков данных (DFD - Data Flow Diagram), на сущности и атрибуты диаграмм сущность-связь (ERD - Entity-Relation Diagram). Объектно-ориентированное моделирование обеспечивает определение объектов вместе с присущими им операциями, но ни тот ни другой вид моделирования не содержит средств для описания семантики транзакций. Выработка языков описания транзакций по отношению к некоторой модели данных с последующим переносом языковых средств в среду, обеспечивающую графическое представление вложенных, многозвенных и других развитых моделей транзакций, даст в будущем значительное увеличение продуктивности и надежности проектирования систем обработки транзакций.
3.3 Экстремальная обработка транзакций
Экстремальная
обработка транзакций (англ. Extreme Transaction
Processing или сокращенно XTP) — исключительно
ресурсоемкая форма обработки транзакций.
Данная форма предусматривает
XTP-приложения
проектируются,
- производительность
- масштабируемость
- доступность
- безопасность
- управляемость
- надёжность
Эти приложения генерируют команды обработки большего количества транзакций, чем это позволяют обычные системы обработки транзакций из-за их более широкого применения (чаще всего это межпрепредпритийное, национальное и глобальное).7
Поставщики аппаратного и программного обеспечения, равно как и поставщики услуг, накапливают множество данных по технологиям и сопутствующим знаниям и нуждаются в подобных XTP-приложениях для обеспечения возможности дальнейшего роста бизнеса и увеличения доходов.
Программа Clearspace от Jive Software, например, построена на основе системы Coherence от Oracle Corporation, компоненте Oracle Fusion Middleware, которая поддерживает XTP, в попытке усовершенствовать обыкновенную обработку транзакций. Другим примером может послужить Управление цепочками потребностей в реальном времени от компании WareLites, основанное на WL-BOSS (программная платформа для XTP, управляемая грид-событиями). Еще примерами XTP может служить GigaSpaces XAP (eXtreme Application Platform) и IBM WebSphere eXtreme Scale.
Заключение
Транзакции - важное понятие, связанное
с базами данных. Транзакцией
называется набор действий по
изменению данных, который не
может быть произведён