Классика баз данных - статьи

       

Наблюдения


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

При каждом первичном наблюдении возникает, не менее двух объектов: тот, над которым производится наблюдение и само это наблюдение (его представитель), которое можно рассматривать как объект.

Создание нового наблюдения может инициироваться несколькими способами:

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

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

    При каждом наблюдении состояние соответствующего объекта изменяется. Исходное состояние определяется указанием наблюдения или нескольких наблюдений, которые соответствуют этому состоянию. Если в качестве исходного указывается не последнее наблюдение (т.е. не текущее состояние), то возникает "расщепление" состояний.

    Рис. 3

    На рис. 3 показано соотношение между наблюдениями и состояниями (si) для одного объекта. Прямоугольники обозначают наблюдения, двойная линия со стрелкой указывает наблюдения, определяющие исходные для наблюдений состояния. Начиная с момента t3 наряду с состоянием s2 возникает s2' и состояние объекта расщепляется.

    Чтобы создать новое наблюдение в системе полезно (хотя и не необходимо) заранее описать это наблюдение.
    Таким образом, возникает понятие типа наблюдения. В типе задаются такие свойства наблюдения, как наиболее характерные параметры объектов, задействованные в наблюдении этого типа, формы представлений для пользователей, формы отчетов и т.п. Некоторые параметры объектов могут не измеряться непосредственно, а выводиться из ранее наблюденных значений. Для таких параметров в типе наблюдения определяются формулы, которые вычисляются при создании нового или повторного наблюдения (после того, как получили значения все параметры, участвующие в формуле).

    Тип наблюдения включает в себя задание областей определения параметров, участвующих в нем. Обычно для того, чтобы задавать область определения параметров в моделях данных вводится понятие домена. Например, в модели IDEF1X [3] домен определяется как неизменяемый класс, для которого существует наперед заданное (возможно бесконечное) множество экземпляров. В то же время, на практике понятие домена обычно в чистом виде не реализуется или реализуется только на уровне простых типов данных (домены "целое", "вещественное" и т.п. и их подмножества), т.е. определение домена для какого-либо атрибута эквивалентно определению типа данных для соответствующей переменной включающего языка. Требование неизменности домена возникает из-за того, что если область определения какого-либо атрибута изменяется, то требуется проверить все уже существующие значения этого атрибута на предмет соответствия новой области определения. Более того, если даже это сделано, то непонятно, как быть со значениями, которые больше не принадлежат домену. С другой стороны, возможность ограничения области определения атрибутов изменяющимся во времени множеством сущностей все же поддерживаются через механизмы ограничений целостности, - например, foreign key.

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


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

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

    В типе наблюдения могут описываться ограничения, накладываемые на состояния объекта. Эти ограничения определяют ожидаемое поведение объекта при данном типе наблюдения:

  • Допустимость того или иного состояния
  • Допустимость перехода из одного состояния в другое и взаимосвязи между наблюдениями

    Допустимость состояния определяет соотношение между параметрами объекта, фиксируемыми в данном наблюдении. Например, систолическое артериальное давление никогда не может быть меньше диастолического. Надо отметить, что подобные ограничения являются свойством конкретного типа наблюдения, а не объекта. Так, несмотря на то, что в одном обследовании может присутствовать ограничение на возраст, в другом типе обследования оно может быть снято или изменено.

    Для того чтобы описать поведение объекта в динамике, необходимо уметь определять условия перехода из одного состояния в другое. Например, рост здорового взрослого человека не может за короткое время измениться на величину, большую погрешности измерения. Если в анамнезе зафиксирован инфаркт миокарда, то этот факт не может быть изменен. В то же время, эти ограничения в типе наблюдения не означают, что нельзя получить состояние, им противоречащее, при каких-то других наблюдениях.

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

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

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

  • Описания параметров
  • Определение форм ввода и вывода
  • Определение ограничений
  • Определение связанных с проводимым наблюдений
  • Права доступа


    Содержание раздела