Автор работы: Пользователь скрыл имя, 21 Ноября 2010 в 13:18, Не определен
Целью данной работы является рассмотрение технологии работы с транзакциями, а так же работу транзакций в Microsoft SQL Server 2000
Версия шаблона | 1.1 |
Филиал | Новороссийский филиал |
Вид работы | Курсовая работа |
Название дисциплины | Базы данных |
Тема | Транзакции |
Фамилия студента | Кушнир |
Имя студента | Елена |
Отчество студента | Владимировна |
№ контракта | 00900080609041 |
ВВЕДЕНИЕ
1. ТРАНЗАКЦИИ
1.1 Свойства транзакций. Способы завершения транзакций 4
1.2 Журнал транзакций. Журнализация и буферизация 8
1.3
Индивидуальный откат транзакции. Восстановление
после мягкого
сбоя
1.4 Физическая
согласованность базы данных. Восстановление
после жесткого сбоя
1.5 Параллельное
выполнение транзакций. Уровни изолированности
пользователей
2. ТРАНЗАКЦИИ В
MICROSOFT SQL SERVER 2000
2.1 Поведение параллельных транзакций в Microsoft SQL Server 32
2.2 Режимы транзакций в SQL Server 35
2.3 Фиксирование транзакций
2.4 Создание вложенных транзакций в SQL Server 38
2.5 Откаты транзакций в SQL Server
2.6 Блокировка транзакций в SQL Server
Заключение
ГЛОССАРИЙ
Список использованных источников 54
Приложение А Схема журнала транзакций 55
Актуальность данного исследование обусловлено необходимостью обработки большого количества баз данных в различных отраслях.
Целью данной работы является рассмотрение технологии работы с транзакциями, а так же работу транзакций в Microsoft SQL Server 2000.
Объектом исследования являются транзакции.
Предметом исследования являются характеристики транзакций, ее основные свойства, режимы, откаты и блокировки.
Реализация поставленной цели потребовало решения ряда конкретных задач, а именно:
Транзакцией называется последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного) состояния в другое непротиворечивое (согласованное) состояние.
Транзакция рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Что может быть названо транзакцией? Кем определяется, какая последовательность операций над базой данных составляет транзакцию? Конечно, однозначно именно разработчик определяет, какая последовательность операций составляет единое целое, то есть транзакцию. Разработчик приложений или хранимых процедур определяет это исходя из смысла обработки данных, именно семантика совокупности операций над базой данных, которая моделирует с точки зрения разработчика некоторую одну неразрывную работу, и составляет транзакцию. Допустим, выделим работу по вводу данных о поступивших книгах, новых книгах, которых не было раньше в библиотеке. Тогда эту операцию можно разбить на две последовательные: сначала ввод данных о книге — это новая строка в таблице BOOKS, а потом ввод данных обо всех экземплярах новой книги — это ввод набора новых строк в таблицу EXEMPLAR в количестве, равном количеству поступивших экземпляров книги. Если эта последовательность работ будет прервана, то наша база данных не будет соответствовать реальному объекту, поэтому желательно выполнять ее как единую работу над базой данных.[3]
Перспективы.
Краткосрочные:
- Рост
числа продуктов, поддерживающих развитые
модели транзакций
(вложенных и/или многозвенных).
- Формализация спецификаций X/Open DTP и реализация совместимых с ними продуктов.
Долгосрочные:
- Появление
коммерческих версий мониторов
TP третьего поколения,
Существуют различные модели транзакций, которые могут быть классифицированы на основании различных свойств, включающих структуру транзакции, параллельность внутри транзакции, продолжительность и т. д.
В настоящий момент выделяют следующие типы транзакций: плоские или классические транзакции, цепочечные транзакции и вложенные транзакции.
Плоские, или традиционные транзакции, характеризуются четырьмя классическими свойствами: атомарности, согласованности, изолированности, долговечности (прочности) — ACID (Atomicity, Consistency, Isolation, Durability). Иногда традиционные транзакции называют ACID-транзакциями. Упомянутые выше свойства означают следующее:
Возможны два варианта завершения транзакции. Если все операторы выполнены успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется.
Фиксация транзакции — это действие, обеспечивающее запись на диск изменений в базе данных, которые были сделаны в процессе выполнения транзакции.
До тех пор пока транзакция не зафиксирована, допустимо аннулирование этих изменений, восстановление базы данных в то состояние, в котором она была на момент начала транзакции. Фиксация транзакции означает, что все результаты выполнения транзакции становятся постоянными. Они станут видимыми другим транзакциям только после того, как текущая транзакция будет зафиксирована. До этого момента все данные, затрагиваемые транзакцией, будут "видны" пользователю в состоянии на начало текущей транзакции.
Если в процессе выполнения транзакции случилось нечто такое, что делает невозможным ее нормальное завершение, база данных должна быть возвращена в исходное состояние. Откат транзакции — это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции.
В
стандарте ANSI/ISO SQL определены модель транзакций
и функции операторов COMMIT и ROLLBACK.
Стандарт определяет, что транзакция
начинается с первого SQL-оператора,
инициируемого пользователем
В этой модели каждый оператор, который изменяет состояние БД, рассматривается как транзакция, поэтому при успешном завершении этого оператора БД переходит в новое устойчивое состояние.[16]
В первых версиях коммерческих СУБД была реализована модель транзакций ANSI/ISO. В дальнейшем в СУБД SYBASE была реализована расширенная модель транзакций, которая включает еще ряд дополнительных операций. В модели SYBASE используются следующие четыре оператора:
Конечно, расширенная модель транзакции, предложенная фирмой SYBASE, поддерживает гораздо более гибкий механизм выполнения транзакций. Точки сохранения позволяют устанавливать маркеры внутри транзакции таким образом, чтобы имелась возможность отмены только части работы, проделанной в транзакции. Целесообразно использовать точки сохранения в длинных и сложных транзакциях, чтобы обеспечить возможность отмены изменения для определенных операторов. Однако это обусловливает дополнительные затраты ресурсов системы — оператор выполняет работу, а изменения затем отменяются; обычно усовершенствования в логике обработки могут оказаться более оптимальным решением.[10]
Реализация в СУБД принципа сохранения промежуточных состояний, подтверждения или отката транзакции обеспечивается специальным механизмом, для поддержки которого создается некоторая системная структура, называемая журналом транзакций.
Однако назначение журнала транзакций гораздо шире. Он предназначен для обеспечения надежного хранения данных в БД.