рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Обработка транзакций

Обработка транзакций - раздел Программирование, Среда Delphi широко известна и не вызывает дополнительных трудностей при изучении и использовании   Транзакцией Называются Несколько Последовательных Операторов ...

 

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

В SQL транзакция реализуется с помощью двух основных операторов:

· COMMIT информирует СУБД о том, что транзакция успешно завершена и все изменения в БД должны быть зафиксированы;

· ROLLBACK (откат) сообщает о неуспешном окончании транзакции, и СУБД возвращает БД в состояние, в котором она находилась до выполнения транзакции.

По стандарту SQL транзакция автоматически начинается с выполнения первого оператора. Операторы COMMIT или ROLLBACK завершают текущую транзакцию. Новая транзакция начинается со следующего оператора. Успешное завершение программы эквивалентно выполнению оператора COMMIT, а неуспешное - оператора ROLLBACK.

Оператор ROLLBACK применяется в случае возвращения операторами SQL кодов ошибки либо при отказе пользователя от сделанных изменений.

В некоторых коммерческих СУБД предоставляют пользователям дополнительные возможности. Например, СУБД SQL Server позволяет создавать точки сохранения внутри транзакции и по оператору ROLLBACK возвращаться к указанной точке сохранения, что полезно в сложных транзакциях, состоящих из большого числа операторов. Такая возможность появилась и в стандарте SQL99.

Транзакции обычно реализуются на основе журнала транзакций. При изменении БД в журнале сохраняется состояние БД до изменения, что позволяет при необходимости восстановить БД. В случае системного сбоя администратор восстанавливает БД с помощью специальной утилиты, которая использует журнал транзакций.

В многопользовательском режиме транзакции могут нарушить целостность БД. Например, повторное чтение одной и той же записи может дать разные результаты, если эта запись была обновлена в промежуток времени между двумя обращениями к ней.

Основным механизмом обеспечения параллельной работы транзакций является блокировка. Существует два основных режима блокировки: разделяемая (SHARE) или монопольная (EXCLUSIVE). Разделяемая блокировка допускает парллельное чтение одних и тех же данных, но изменения запрещены. Монопольная блокировка позволяет приложению захватить блокируемую часть БД, не допуская доступ других приложений.

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

Рассмотрим случаи нарушения целостности в многопользовательском режиме.

· Некорректное чтение.Допустим, что транзакция A обновила данные в некоторой строке, затем транзакция B считала эту строку, после чего бал выполнен откат транзакции A. В результате транзакция B будет работать с несуществующими данными.

· Неповторяемое чтение.Транзакция A считывает некоторую строку, затем транзакция B ее обновляет, после чего транзакция A снова считывает эту строку. В результае транзакция A считывает разные значения одной и той же строки.

· Чтение фантомов или строк-призраков.Транзакция A считывает множество строк по некоторому условию. Далее транзакция B вставляет новую строку, удовлетворяющую этому условию. Если транзакция A повторит выборку, то будет обнаружена ранее отсутствовавшая строка-фантом.

В SQL существуют четыре уровня изоляции транзакций, которые могут быть заданы оператором SET TRANSACTION

· SERIARIZABLE – полная изоляция транзакции от других;

· REPEATABLE READ – другие транзакции могут добавлять записи, но обновления запрещены;

· READ COMMITTED – текущей транзакции доступны окончательные результаты других транзакций, то есть другие транзакции могут добавлять и обновлять записи;

· READ UNCOMMITTED – текущей транзакции доступны как окончательные, так и промежуточные результаты других транзакций.

Уровень изоляции SERIARIZABLE защищает от всех трех возможностей нарушения целостности.

Уровень REPEATABLE READ реализуется путем установления блокировки на каждую считанную запись, допускает возможность некорректного чтения и подходит тогда, когда в пределах транзакции нет повторного многострочного чтения записей.

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

Уровень READ UNCOMMITTED является наиболее низким и допускает все три возможности нарушения целостности. Этот уровень используется редко. Например, можно использовать этот вариант для статистических расчетов, когда изменение небоьшого числа записей мало сказывается на результате.

По умолчанию в СУБД обычно устанавливается уровень изоляции SERIARIZABLE, а иногда уровень REPEATABLE READ.

 

– Конец работы –

Эта тема принадлежит разделу:

Среда Delphi широко известна и не вызывает дополнительных трудностей при изучении и использовании

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Обработка транзакций

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

История создания баз данных
  Существуют различные определения базы данных. Обычно они либо неполны, либо слишком громоздки. Дадим простое определение, расширяя его по мере появления новых понятий.

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

Двенадцать правил Кодда для реляционных СУБД
В статье, опубликованной в 1985 году [3], Э. Кодд сформулировал двенадцать правил, которым должна соответствовать настоящая реляционная БД. Они являются полуофициальным определением понятия

Нормализация таблиц БД. Первая, вторая и третья нормальные формы
  При проектировании структуры БД естественным желанием бывает минимизировать количество таблиц, а в идеальном случае сосредоточить все данные в одной таблице. Однако это оказывается

Нормальная форма Бойса-Кодда
  Пусть в определенном выше отношении SP присутствует еще и имя поставщика Sname. Будем для удобства считать, что имя однозначно определяет поставщика. Тогда в отношении SP (Sn, Sname

Четвертая нормальная форма
  Рассмотрим таблицу R (Subj, Teach, Book), где Subj – учебный предмет, Teach- преподаватель по этому предмету, Book – книга, рекомендуемая преподавателем Teach для изучения предмета

Семантическое моделирование данных.
Элементы модели "сущность-связь" Семантическое моделирование данных на основе ER-диаграмм компактно и доступно изложено в [5], и мы будем следовать этому источни

В реляционной СУБД
  Одним из главных достоинств иерархических и сетевых СУБД считают естественность представления данных иерархической и сетевой природы. А как представлять такие данные в реляционных С

Основы реляционной алгебры
  Реляционная алгебра представляет собой совокупность операций над отношениями. Операндами и результатами операций являются отношения. Рассмотрим основные операции реляционной алгебры

Основы реляционного исчисления
  Реляционное исчисление это математический аппарат, который позволяет путем использования исчисления предикатов, кванторов и переменных описывать отношения и операции над ними в виде

Общая характеристика и стандарты языка SQL
  Язык SQL (Structered Query Language) впервые появился в рамках проекта разработки экспериментальной реляционной СУБД System R в исследовательской лаборатории фирмы IBM в 1975-1979 г

Многотабличные запросы SQL. Соединения таблиц. Самосоединения. Псевдонимы
  Запросы могут выбирать данные изнескольких таблиц. Эти таблицы должны быть перечислены после слова FROM. Если таблицы не связаны между собой, то результатом запроса будут всевозможн

Внешнее соединение таблиц
  Рассмотренные соединения называют внутренними (INNER JOIN). В некоторых случаях требуются соединения другого вида – внешние соединения (OUTER JOIN). Рассмотрим две таблицы A (Stud,

Для реализации итоговых запросов в SQL имеются следующие стандартные функции, которые называют агрегатными
· MAX (поле) – максимальное значение поля; · MIN (поле) – минимальное значение поля; · AVG (поле) – среднее значение поля; · SUM (поле) – сумма значений поля; ·

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

Целостность данных
  Термин “целостность данных” относится к правильности и полноте информации, содержащейся в БД. Вероятно, корректнее говорить о непротиворечивости данных, поскольку невозможно предотв

Триггеры и хранимые процедуры
  Как уже говорилось, целостность данных часто связана с порядками и правилами в конкретной организации. Например: · клиенты не могут размещать заказы на сумму, превышающую и

Представления и работа с ними
  Представлением (VIEW) называется SQL-запрос на чтение, которому присвоили имя и сохранили в БД. Представление является виртуальной таблицей, то есть обеспечивает доступ к результата

Обеспечение безопасности баз данных в SQL
  Под безопасностью БД понимают защиту данных от несанкционированного чтения, изменения или уничтожения. Язык SQL позволяет индивидуально защищать как целые таблицы, так и отдельные и

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

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

Элементы языка QBE
  Язык QBE (Query By Example – запрос по образцу) был разработан в компании IBM в 1975 году. Это язык реляционного исчисления с переменными на доменах, рассчитанный на работу в интера

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

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги