У вас вопросы?
У нас ответы:) SamZan.net

1000 Счет Б-Счет Б1000 Две эти операции должны либо одновременно выполниться либо одновременно не выполнит

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 15.1.2025

Транзакции.

Транзакция – последовательность нескольких операций, рассматриваемая как единое целое.

Понятие транзакции пришло из банковской деятельности, предположим что в банковской системе есть 2 счета:

Счет А:= Счет А-1000

Счет Б:=Счет Б+1000

Две эти операции должны либо одновременно выполниться, либо одновременно не выполниться.

UPDATE  ACCOUNT SET MONEY = MONEY – 100 WHERE ID=’СЧЕТ Ф

UPDATE  ACCOUNT GET MONEY = MONEY + 100 WHERE ID=’СЧЕТ Б

ACID

Atomicity–   Транзакция неразделима на части.

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

Isolation –  Две транзакции, которые работают одновременно, должны оказывать друг на друга минимально возможное влияние. Идеально, если 2 транзакции, работающие одновременно не оказывают никакого влияния друг на друга.

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

Варианты завершения транзакции:

  1. Успешное завершение, приложение подает команду COMMIT, если операция COMMIT завершилась, то транзакция завершилась успешно
  2. Неудачное завершение – команда ROLLBACK – откатить.
  3.  В процессе работы транзакции, решается, что действия этой транзакции не нужны, в результате данные, с которыми работала эта транзакция должны быть возвращены в первоначальное состояние. Если в процессе транзакции произошла грубая ошибка, т.е. мы пытаемся вернуть поврежденные записи, то может произойти автоматический откат транзакции, о чем приложение получит уведомление. ROLLBACK выполняется автоматически. Если ошибка происходит во время отката, то откатывает на сколько возможно.

В некоторых СУБД транзакция начинается автоматически, после подачи первой DML операции или другой операции, меняющей данные( все, кроме SELECT),  в других СУБД подается явная команда начала транзакции BEGIN TRANSACTION.

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

INSERT 5000 Счет Б

ГЗВФЕУ Счет <

6000->5000

Это производится для того, чтобы можно было откатить транзакции обратно к 6000.

Журнал – дисковый файл или совокупность дисковых данных, часто журнал хранят на отдельном устройстве, не на том, на котором БД.

Второе назначение Журнала – восстановление Базы после сбоя.

Для этого при старте СУЮД происходит последовательный переход по журналу транзакции.

Для того, чтобы журнал обеспечивал целостную работ транзакции, должен соблюдаться принцип Write_Ahead losing это означает, что данные о некоторой операции должны быть записаны в журнал и страницы с этими записями сохранены на диске. Мы сначала пишем в Журнал, потом в данные.

Уровни изоляции транзакций.

Самый низкий уровень изоляции транзакции READ UNCOMMITED (грязное чтение) , в случае этого уровня никакой изоляции практически нет.

Пусть у нас есть 2 транзакции

 W1 ROLLBAC

Т1

            R1

Т2

READ COMMITED – Если параллельно работыют 2 транзакции, то 2 транзакция увидит данные, обновленные первой, только после того, как 1 транзакция подала коммит

W1 ROLLBAC

Т1

             R1 R1

Т2

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

R1 R1

Т1

            

Т2

REPEATABLE READ

FANTOM – самый сложный уровень влияния транзакций друг на друга

SERRIALIZABLEпредотвращает FANTOM

Для обеспечения изоляции транзакций существуют 2 основных механизма:

  1. Блокировочный – состоит в том, что обрабатывая какие-либо данные, транзакция предотвращает доступ к этим данным других транзакций.
  2. Разделяемые – блокировки для чтения
  3. Монопольные – блокировки для записи

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

  1. Версионный – изменив какие – либо данные, транзакция до своего завершения работает с так называемой копией этих данных(версией). В зависимости от режимов изоляции транзакций, версии могут сохраняться и после завершения транзакций.

Индексы.

Индексы – специальные вспомогательные структуры для ускорения поиска данных.

B*-tree

Построение этих индексов основано на том, что любое построение может быть упорядоченным.

Индекс строится по определенным значением, Чаще всего ‘то значение столбца таблицы. Тогда говорят, что на этот столбец построен индекс. Надо иметь ввиду что наряду с ускорением поиска, наличие индексов замедляет выполнение DML операций.

Индексы могут быть простыми и составными.

Формат операции создания удаления индексов

 Create index имя_индекса

 On имя_таблицы(список_столбцов)

DROP INDEX имя_индекса

В некоторых СБД существуют и другие типы индексов, кроме Б дерева, например Битовые карты.




1. Повторный инструктаж на фрезерных станках
2. стержень пронизывающий любую деятельность в организации то принятие решений ~ это центр вокруг которо
3. Автомобильный мир
4. Физические упражнения при беременности
5. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ПОДГОТОВКЕ И ОФОРМЛЕНИЮ ДИПЛОМНЫХ РАБОТ по специальности
6. Древняя Российская вивлиофика Н
7. психологическая экспертиза Кто может быть привлечен свидетелем С кем чаще остаются дети Когда спраши
8. Виктор Викторович Конецкий
9. Let~s tlk bout shopping Who does the shopping in your fmily When we wnt to buy something we go to shop
10. Тема 5 Ответственность за нарушение законодательства о коммерческой тайне 5
11. Учебное пособие- Медицинская паразитология
12. земля чорних дроздів
13. 21 05 01__ ldquo;Беларуская філалогіяrdquo; шыфр назва спецыяльнасці ______________________________
14. Контрольная работа- Выборочная ковариация
15. Тема- Зміст освіти Тема заняття- Аналіз навчального плану
16. el enfoque m~s trdicionl cuys r~ces se pierden en l lejn~ de los tiempos en l Ret~ric ntigu es l que describe estudi clsific los medios expresivos investig los mtices estil~sticos de ls u.
17. психологического исследования Элена ДзукиМиланский католический университетМилан Новосибирск1997 Кни
18. Методы оценки деловых и личных качеств руководителей и специалистов
19. СБОРНИК ТЕСТОВЫХ ЗАДАНИЙ ПО ТОПОГРАФИЧЕСКОЙ АНАТОМИИ И ОПЕРАТИВНОЙ ХИРУРГИИ
20. з курсу ldquo;Історія Україниrdquo; Варіант 1 Охарактеризуйте кочові племена які мешкали на території суч