Понятие транзакции

Автор работы: Пользователь скрыл имя, 21 Ноября 2010 в 13:18, Не определен

Описание работы

Целью данной работы является рассмотрение технологии работы с транзакциями, а так же работу транзакций в Microsoft SQL Server 2000

Файлы: 3 файла

крсовая по транзакциямгот.doc

— 772.00 Кб (Скачать файл)

Курсовик Транзакции.doc

— 673.00 Кб (Скачать файл)

     Основные  данные о работе

 
Версия  шаблона 1.1
Филиал Новороссийский  филиал
Вид работы Курсовая работа
Название  дисциплины Базы данных
Тема Транзакции 
Фамилия студента Кушнир
Имя студента Елена
Отчество  студента Владимировна
№ контракта 00900080609041

 

Содержание

 

ВВЕДЕНИЕ                                                                                                            3

1. ТРАНЗАКЦИИ                                                                                                   4

    1.1 Свойства транзакций. Способы завершения транзакций                          4

    1.2 Журнал транзакций. Журнализация и буферизация                                  8

        1.3 Индивидуальный откат транзакции. Восстановление после мягкого             сбоя                                                                                                                        13

    1.4 Физическая согласованность базы данных. Восстановление после жесткого сбоя                                                                                                                                   15

   1.5 Параллельное выполнение транзакций. Уровни изолированности пользователей                                                                                                                 19 

2. ТРАНЗАКЦИИ В MICROSOFT SQL SERVER 2000                                             32

    2.1 Поведение параллельных транзакций в Microsoft SQL Server                       32

    2.2 Режимы транзакций в SQL Server                                                                     35

    2.3  Фиксирование транзакций                                                                         37

    2.4 Создание вложенных транзакций в SQL Server                                        38

    2.5 Откаты транзакций в SQL Server                                                              40

    2.6 Блокировка транзакций в SQL Server                                                        44

Заключение                                                                                                            50

ГЛОССАРИЙ                                                                                                                53

Список  использованных источников                                                   54

Приложение  А   Схема журнала транзакций                                                      55

     Введение

 

     Актуальность  данного исследование обусловлено  необходимостью обработки большого количества баз данных в различных  отраслях.

     Целью данной работы является рассмотрение технологии работы с транзакциями, а так же работу транзакций в Microsoft SQL Server 2000.

     Объектом  исследования являются транзакции.

     Предметом исследования являются характеристики транзакций, ее основные свойства, режимы, откаты и блокировки.

     Реализация  поставленной цели потребовало решения  ряда конкретных задач, а именно:

  1. Рассмотреть принцип создания и работы транзакции;
  2. Рассмотреть свойства транзакций;
  3. Рассмотреть технологию  применения транзакций в SQL Server 2000.

     Транзакцией называется последовательность операций, производимых над базой данных и  переводящих базу данных из одного непротиворечивого (согласованного) состояния  в другое непротиворечивое (согласованное) состояние.

     Транзакция  рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Что может быть названо транзакцией? Кем определяется, какая последовательность операций над базой данных составляет транзакцию? Конечно, однозначно именно разработчик определяет, какая последовательность операций составляет единое целое, то есть транзакцию. Разработчик приложений или хранимых процедур определяет это исходя из смысла обработки данных, именно семантика совокупности операций над базой данных, которая моделирует с точки зрения разработчика некоторую одну неразрывную работу, и составляет транзакцию. Допустим, выделим работу по вводу данных о поступивших книгах, новых книгах, которых не было раньше в библиотеке. Тогда эту операцию можно разбить на две последовательные: сначала ввод данных о книге — это новая строка в таблице BOOKS, а потом ввод данных обо всех экземплярах новой книги — это ввод набора новых строк в таблицу EXEMPLAR в количестве, равном количеству поступивших экземпляров книги. Если эта последовательность работ будет прервана, то наша база данных не будет соответствовать реальному объекту, поэтому желательно выполнять ее как единую работу над базой данных.[3]

    Перспективы.

    Краткосрочные:

    - Рост числа продуктов, поддерживающих развитые модели транзакций 
    (вложенных и/или многозвенных).

    - Формализация  спецификаций X/Open DTP и реализация  совместимых с ними продуктов.

    Долгосрочные:

    - Появление  коммерческих версий мониторов  TP третьего поколения, интегрированных с дисциплиной потоков работ, с поддержкой долговременных транзакций и других прогрессивных средств.

     1. Транзакции

     1.1 Свойства транзакций. Способы завершения  транзакций

 

     Существуют  различные модели транзакций, которые  могут быть классифицированы на основании различных свойств, включающих структуру транзакции, параллельность внутри транзакции, продолжительность и т. д.

     В настоящий момент выделяют следующие  типы транзакций: плоские или классические транзакции, цепочечные транзакции и  вложенные транзакции.

     Плоские, или традиционные транзакции, характеризуются четырьмя классическими свойствами: атомарности, согласованности, изолированности, долговечности (прочности) — ACID (Atomicity, Consistency, Isolation, Durability). Иногда традиционные транзакции называют ACID-транзакциями. Упомянутые выше свойства означают следующее:

  • Свойство атомарности (Atomicity) выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.
  • Свойство согласованности (Consistency) гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных.
  • Свойство изолированности (Isolation) означает, что конкурирующие за доступ к базе данных транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно.
  • Свойство долговечности (Durability) трактуется следующим образом: если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок). [1]

     Возможны  два варианта завершения транзакции. Если все операторы выполнены  успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется.

     Фиксация  транзакции — это действие, обеспечивающее запись на диск изменений в базе данных, которые были сделаны в  процессе выполнения транзакции.

     До  тех пор пока транзакция не зафиксирована, допустимо аннулирование этих изменений, восстановление базы данных в то состояние, в котором она была на момент начала транзакции. Фиксация транзакции означает, что все результаты выполнения транзакции становятся постоянными. Они станут видимыми другим транзакциям только после того, как текущая транзакция будет зафиксирована. До этого момента все данные, затрагиваемые транзакцией, будут "видны" пользователю в состоянии на начало текущей транзакции.

     Если  в процессе выполнения транзакции случилось нечто такое, что делает невозможным ее нормальное завершение, база данных должна быть возвращена в исходное состояние. Откат транзакции — это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции.

     В стандарте ANSI/ISO SQL определены модель транзакций и функции операторов COMMIT и ROLLBACK. Стандарт определяет, что транзакция начинается с первого SQL-оператора, инициируемого пользователем или  содержащегося в программе, изменяющего текущее состояние базы данных. Все последующие SQL-операторы составляют тело транзакции. [8]Транзакция завершается одним из четырех возможных путей (рисунок 1.1).

 
Рисунок 1.1 Модель транзакций ANSI/ISO

  1. Оператор COMMIT означает успешное завершение транзакции; его использование делает постоянными изменения, внесенные в базу данных в рамках текущей транзакции;
  2. Оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в базе данных в рамках этой транзакции; новая транзакция начинается непосредственно после использования ROLLBACK;
  3. Успешное завершение программы, в которой была инициирована текущая транзакция, означает успешное завершение транзакции (как будто был использован оператор COMMIT);
  4. Ошибочное завершение программы прерывает транзакцию (как будто был использован оператор ROLLBACK).

     В этой модели каждый оператор, который  изменяет состояние БД, рассматривается  как транзакция, поэтому при успешном завершении этого оператора БД переходит  в новое устойчивое состояние.[16]

     В первых версиях коммерческих СУБД была реализована модель транзакций ANSI/ISO. В дальнейшем в СУБД SYBASE была реализована расширенная модель транзакций, которая включает еще ряд дополнительных операций. В модели SYBASE используются следующие четыре оператора:

  1. Оператор BEGIN TRANSACTION сообщает о начале транзакции. В отличие от модели в стандарте ANSI/ISO, где начало транзакции неявно задается первым оператором модификации данных, в модели SYBASE начало транзакции задается явно с помощью оператора начала транзакции.
  2. Оператор COMMIT TRANSACTION сообщает об успешном завершении транзакции. Он эквивалентен оператору COMMIT в модели стандарта ANSI/ISO. Этот оператор, как и оператор COMMIT, фиксирует все изменения, которые производились в БД в процессе выполнения транзакции.
  3. Оператор SAVE TRANSACTION создает внутри транзакции точку сохранения, которая соответствует промежуточному состоянию БД, сохраненному на момент выполнения этого оператора. В операторе SAVE TRANSACTION может стоять имя точки сохранения. Поэтому в ходе выполнения транзакции может быть запомнено несколько точек сохранения, соответствующих нескольким промежуточным состояниям.
  4. Оператор ROLLBACK имеет две модификации. Если этот оператор используется без дополнительного параметра, то он интерпретируется как оператор отката всей транзакции, то есть в этом случае он эквивалентен оператору отката ROLLBACK в модели ANSI/ISO. Если же оператор отката имеет параметр и записан в виде ROLLBACK B, то он интерпретируется как оператор частичного отката транзакции в точку сохранения B.

     Конечно, расширенная модель транзакции, предложенная фирмой SYBASE, поддерживает гораздо более  гибкий механизм выполнения транзакций. Точки сохранения позволяют устанавливать  маркеры внутри транзакции таким  образом, чтобы имелась возможность отмены только части работы, проделанной в транзакции. Целесообразно использовать точки сохранения в длинных и сложных транзакциях, чтобы обеспечить возможность отмены изменения для определенных операторов. Однако это обусловливает дополнительные затраты ресурсов системы — оператор выполняет работу, а изменения затем отменяются; обычно усовершенствования в логике обработки могут оказаться более оптимальным решением.[10]

1.2 Журнал  транзакций. Журнализация и буферизация

 

     Реализация  в СУБД принципа сохранения промежуточных состояний, подтверждения или отката транзакции обеспечивается специальным механизмом, для поддержки которого создается некоторая системная структура, называемая журналом транзакций.

     Однако  назначение журнала транзакций гораздо  шире. Он предназначен для обеспечения надежного хранения данных в БД.

Схема журнала транзакций.doc

— 63.00 Кб (Просмотреть файл, Скачать файл)

Информация о работе Понятие транзакции