В работе рассмотрены методики отображения темпоральности данных в предметной области при проектировании бизнес-логики информационных систем.
Под темпоральными данными принято понимать любые данные, связанные с определенными моментами или интервалами времени.[1, с.3] Часто такие данные также называют временными или динамическими.
Общепринятые реляционные модели в основном предназначены для работы со статическими объектами. Однако хранение истории изменения объектов востребовано во многих предметных областях. Таким образом, проведение исследований в области работы с темпоральными данными представляется нам актуальным и востребованным.
Задачи обработки темпоральных данных условно можно разделить на три основные группы:
1. проектирование темпоральных данных на уровне бизнес-логики разрабатываемых приложений;
2. моделирование баз данных, предназначенных для работы с темпоральными данными;
3. разработка информационно-математических моделей, связанных с изменяющимися во времени объектами.
Цель данной работы рассмотреть вопросы учета темпоральности данных на стадии проектирования прикладной программы информационной системы.
Как известно, класс – это описание множества объектов, обладающих одинаковыми атрибутами, операциями, связями и семантикой [2]. Как правило, семантика экземпляра класса, будучи определенной изначально, не меняется на всем протяжении существования экземпляра класса, однако атрибутам и связям экземпляров класса зачастую свойственно меняться с течением времени. В случаях, когда проектируемый класс относится именно к темпоральным данным такую его природу необходимо учитывать на всех стадиях проектирования и разработки информационной системы. Приемы, применяемые при моделировании темпоральных данных, могут различаться в зависимости от конкретной предметной области и требований к системе.
Рассмотрим следующие ситуации проявления темпоральности экземпляров классов.
Меняется небольшое количество атрибутов. Одно из решений данной проблемы заключается в представлении атрибутов, которым свойственно изменяться с течением времени (темпоральных атрибутов), в виде отдельных классов. Назовем их классы-атрибуты.
Рис.1. Схема применения метода темпоральных атрибутов при проектировании темпоральных данных
Как видно из рис.1 классы-атрибуты наследуют темпоральные свойства от некоторого Темпорального класса, связанного с экземплярами класса Время.
Однако, такая схема работы с темпоральными атрибутами не лишена недостатков. Моделирование дополнительных классов потребует дополнительных затрат времени от разработчика и, соответственно, финансовых затрат заказчика. К тому же при достаточно частых изменениях большого числа атрибутов к используемым постоянным запоминающим устройствам будут предъявляться более высокие требования.
Таким образом, когда число меняющихся во времени атрибутов велико, использование приведенного выше метода моделирования окажется неэффективным. В таком случае более привлекательным представляется решение о связывании с экземплярами времени уже не отдельных атрибутов, а всего экземпляра класса.
Меняется большое число атрибутов экземпляра класса. В данной ситуации удобно использовать подход «Снимок» (Snapshot). Снимок данных – это представление данных в определенный момент времени. Снимок должен предоставлять время как одно из его видимых свойств.
Рис. 2. Схема применения метода «Снимок»
Из схемы, представленной на рис. 2 видно, что в случае использования метода «Снимок» Класс является наследником Темпорального класса, связанного с экземплярами класса Время.
Преимуществом применения подхода «Снимок» является существенное сокращение числа классов, соответственно снижается сложность проектирования и разработки информационной системы. К тому же данному методу свойственно значительное упрощение запросов к базе данных по сравнению с методом темпоральных атрибутов. Однако если одновременно меняется небольшое число атрибутов экземпляра класса и такие изменения необходимо учитывать довольно часто стоит вернуться к предыдущему методу проектирования.
Другая проблема – моделирование темпоральных связей. Под темпоральной связью будем понимать связь, которая в разные временные промежутки соединяет разные экземпляры классов. В качестве решения проблемы обработки темпоральных ассоциаций можно использовать механизм создания ассоциативных объектов, каждый из которых представляет собой отдельный объект, содержащий ссылки на идентификаторы каждого из участвующих экземпляров.
Рис. 3. Схема применения ассоциативных объектов для моделирования темпоральных ассоциаций
В данном случае Ассоциативный объект будет наследником Темпорального класса, который в свою очередь связан с экземплярами класса Время.
При проектировании программных приложений естественно, что специалисты сталкиваются со всеми тремя ситуациями. Представим общую схему для всех трех ситуаций.
Рис. 4. Схема совместного использования трех подходов
Из схемы на рис. 4 в частности видно, что основной задачей при моделировании темпоральности данных представленными выше методами является проектирование темпорального класса, от которого другие классы наследуют темпоральные качества.
Центральными объектами при моделировании темпоральности данных становятся Темпоральный класс и класс Время.
При проектировании структуры темпорального класса на первое место выходит разработка наиболее часто востребованных методов, необходимых для проведения операций с изменяющимися во времени данными. К таким методам можно отнести функции агрегирования по времени, упорядочивание по времени и некоторые другие.
При проектировании класса Время также необходимо учитывать некоторые особенности. Так, необходимо учитывать, что время разнотипно, в том смысле, что при проектировании информационной системы необходимо отличать время транзакционное от действительного. Кроме того, необходимо учитывать такую характеристику времени как периодичность.
Литература
1. Костенко Б.Б., Кузнецов С.Д.. История и актуальные проблемы темпоральных баз данных. www.citforum.ru
2. Буч Г., Рамбо Д., Якобсон И. Язык UML. Руководство пользователя. ДМК Пресс, 2007. – 496 с.
3. Carlson, A., Estepp, S., Fowler, M,. Temporal Patterns. www.hillside.net
4. Anderson, F.. A Collection of History Patterns. www.hillside.net