Управление проектами - статьи



             

Понятие корректной транзакции


Пусть X - область значений, которые могут принимать данные рассматриваемой прикладной объектно-ориентированной модели, C(x) ≡ {ci(x) | i =1,..,I} - система ограничений, наложенных моделью на состояние x

X и принимающих логическое значение true, если ограничение удовлетворено, и false, если оно нарушено. Если все ограничения удовлетворены в точке x
X, тогда мы говорим, что находится в корректном состоянии, или C(x) = true. Если хотя бы одно из условий не выполняется, т.е. ci(x) = false, то состояние x
X считается некорректным, что выражается соответствующим образом: C(x) ≡ c1(x)
c2(x)
cI(x) = false.

Для некоторых ограничений ci (x) могут быть определены корректирующие методы rij

R таким образом, что если ci (x) = false, то применение метода приводит данные в состояние, удовлетворяющее ранее нарушенному ограничению, т.е. x' = rij(x), ci (x') = true. Мы считаем, что для любого ограничения ci (x), i = 1,…I могут быть определены соответствующие корректирующие методы rij
R. Однако они должны применяться с учетом всех наложенных ограничений ci' (x), i' ≠ i, i' = 1,…I и возможного нарушения некоторых их них, если они уже были удовлетворены.

Если данные находятся в состоянии x

X, то выполнение действия t(xt, pt) с параметрами pt над целевым объектом xt = PrDt x, являющимся некоторой проекцией x на область определения операции Dt, приведет к переводу целевого объекта в состояние x't
X, а всех данных - в состояние x'
X. Мы будем обозначать это следующим образом: x't = t(xt) и x' = t(x). Отдельно выполненное действие может нарушать целостность данных, т.е. если C(x) = true, то C(x'), где x' = t(x), не обязательно принимает значение true. Но мы требуем, чтобы любая корректная транзакция вида T = { tk (xt, pt) | k = 1,…,K } сохраняла целостность данных. Если транзакция T корректна и начальное состояние данных корректно (C(x) = true), то C(x') = true, x' = T(x).


Содержание  Назад  Вперед