Надедов Ю.А. () - , Смирнов Г.В. () - , Фокин В.С. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
|
Важной задачей проектирования информационных систем является разработка структуры базы данных (БД), являющейся информационной моделью предметной области (ПО). При построении описания выделенного фрагмента реальной действительности одним из основных допущений является предположение о том, что мир состоит из независимых объектов (предметов, сущностей), которые могут быть уникально идентифицированы. Далее при обозначении реальных объектов ПО для однозначности будем использовать термин сущность. Сущности ПО необходимо адекватным образом представить в памяти вычислительной машины, чтобы с ее помощью обеспечить поиск, анализ и выдачу накопленной информации в форме, удобной для принятия решений. Эта задача может быть решена путем использования соответствующих средств описания ПО, предоставляющих необходимые базовые понятия, инвариантные по отношению к любым ПО, и правила, позволяющие строить более сложные синтаксические конструкции на основе базовых. Средства представления информации о ПО различные исследователи называют по-разному. Так, в работах по БД их определяют как концептуальные (понятийные), или информационно-логические, а в исследованиях по искусственному интеллекту и экспертным системам – как представление знаний. При этом задача представления ПО в памяти ЭВМ делится на два взаимосвязанных уровня: уровень концептуаль- ного моделирования понятий и уровень модели дан- ных [1]. БД моделирует состояния ПО, а ее концептуальное представление задает статистические и динамические ограничения на состояния ПО, которые могут рассматриваться как некоторые аксиоматические высказывания о ПО. Концептуальное моделирование обеспечивает высокоуровневые средства спецификации предметной области, используемые для создания проекта информационной системы и ее реализации с помощью инструментальных средств системы управления БД. Концептуальные спецификации ПО предоставляют участвующим в разработке специалистам (конечным пользователям, системным аналитикам и программистам) единую основу для проектирования и реализации информационной системы. Уровень модели данных обеспечивает необходимые изобразительные средства для представления сущностей ПО в БД. Модель данных можно определить как совокупность формальных средств и методов, в соответствии с которыми логически организуются данные в БД. Модель данных включает согласованную совокупность типов структур данных, операций и ограничений целостности. Структуры данных обеспечивают представление статистических свойств сущностей, а операции – динамических свойств сущностей ПО. Модель данных задает процедурную интерпретацию, базирующуюся на операциях модификации БД, и определяет синтаксическую и семантическую основу для проектирования и эксплуатации БД. Иерархические и сетевые модели данных базируются на таких понятиях, как запись, атрибут и связь. Более современные модели данных (реляционные и семантические) используют математическое понятие отношения, которое задается на множествах, и понятие объекта для представления сущностей ПО в БД. Сопоставление различных подходов к концептуальному моделированию предметной области показывает, что наиболее перспективны для концептуального описания ПО комбинированные методы, использующие объектно-ориентированное моделирование и поддерживающие семантические отношения. Для этого, кроме того, нужны способы представления таких моделей в табличной форме (в терминах отношений реляционных моделей данных) для эффективного использования возможностей современных реляционных СУБД. Представление объектно-ориентированных моделей ПО методами реляционных СУБД является нетривиальной задачей, для решения которой рассмотрим объектно-иерархическую модель ПО, сочетающую в себе преимущества объектно-ориентированного подхода и методов описания семантики отношений объектов. Объектно-иерархическая модель предметной области Семантика отношений сущностей ПО часто имеет иерархическую природу. Так, почти все объекты состоят из других объектов (частей), которые, в свою очередь, могут состоять из более мелких частей. Общественные структуры, как правило, отражают жесткую иерархическую модель подчинения, сходящуюся к одному подразделению или человеку. Таких примеров можно привести очень много.
Однако в литературе [2,3] рассматриваются в основном вопросы моделирования средствами СУБД иерархических структур только для определенного класса объектов по какому-то одному типу отношений (подчиненности, вхождению и т.п.). В таком случае при необходимости внесения в модель новых типов сущностей ПО или новых типов отношений между ними требуется определение новых типов реляционных отношений, правил обеспечения целостности, непротиворечивости и достоверности информации. Это следует делать на уровне языка описания и манипулирования данными конкретной используемой СУБД, а при необходимости – и на уровне исходного кода приложений. Все это требует привлечения соответствующих специалистов и дополнительных временных и материальных расходов. Целесообразно переложить основную тяжесть этой работы на специалистов другого уровня, непосредственно эксплуатирующих данную модель, – инженеров по знаниям в данной ПО и конечных пользователей. Этого можно добиться, если не создавать отдельные реляционные отношения (таблицы) для различных типов сущностей концептуальной модели, а использовать для описания сущностей ПО различных типов и их отношений (связей) ограниченный фиксированный набор таблиц. Это позволяет гибко настраивать БД для моделей различных ПО, не изменяя ее структуры. В этой связи рассмотрим объектно-иерархическую модель ПО на уровне концептуального представления и на уровне модели данных. Уровень концептуального представления На уровне концептуального представления объектно-иерархическая модель ПО представляет собой совокупность понятий, связанных между собой по каждому из рассматриваемых различных типов отношений в иерархическую структуру. Таким образом, в отличие от традиционного представления иерархии объектов в объектно-ориентированном моделировании как моноиерархии наследования, в данном случае предлагается в некотором смысле мультииерархичность структуры описания ПО. Иерархические данные в объектно-ориентированных языках естественным образом представляются благодаря тому, что значение атрибута объекта, в свою очередь, может быть объектом. Обобщенная структура объектно-иерархической модели ПО представлена на рисунке 1. Объектно-ориентированный подход к моделированию ПО состоит в том, что структура сущностей ПО и их поведение и взаимодействие описываются как единое целое. Объекты не являются совокупностью пассивных данных. Это активные образования, которые могут производить необходимые операции над элементами своей структуры и вызывать требуемые изменения в состоянии других объектов. Объекты используются для моделирования понятий ПО и событий или действий. Таким образом, объекты содержат декларативную и процедурную части и могут быть представлены в виде obj = , (1) где shm(obj) – схема объекта, представляющая собой совокупность имен множества дифференциальных, характеристических параметров и валентных признаков, определяющих экстенсионал и интенсионал объекта; met(obj) – методы, используемые для изменения экземпляров объекта; mes(obj) – сообщения, которые могут посылаться объектом. Объекты не находятся в статическом состоянии, а изменяют его в течение времени. Состояние объекта определяется некоторым его экземпляром. Экземпляры одного объекта различаются значениями параметров, имена которых одинаковы. Параметры объектов могут быть характеристическими и дифференциальными. Характеристические параметры позволяют отличать экземпляры объектов одного типа, а дифференциальные используются в качестве характеристики содержания экземпляра объекта. Связи (валентные признаки) обеспечивают иерархические ссылки между различными объектами. Без потери общности эти связи можно считать бинарными. Состояние, в котором может находиться объект, изменяется с помощью методов. Метод – это определенная внутри объекта процедура, для которой значения параметров объекта доступны без явной передачи их в качестве параметров. ПО при объектно-ориентированном подходе представляется в виде некоторого множества объектов, которые взаимодействуют между собой только путем посылки сообщений, вызывающих события, связанные с изменением состояния объектов. Кроме того, события могут генерироваться и извне, например, из системного окружения. Уровень модели данных Способы построения модели данных в первую очередь определяются выбором СУБД, в которой она должна быть реализована. В последнее время получают распространение постреляционные СУБД [4], имеющие в своем арсенале специальные средства для представления и манипулирования многомерными моделями данных, позволяющими работать со сложноструктурированными данными и преодолевать ограничения, связанные с использованием реляционной технологии СУБД. Реляционные БД вынуждают представлять иерархические данные в терминах кортежей многих отношений. А для выборки данных, разбросанных таким образом по многим отношениям, реляционная БД должна выполнять дорогостоящие операции соединения. Однако реляционные СУБД продолжают оставаться фактическим стандартом в области хранения и переработки данных. И такое положение продлится, очевидно, еще достаточное время. Поэтому авторам кажется очевидным, что разработка методов построения моделей данных для реляционных СУБД, преодолевающих в некотором смысле перечисленные недостатки реляционного представления сложноструктурированных данных, является актуальной задачей. Для реализации предложенной концептуальной объектно-иерархической модели ПО был выбран сервер БД InterBase Server. Этот выбор объясняется возможностью InterBase, наряду с присущими ему средствами, характерными для СУБД такого класса (хранимые процедуры (STORED PROCEDURE), определяемые пользователем функции (UDF)), использования механизма посылки уведомлений клиентских приложений о наступлении какого-либо события (EVENT) [5]. При этом одновременно работающие приложения могут обмениваться сообщениями через сервер БД, вызывая хранимые процедуры, в которых реализована инициация нужного события. Это позволит эффективно и без лишних затрат организовать реализацию процедурной части представленной концептуальной модели. Исходя из сказанного, на уровне модели данных объектно-иерархическая модель ПО представляет собой иерархическую совокупность взаимосвязанных реляционных таблиц, упрощенная структура которых представлена на рисунке 2. Реляционные отношения имеют следующий смысл и назначение. - Object соответствует объектам концептуальной модели и содержит перечень объектов ПО. - StrType определяет типы объектов, представленных в Object. - Parameters определяет параметры объектов ПО, не являющихся объектами. Параметры могут быть любого из типов данных, поддерживаемых СУБД. - Ratio_Type определяет типы (семантику) отношений в ПО. - Ratioes соответствует отношениям концептуальной модели и содержит их полный перечень. - Obj_Ratio реализует логическую связь Ratioes-Object типа М:М. - Events обеспечивает организацию обслуживания событий в порядке очередности поступления. - Correlations соответствует методам концептуальной модели. Эта схема отражает лишь декларативное представление структуры описания объектов и их взаимосвязей, соответствующее статическому состоянию ПО. Не будем касаться вопросов обеспечения целостности, непротиворечивости и достоверности информации, лишь отметим, что они реализуются применением таких средств СУБД, как первичные и внешние ключи, ограничения на значения отдельных полей, генераторы и триггеры. Динамика процессов взаимодействия объектов концептуальной модели реализована с использованием рассмотренных выше средств, предоставляемых InterBase Server (STORED PROCEDURE, UDF, EVENT), и специально разработанного сервисного модуля, обеспечивающего реализацию фиксации генерируемых БД событий и вызов соответствующей хранимой процедуры для означивания нужных параметров объектов. Эти хранимые процедуры служат средством использования той или иной функции из библиотеки, предоставляющей набор разработанных UDF, состав которых может быть изменен или дополнен при необходимости введения других правил означивания параметров объектов. Механизм такого моделирования динамики функционирования модели ПО представлен на рисунке 3. Для реального наполнения БД объектами ПО, установления требуемых семантических связей между ними разработан блок администрирования БД в виде компонента ActiveX «Управления иерархической базой данных» для ОС Windows, реализующего соответствующие интерфейсы ввода и корректировки информации с помощью оконных форм. Первоначальная структура создается на этапе подготовки системы к применению и открыта для пополнения и изменения по мере создания новых структур данных, требующих данные о других объектах ПО. Компонент «Управления иерархической базой данных» был использован в системе мониторинга состояния учебного процесса Ростовского военного института ракетных войск. В виде объектно-иерархической модели ПО была представлена информация о структуре показателей качества функционирования вуза, характеризующих все виды обеспечения с необходимой детализацией, о причинно-следственных связях между ними, необходимых ресурсах и их потребностях для изменения состояния учебного процесса. Список литературы 1. Цаленко М.Ш. Моделирование семантики в базах данных. – М.: Наука, 1989. – 288 с. 2. Полякова Л.Н. Создание иерархической структуры данных в среде MS SQL Server// Программные продукты и системы. – 2001. -№2. – с. 5-9. 3. Виноградов С.А Моделирование иерархических объектов. - http://www.citforum.ru/database/articles/tree.shtml, 2001. 4. Поляков А.О., Семенов И.А. Представление знаний и объектно-ориентированная СУБД Cache.- http:// www.inftech.webservis.ru/it/ii/ar4.html 5. InterBase SQL Server 5.5: Language Reference. – InterBase Software Corp. Tech Pubs, 1999. – 304c. |
http://swsys.ru/index.php?id=697&lang=.&page=article |
|