Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭ-2013-анн-130515.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.69 Mб
Скачать

1.5. Операторы расщепления и фактора. Их применение для организации работы с распределенными данными

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

Определение. Пусть (t) – предикат на кортежах над R, тогда расщеплением r по называется пара отношений (s, s), каждое со схемой R, такие, что s = {tr | (t)} и s={tr |(t)}. Обозначается эта пара SPLIT (r).

Определение. Пусть дано отношение r(R) и B1, B2,…, BkR, а LR. Тогда оператор фактораFACTOR(r; B1, B2,…, Bk; L) = (s, s), где s = s((RB1B2Bk)L), s = s (B1B2BkL), причём по L возможно осуществить соединение s и s.

Операторы расщепления и фактора применяются для организации работы с распределенными данными.

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

Пусть в организации есть два подразделения, работающих с одной таблицей базы данных, но с различным множеством атрибутов. В этом случае можно разделить записи отношения так, чтобы каждому подразделению предоставить только свою информацию. Отношение (таблица) делится на две оператором фактора. Возможность слияния данных определяется за счет введенного атрибута-метки L, которым помечаются группы атрибутов, относящиеся к одной «старой» записи.

1.6. Транзакции в базах данных Понятие транзакции

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

Принципы транзакций (acid)

Считается, что любая транзакция основана на наборе принципов, называемом ACID:

  • атомарность (Atomicity) – выполнение действий по принципу «все или ничего»;

  • целостность (Consistency) – корректные преобразования абстрактных состояний системы;

  • изолированность (Isolation) – данные, для которых нарушения целостности возникли в процессе выполнения транзакции, не должны быть видимыми до фиксации;

  • долговременное сохранение (Durability) – результаты зафиксированной транзакции сохраняются даже при аппаратных или программных сбоях.

Эти принципы поддерживают многие модели транзакций – от простейших (плоских) до сложных (вложенных и многозвенных).

Модели транзакций

Плоские транзакции. Контрольные точки

Плоские транзакции обладают единственным уровнем управления для произвольного числа элементарных действий. Это основные строительные блоки для реализации принципа атомарности. Согласно правилам обработки, транзакция откатывается, если хотя бы один компонент не завершается. Для распределенной транзакции это практически не приемлемо: вероятность отказа велика, транзакцию приходится повторять заново. Поэтому используется модификация, основанная на контрольных точках, которыми размечается поток вычислений таким образом, чтобы при откате повторять работу с этой точки.

Многозвенные транзакции

В модели многозвенных транзакций каждый этап вычислений фиксируется как субтранзакция, она же и откатывается при неудаче. Если все субтранзакции зафиксированы, фиксируется транзакция в целом. Только в этом случае она считается завешённой.

Вложенные транзакции

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

  • правило фиксации – для каждой субтранзакции только фиксация делает результаты видимыми для родительского уровня;

  • правило отката – откат транзакции ведет к откату всей подчинённой ей иерархии;

  • правило видимости – родительская транзакция видит результаты дочерней после их фиксации, а дочерняя результаты родительской – всегда, соседние одноуровневые результаты друг друга не видят.

Последнее правило позволяет выполнять такие субтранзакции параллельно.

Использование транзакций

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