КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Корректность транзакцийВ предыдущем разделе корректной считалась транзакция, действия которой не привели к нарушению логической целостности БД, транзакция не имела конфликтов с другими транзакциями и директивный срок транзакции не оказался пропущен. В случае, когда данные также имеют временные характеристики, этого недостаточно. Например, нельзя считать корректными результаты работы транзакции по вычислению траектории самолета, если она использовала данные о ветре часовой давности. Таким образом, в определении корректности транзакции необходимо учитывать характеристики используемых ею данных. Как было отмечено выше, с каждым отдельным значением непрерывного элемента данных ассоциируется интервал абсолютной корректности. Казалось бы, что дополнительное требование того, чтобы все использованные транзакцией данные были абсолютно корректны на какой-то момент времени, должно быть достаточным для получения правильного определения корректности транзакции, но это не так. Интервал абсолютной корректности просто гарантирует, что в течение этого интервала отклонение от текущего состояния не превысит некоторой погрешности. Поскольку в результате вычислений погрешность накапливается, то для того, чтобы итоговая погрешность была разумной, необходимо накладывать более жесткие условия на погрешности используемых данных. При этом очень важно учитывать, как соотносятся моменты времени, в которые были сделаны обновления используемых элементов данных. Например, информация о режиме работы правого двигателя самолета может существенно отличаться от информации о режиме работы левого двигателя, полученной на минуту позже, хотя они все время работали в одинаковом режиме, и сделанные выводы могут оказаться неправильными. Во избежание подобных проблем на используемые данные накладывается дополнительное условие, которое называется условием относительной целостности данных. Оно определяется следующим образом. Для каждого множества непрерывных объектов данных R задается длина относительного интервала корректности Rrvi. Множество R называется относительно целостным, если выполнено следующее условие: . (4.9.1) Теперь мы можем определить понятие корректности набора непрерывных данных. Множество элементов данных R имеет корректное состояние на момент времени t (t>0), если выполнены следующие условия: "dÎR, dvalue – логически целостное (удовлетворяет всем ограничениям целостности). R – временно целостное: все элементы d из R абсолютно целостны на момент времени t, т.е. "dÎR, (t-dtimestamp)£ davi. (4.9.2) R является относительно целостным, т.е. выполнена формула (4.9.2). Теперь мы можем описать критерий корректности транзакции с учетом ограничений на используемые данные. Таким образом, транзакция может корректно завершиться, если: · она логически целостна; · ее директивный срок не пропущен; · она использовала временно целостное множество непрерывных данных (т.е. и абсолютно, и относительно целостное), и эти данные остаются свежими на момент завершения транзакции. Системы с устаревающими данными имеют много общего с системами реального времени, в которых используются только дискретные данные. В частности, в них можно использовать те же протоколы управления транзакциями при условии использования другого критерия корректности работы транзакции. Однако практическая реализация поддержки временной целостности приводит к необходимости ответов на ряд дополнительных вопросов, которые рассматриваются в следующих подразделах.
|