Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Многоверсионная модель согласованности данных


Транзакция (Transaction)

Создание групп онлайнового журнала

Можно создать группы онлайнового журнала и как часть создания базы данных, и позднее. Если возможно, спланируйте журнал и создайте все необходимые группы файлов журнала во время создания базы данных. Для создания новой группы онлайнового журнала используйте команду SQL: ALTER DATABASE с параметром ADD LOGFILE. Более подробно см Резервное копирование и восстановление.

Транзакция (модуль фиксации) √ логический модуль, который состоит из набора изменений (вставок, обновлений и удалений). Транзакции либо должны быть сохранены в базе данных, либо должен быть выполнен их откат. Фиксируются либо все изменения в транзакции, либо ни одно из них. Для фиксирования в базе данных результатов транзакции используется команда COMMIT, для восстановления изменённых данных используется команда ROLLBACK.

Транзакция начинается:

  1. Когда пользователь подключается к базе данных и начинает с ней работать.
  2. После выполнения оператора COMMIT.
  3. После выполнения оператора ROLLBACK.

Откат на уровне оператора √ данное понятие означает, что для конкретного оператора либо будут сохранены все внесённые им изменения, либо не будет выполнено ни одно из них.

БЛОКИРОВКИ(LATCH) - это механизмы, используемые для того, чтобы предотвратить деструктивные взаимодействия между пользователями, обращающимися к одному и тому же ресурсу, будь то вся таблица или одна строка в таблице.(V$LATCH)

В многопользовательской базе данных могут применяться два уровня блокировок:

  1. Монопольная блокировка √ запрещает разделение ассоциированного ресурса. Первая транзакция, получившая монопольную блокировку ресурса, становится единственной транзакцией, которая может изменять этот ресурс до снятия монопольной блокировки.
  2. Разделяемая блокировка √ позволяет совместно использовать ассоциированный ресурс, в зависимости от того, какие операции выполняются (например, несколько пользователей могут читать данные одновременно). Несколько транзакций могут получить разделяемые блокировки для одного и того же ресурса.

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



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

  1. ORACLE обеспечивает для всех запросов согласованность по чтению на уровне предложения, которая гарантирует, что данные, возвращаемые запросом, согласованы по отношению к моменту начала этого запроса.
  2. ORACLE также предоставляет необязательную возможность согласованности по чтению на уровне транзакции, которая гарантирует, что данные, которые видят все запросы внутри транзакции, согласованы по отношению к одной точке времени (моменту начала транзакции). ORACLE обеспечивает согласованность по чтению на уровне транзакции с помощью двух методов:
  • Транзакции read-only √ могут содержать только запросы и не могут содержать никаких предложений DML (языка манипулирования данными). В течение транзакции её доступны данные, которые были подтверждены к моменту её начала.
  • Монопольные блокировки таблиц и строк. Если повторяемость чтений необходимо обеспечить в транзакциях, содержащих предложения DML, транзакция может явно запросить разделяемые блокировки по таблицам или монопольные блокировки по тем строкам, которые будут считываться неоднократно.

Где:

DDL √ Data Definition Language √ язык содержащий набор операторов для определения данных.

DML √ Data Modifying Language √ язык содержащий набор операторов для модификации данных.

По умолчанию Oracle автоматически блокирует строки, на которые воздействуют операторы INSERT, UPDATE или DELETE; причём блокируются только те строки, на которые фактически оказано воздействие, а не вся таблица или весь блок данных.

Назначение блокировок данных (блокировок DML) - защитить данные таблицы, гарантируя их целостность при одновременном доступе к данным нескольких пользователей. Блокировки данных предотвращают деструктивное взаимодействие одновременных конфликтующих операций DML и операций DDL. Операции DML могут получать блокировки на двух различных уровнях: для конкретных строк и для целых таблиц.

<== предыдущая лекция | следующая лекция ==>
Журнал Повторений | Блокировки строк (TX)

Дата добавления: 2014-01-04; Просмотров: 323; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2021) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.001 сек.