Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Транзакции.

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

Понятие транзакции пришло из банковской деятельности, предположим что в банковской системе есть 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. Выборы Президента Российской Федерации- история и современность.html
3. тема Управление инновациями в туризме
4. обречено стать средоточием многих динамических тенденций итоги противостояние культур нарастание новых
5. Записки у изголовья Mkur no s~shi принадлежат перу а точнее кисти придворной дамы и известной писательницы ко
6. 15 жастан 7 жас~а дейін арнал~ан с~згіш противогаздар
7. Методологические основы психологии для студентов 2 3 курсов дневного отделения и для студентов 3 курса
8. Источники конституционного права России как отрасли и науки Понятие сущность юридическая.html
9. К лабораторной работе 6
10. Реферат- Психологическая реабилитация подростков, находящихся в местах социальной изоляции
11. Аналіз інноваційної діяльності підприємств України за період 2002-2008 рр
12. Положение в таблице Менделеева- 4 группа главная подгруппа 2 период.html
13. Курсовая работа- Стили руководства и организация труда предпринимателя
14. 1. Инвестор располагающий суммой в 300 тыс
15. Славьте Бога[1] ибо Он добр ибо вовеки милосердие Его 2 [Так] да скажут избавленные Богом которых Он избави
16. тема гласных церковнославянского языка
17. БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ МИНИСТЕРСТВА ЗДРАВООХРАНЕНИЯ И СОЦИАЛЬНОГО РАЗВИТИЯ
18. Волны Звуковые волны
19. точки безубыточности
20. Антоновские яблоки ИАБунин