Автор: Пользователь скрыл имя, 29 Августа 2012 в 21:56, курсовая работа
Понятие транзакции не входит в реляционную модель данных, т.к. транзакции рассматриваются не только в реляционных СУБД, но и в СУБД других типов, а также и в других типах информационных систем.
Введение 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
- уровень 0 – запрещение "загрязнения" данных. Этот уровень требует, чтобы изменять данные могла только одна транзакция; если другой транзакции необходимо изменить те же данные, она должна ожидать завершения первой транзакции;
- уровень 1 – запрещение "грязного" чтения. Если транзакция начала изменение данных, то никакая другая транзакция не сможет прочитать их до завершения первой;
- уровень 2 – запрещение неповторяемого чтения. Если транзакция считывает данные, то никакая другая транзакция не сможет их изменить. Таким образом, при повторном чтении они будут находиться в первоначальном состоянии;
=
уровень 3 – запрещение фантомов.
Если транзакция обращается к
данным, то никакая другая транзакция
не сможет добавить новые или
удалить имеющие строки, которые
могут быть считаны при
Полноценная реализация уровней изоляции и свойств ACID представляет из себя нетривиальную задачу. Обработка поступающих данных приводит к большому количеству маленьких изменений, включая обновление как самих таблиц, так и индексов. Эти изменения потенциально могут потерпеть неудачу: закончилось место на диске, операция занимает слишком много времени (timeout) и т. д. Система должна в случае неудачи корректно вернуть базу данных в состояние до транзакции.
Первые коммерческие СУБД (к примеру, IBM DB2), пользовались исключительно блокировкой доступа к данным для обеспечения свойств ACID. Но большое количество блокировок приводит к существенному уменьшению производительности. Есть два популярных семейства решений этой проблемы, которые снижают количество блокировок: Журнализация изменений (write ahead logging, WAL) и механизм теневых страниц (shadow paging). В обоих случаях, блокировки должны быть расставлены на всю информацию, которая обновляется. В зависимости от уровня изоляции и имплементации, блокировки записи также расставляются на информацию, которая была прочитана транзакцией.
При упреждающей журнализации, используемой в Sybase и MS SQL Server до версии 2005, все изменения записываются в журнал, и только после успешного завершения — в базу данных. Это позволяет СУБД вернуться в рабочее состояние после неожиданного падения системы. Теневые страницы содержат копии тех страниц базы данных на начало транзакции, в которых происходят изменения. Эти копии активизируются после успешного завершения. Хотя теневые страницы легче реализуется, упреждающая журнализация более эффективна.
Дальнейшее
развитие технологий управления базами
данных привело к появлению
- Записать намерение произвести некоторые операции.
-
Выполнить задание, копируя
- Записать, что всё сделано без ошибок.
Журнал транзакций в сочетании с сегментом отката (область, в которой хранится копия всех изменяемых в ходе транзакции данных) гарантирует целостность данных. В случае сбоя запускается процедура восстановления, которая просматривает отдельные его записи следующим образом:
Если повреждена запись, то сбой произошёл во время проставления отметки в журнале. Значит, ничего важного не потерялось, игнорируем эту ошибку.
Если все записи помечены как успешно выполненные, то сбой произошёл между транзакциями, здесь также нет потерь.
Если в журнале есть незавершённая транзакция, то сбой произошёл во время записи на диск. В этом случае мы восстанавливаем старую версию данных из сегмента отката.
Firebird
вообще не имеет ни журнала изменений,
ни сегмента отката, а реализует MVCC, записывая
новые версии строк прямо в активное пространство
данных. Также поступает MS SQL 2005. Теоретически
это даёт максимальную эффективность
при параллельной работе с данными, но
ценой является необходимость «сборки
мусора», то есть удаления старых и уже
не нужных версий строк.
Обработкой транзакции,в информационных технологиях, называется обработка информации, разделенная на отдельные неделимые операции, называемые транзакциями. Каждая транзакция должна быть успешной или неудачной как единое целое; она не может оставаться в промежуточном состоянии.
Обработка транзакций направлена на поддержание компьютерной системы (как правило, базы данных или каких-либо современных файловых систем) в известном, согласованном состоянии, путем обеспечения того, чтобы любые операции, осуществляющиеся в системе, являются взаимозависимыми и либо все успешно завершены, либо полностью и успешно отменены.
Обработка транзакций имеет следующие преимущества:
-
Она позволяет разделять
- Она смещает время обработки заданий, когда вычислительные ресурсы менее заняты.
-
Она позволяет избежать
-
Она используется на дорогих
компьютерах, которые помогут
окупить расходы, сохраняя
-
Транзакция — минимальная
Например,
рассмотрим типичную банковскую транзакцию,
которая включает в себя перемещение
$ 700 с сберегательного счета
Обработка транзакций позволяет нескольким отдельным операциям автоматически быть связанными друг с другом, как единая неделимая транзакция. Системы обработки транзакций гарантирует, что либо все операции в транзакции завершены без ошибок, либо ни одна из них. Если некоторые из операций завершены, но с ошибками, а другие без, системы обработки транзакций дает команду на «откат» всех операций транзакции (в том числе удачных), что означает стирание всех следов операции и восстановление системы до согласованного известного состояния, которое было до начала процесса транзакции. Если все операции транзакции завершены успешно, то транзакция фиксируется в системе, и все изменения в базе данных становятся «постоянными» (commited); транзакции не могут быть отменены, если они уже были сделаны.
Обработка транзакций защищает от аппаратных и программных ошибок, которые могут оставить транзакцию, завершенной частично, с системой, оставленной в неизвестном, противоречивом состоянии. Если в компьютерной системе происходит сбой в середине транзакция, обработка транзакций гарантирует, что все операции в любых незафиксированных (то есть, не полностью обработанных) транзакциях будут отменены.
Транзакции
оформлены в строгом
Ранее была рассмотрена 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). Объектно-ориентированное моделирование обеспечивает определение объектов вместе с присущими им операциями, но ни тот ни другой вид моделирования не содержит средств для описания семантики транзакций. Выработка языков описания транзакций по отношению к некоторой модели данных с последующим переносом языковых средств в среду, обеспечивающую графическое представление вложенных, многозвенных и других развитых моделей транзакций, даст в будущем значительное увеличение продуктивности и надежности проектирования систем обработки транзакций.
Экстремальная
обработка транзакций (англ. 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.
Транзакции - важное понятие, связанное
с базами данных. Транзакцией
называется набор действий по
изменению данных, который не
может быть произведён