СТАТЬЯ
22.03.02

Проектирование систем регистрации и анализа данных (Часть1)

© Борис Марков
Статья была опубликована на сайте Корпоративный менеджмент

Аннотация

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

Введение

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

Модель данных, т.е. набор средств описания концептуальной схемы базы данных (БД), используемой СУБД в той или иной степени интегрируется в информационную систему, построенную на ее основе. Действительно, все основные компоненты модели данных - структуры данных, операции и способы описания ограничений целостности должны учитываться при проектировании системы с самого начала, а декомпозиция предметной области на объекты, сущности, отношения, атрибуты, факты и т.д. практически полностью определяется моделью данных, которую привык использовать системный аналитик. Использование понятий и операций, отражающих природу предметной области, значительно снижает затраты на проектирование системы и часто позволяет повысить ее эффективность за счет того, что удается избежать ошибок проектирования, связанных с неадекватным представлением данных. Таким образом, информационная система в целом наследует многие черты модели данных СУБД, главным образом касающиеся подхода к представлению данных.

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

Данные, регистрируемые разными пользователями для одного и того же объекта, могут противоречить и вообще никак не соотноситься друг с другом. В этом случае использование СУБД, поддерживающих традиционные модели данных, не намного облегчает задачу, поскольку большинство из них ориентированы на фиксацию единой непротиворечивой картины предметной области. (Особенности подходов к моделированию данных и классификация моделей данных представлены в [1].)

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

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

1. Практические задачи

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

1. Медицина и медико-биологические исследования. Врачи осуществляют наблюдения за пациентами. Каждый прием у специалиста сопровождается фиксацией некоторых параметров пациента: фамилия, имя, отчество, страховой полис и/или номер амбулаторной карты больного, рост, вес, пульс, возраст, ЧСС, артериальное давление, жалобы, симптомы и прочее. Кроме того, возможно проведение анализов и инструментальных обследований, при которых фиксируются количественные и качественные параметры. Ряд параметров не изменяется или изменяется крайне редко - это такие параметры как фамилия, пол, адрес пациента, рост для взрослых пациентов. Такие параметры достаточно зафиксировать один раз при первичном приеме Другие параметры (артериальное давление, температура тела) изменяются от одного обследования к другому довольно сильно и требуют постоянного мониторинга. Некоторые параметры могут фиксироваться от случая к случаю, другие фиксируются регулярно. На основании данных обследований могут назначаться те или иные дополнительные обследования. Требуется организовать информацию таким образом, чтобы позволить с минимальными затратами проводить первичные и повторные приемы, т.е. свести к минимуму набор вводимой каждым специалистом информации и исключить повторный ее ввод, обеспечить совместный доступ к информации с ограничением прав доступа для конкретных пользователей, проводить оценку эффективности лечения, обеспечить возможность планирования обследований и лечения, выделение групп риска по различным заболеваниям, а также сделать возможным эффективный статистический анализ - как медицинский, так и финансово-экономический - имеющейся информации. Иногда также требуется проводить экспертизу каких-либо фактов группой специалистов. Описание конкретного примера системы для решения подобных задач можно найти в [2]. В этой работе также подробно обосновывается целесообразность разработки модели данных, ориентированной на задачи мониторинга, и описаны принципы, на которых она должна основываться.

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

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

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

2. Основные понятия модели

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

2. Пользователь. Права доступа к ресурсам системы определяются для каждого пользователя. Для каждого проекта по умолчанию создается один пользователь с ролью "Администратор", который обладает всеми правами и один с ролью "Пользователь", которому запрещено выполнять операции, связанные с администрированием.

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

4. Объект. Единственным свойством объектов является их различимость. Для каждого существующего в проекте объекта имеется его уникальная идентификация: каждому объекту всегда поставлено в соответствие некоторое обозначение - идентификатор, который назначается объекту при его создании. Если объект однажды создан в проекте, он не может быть удален.

5. Предопределенные объекты. Будем предполагать, что в любом проекте заранее определено некоторое множество объектов, которые соответствуют числам, строкам и другим распространенным типам данных. В то время как вновь создаваемые объекты обязательно стандартным (независимым от пользователя) образом получают уникальную идентификацию, для предопределенных объектов в качестве их идентификатора используется соответствующая последовательность символов.

6. Параметр (Атрибут). Каждому объекту может быть приписан произвольный набор параметров, описывающий представления пользователей о состоянии и поведении некоторого объекта реального мира. Параметры это то, что можно измерять, наблюдать и изменять в процессе исследований Набор параметров определяется теми задачами, для которых создается проект. Все параметры, использующиеся в проекте, должны быть предварительно объявлены. Каждый объект может иметь, вообще говоря, любой определенный в проекте параметр. В модели предусмотрено некоторое количество предопределенных параметров, которые определены для всех объектов. В качестве примера можно привести параметр "Время Создания", который автоматически фиксируется при проведении любого наблюдения (см. ниже раздел "Операции").

7. Значение. При проведении наблюдения, с рядом параметров объекта, над которым производится наблюдение, связываются значения. Значение является либо идентификатором объекта, либо значением некоторого типа (идентификатором предопределенного объекта). В любой момент времени значением параметра объекта считаются последнее значение либо запрос, присвоенные параметру ранее этого момента. Совокупность значений параметра для данного объекта может представлять собой довольно сложную структуру. Значение параметра может быть неопределенным - все параметры, не определенные для данного объекта имеют зарезервированное значение ^ (или null). Введем еще одно выделенное значение - Т. Если параметр объекта имеет такое значение, то также считается, что значение параметра не определено и, кроме того, значение параметра больше нельзя изменять. Параметр, имеющий значение Т становится "запрещенным" для данного объекта во всех последующих состояниях.

8. Изображения. Каждое значение может быть представлено для пользователя (визуализировано). Это может быть сделано многими способами, - например с помощью форматных преобразований. Рост в метрах может быть записан как 1.5 м, как +1.50 м, как 0.15е+1 м и т.д.

9. Наблюдение (Измерение). В реальном мире мы можем измерять или наблюдать какие-либо характеристики объектов. Для каждого наблюдения определено множество объектов, над которыми оно производится. В качестве значений параметров в контексте какого-либо наблюдения выступают идентификаторы объектов. В этом смысле наблюдение - это просто отношение между объектами, При этом любая связь "Параметр - Объект - Значение" имеет смысл только в контексте какого-либо наблюдения над объектом. Для того чтобы можно было обращаться к результатам наблюдения, это отношение также получает при создании идентификатор, как и любой другой объект. (В некотором смысле понятие объекта - это вырожденное наблюдение, т.е. мы наблюдаем различимость объектов. С другой стороны, наблюдение само может выступать в качестве объекта. Например, мы можем оценивать корректность того или иного наблюдения, делать выводы из значений параметров и т.п., т.е. приписывать наблюдениям какие-либо свойства.) Таким образом, наблюдение позволяет присвоить одному или нескольким параметрам некоторого объекта какие-либо значения (рис.1). Осмысленность параметров и значений для данного объекта остается целиком на совести наблюдателя.

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

Рис. 1.

10. Состояние. Объект в каждый момент времени характеризуется своим состоянием, которое представляет собой совокупность значений всех его параметров, зафиксированных при последних наблюдениях этого объекта, предшествующих данному моменту. Будем называть такое состояние актуальным на этот момент, или просто актуальным, если из контекста ясно о каком моменте времени идет речь. Актуальное состояние в текущий момент времени будем называть текущим состоянием. Будем считать, что пока объект не создан (пока над ним не проведено никаких наблюдений), он находится в неопределенном состоянии ^, в котором все его параметры имеют неопределенные значения ^. Для любых двух состояний объекта можно всегда определить такое, что оно предшествует обоим этим состояниям (или совпадает с одним из них). Еще одно выделенное - терминальное - состояние Т - это состояние, в котором все параметры объекта имеют значение Т. Если все параметры объекта имеют значение Т, то это эквивалентно его уничтожению. Это не означает, что с таким объектом больше ничего нельзя сделать. Объект может быть идентифицирован по какому-либо предшествующему состоянию и параметры объекта могут быть изменены. (См. рис. 2. На рисунке кружки обозначают состояния, стрелка - переход из одного состояния в другое).

Рис. 2.

Рассмотрим теперь перечисленные понятия более подробно.

Продолжение статьи

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Обсудить на форуме
Отправить ссылку на страницу по e-mail


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 22.03.02