На стартовую страницу


Г.В. СМЕНЦАРЕВ (Москва)

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ СУБД
И ВОЗМОЖНОСТИ ИХ ПРИМЕНЕНИЯ
В ИСТОРИЧЕСКИХ ИССЛЕДОВАНИЯХ

Технологии хранения данных и объектно-ориентированные СУБД

В 1969 г. научным сотрудником компании IBM И.Ф. Коддом была предложена реляционная модель данных, сыгравшая в то время большую роль в упорядочении организации информации в базах данных и доступа к ним [5]. Реляционная модель помогла сориентировать компьютерные науки на исследования проблем управления данными, а системы управления реляционными данными (реляционные СУБД) внесли заметные улучшения в доступ к данным и разработку приложений. Реляционная модель была положена в основу концепции доступа к

186

данным рядом крупных компьютерных компаний, в числе которых Oracle Corporation, Informix Software, IBM, в результате деятельности которых был создан ряд программных средств, обеспечивающих доступ к информации, представленной в реляционном виде. Так, в 1970 г. в компании IBM был разработан язык SQL (Structured Query Language), ставший впоследствии стандартным языком, используемым для связи с системами управления реляционными базами данных, такими как Oracle, INGRES, Informix, Sybase, SQLbase, Microsoft SQL Server, DB2. В 1979 г. компанией Silicon Valley была разработана Oracle - первая коммерческая реляционная база данных [4].

По оценкам экспертов, в настоящее время хранилища данных, основанные на реляционной модели представления информации, занимают до 99% рынка баз данных в мире. Вместе с тем, подобные базы обладают рядом принципиальных недостатков, присущих табличной форме хранения данных [6, 7]. В их числе:

невозможность обеспечения полной поддержки объектов. Реляционные СУБД предназначены для хранения простейших типов данных (числа и текст) и не способны управлять сложными объектами, и, тем более, их взаимосвязями. Основываясь на двумерной табличной форме представления, реляционная модель не позволяет удовлетворить информационные потребности пользователей в манипулировании информацией, имеющей разнообразную структуру данных. В результате возникает проблема взаимоувязывания двумерных таблиц. Эта проблема в реляционных СУБД была решена посредством механизма их объединения, суть которого заключалась в создании специальной группы таблиц (Information_Sсhema), с помощью которой устанавливалось взаимно однозначное соответствие между строками основных таблиц. Таким образом, производителями реляционных СУБД сделана попытка научить свои реляционные системы поддерживать объекты. Однако, эта попытка основана на реляционной технологии, и даже в таких гибридных системах, как Informix Universal Server или Oracle 8 Universal Data Server, полной реализации объектной модели данных достигнуть не удалось. В частности, они не поддерживают некоторые базовые свойства объектов, такие как наследование.

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

187

Дополнительной проблемой таких систем является необходимость переноса кода из базы в приложение, что вызывает значительное замедление в работе клиентов на маломощных рабочих станциях. Частичная реализация объектной модели данных в гибридных системах - это лишь одна из целого ряда их проблем.

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

Объектная технология в области хранения и обработки данных не нова. Она стала известна в конце 60-х годов, но не получала своего развития в силу невостребованности, как представляется, из-за недостаточной мощности вычислительных средств и ресурсов своего времени. В последнее время подобная технология активно продвигается на рынок. В частности, она применена в СУБД Jasmine - совместной разработке компаний Computer Associates (США) и Fujitsu (Япония), появившейся на рынке в конце 1997 г. В России объектно-ориентированный подход к созданию банков данных реализован в СУБД "Cronos Plus", разработка и развитие которой ведется с середины 80-х годов.

Ключевые концепции объектной технологии

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

конкретные исторические личности: Мария Тюдор, Карл V, Петр Великий;

188

исторические факты и события: Куликовская битва, снятие осады с Орлеана Жанной Д'Арк, казнь английского короля Карла I;

документы: Повесть временных лет, Декларация о независимости США 1774 года и т.д.

В общем случае объекты обладают двумя качествами:

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

Они имеют методы, связанные с объектами. Метод определяет особое поведение объекта.

Классы. Класс - это абстрактное описание данных для совокупности однотипных объектов. Определение класса, таким образом, является шаблоном для объектов этого класса. Когда пользователь создает новый объект, осуществляется реализация класса, поэтому термины "объект" и "реализация класса" являются синонимами. Этот объект, или реализация, содержит реальные данные приложения.

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

свойства уровня реализации;

свойства уровня класса;

многозначные, или множественные, свойства;

свойства атрибутов;

свойства взаимосвязей.

Таблица N1 демонстрирует различные типы свойств, которые могут являться частью описания класса.

189

Таблица N1

Хроника гражданской войны, 1919 год
Наименование события Дата начала события Дата окончания события Квалифи- кация события Территория действия события Субъекты события*
Красная Армия вошла в Одессу 06.01.1919 06.01.1919   Одесса Рабоче-крестьянская Красная Армия
Создан комитет обороны Петрограда во главе с Г.Е. Зиновьевым 03.05.1919 03.05.1919 историческое событие Петроград Комитет обороны Петрограда, Г.Е. Зиновьев
Войска А.И. Деникина начали контрнаступление в Донбассе и взяли Луганск 05.05.1919 05.05.1919   Донбасс, Луганск Рабоче-крестьянская Красная Армия, Армия генерала А.И. Деникина
Войска А.И. Деникина вытеснили Красную Армию из Крыма, взяли Царицын и начали подготовку к наступлению на Москву 30.06.1919     Крым, Царицын Рабоче-крестьянская Красная Армия, Армия генерала А.И. Деникина

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

Свойство уровня реализации Свойство уровня реализации Свойство уровня реализации Свойство уровня класса Свойство уровня реализации Свойство уровня реализации
Немножес
твенное свойство
Немножес
твенное свойство
Немножес
твенное свойство
Немножес
твенное свойство
Множес
твенное свойство
Множес
твенное свойство
Свойство атрибутов Свойство атрибутов Свойство атрибутов Свойство атрибутов Свойство взаимосвязей Свойство взаимосвязей

190

Свойства уровня реализации применяются к индивидуальным объектам. В приведенном примере наименования событий, даты их начала и завершения являются свойствами уровня реализации, так как они применимы только к индивидуальным реализациям.

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

Свойства уровня реализации и уровня класса могут быть многозначными (множественными). В приведенном примере территория действия и субъекты события хранятся как многозначные свойства уровня реализации.

Свойства разделяются также по атрибутам и взаимосвязям. Атрибут - это свойство, значение которого постоянно, например, число, строка или дата. Взаимосвязь - это свойство, значением которого является другой объект (см. пример выше). Название события, дата его начала и окончания являются свойствами атрибутов, так как каждое свойство является литеральным значением: строкой символов или датой. Напротив, субъект события является свойством взаимосвязи, так как он существует сам по себе как объект в классе "ОРГАНИЗАЦИЯ". Объектно-ориентированная СУБД хранит ссылки на "Рабоче-крестьянскую Красную Армию" и "Армию генерала А.И. Деникина", объекты класса "ОРГАНИЗАЦИЯ", как свойства объекта класса "СОБЫТИЕ", идентифицированного названием "Войска А.И. Деникина начали контрнаступление в Донбассе и взяли Луганск".

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

191

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

Методы содержат код, который интерпретируется данными и воздействует на них. Код метода хранится вместе с данными в объектно-ориентированном банке данных (ООБД). Методы полезны для выполнения над объектом или группой объектов логических действий. Если они включены в базу данных, то отпадает необходимость сопровождения и обновления логики во внешнем приложении.

Методы обладают свойствами инкапсуляции и полиморфизма.

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

Метод является полиморфным, если он может быть реализован различными способами, в зависимости от класса объектов, к которому он применяется. Полиморфизм упрощает разработку приложений, потому что разработчик не должен проверять определенный тип объекта перед вызовом метода. Он также позволяет вводить новые типы объектов, не воздействуя на существующие программы. Различают:

методы уровня реализации;

методы уровня класса;

методы уровня коллекции.

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

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

Методы уровня коллекции. Коллекция - это совокупность объектов одного типа, например, коллекция событий или коллекция людей.

192

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

Наследование позволяет создать новое определение класса (называемое подклассом), которое содержит все свойства и методы своего предка (называемого суперклассом). Затем в подклассе можно добавить новые свойства и методы, изменив или усовершенствовав унаследованные.

Путем наследования классы организуются в иерархию класса, представляя естественные взаимосвязи специализации и обобщения. Преимущество классификации объектов в иерархии состоит в том, что свойства и методы, общие для нескольких классов, могут определяться на максимально возможном верхнем уровне иерархии. Подклассы, созданные на основе класса, могут затем повторно использовать свойства и методы, уже определенные в суперклассе. Для примера на рис.1 приведена экранная форма иерархии класса "Information_source" ("Информационный источник"), реализованная с помощью инструментальных средств СУБД "Jasmine". Методы, определенные для данного класса, применимы ко всему классу "Information_source" и всем его подклассам, поэтому их необходимо определить и реализовать всего один раз. Подклассы, производные от "Information_source", такие как "Documentary_source" ("Документальный источник"), "Informal_source" ("Неформальный источник") и "Normative_act" ("Нормативный акт") могут повторно использовать методы класса "Information_sourse" без изменений.

Если теперь добавить подкласс "Things" (Предметы") к классу "Information_source", то "Things" унаследует свойства и методы "Information_source".

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

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

193

Инструментальные средства построения объектно-ориентированных банков данных

Инструментальная система управления базами данных "Cronos Plus"

Назначение и возможности системы. Среди известных средств построения объектно-ориентированных банков данных в России и других странах СНГ наибольшее распространение получил продукт отечественной оборонной промышленности - инструментальная система управления базами данных (ИСУБД) "Cronos" и ее Windows-версия - система "Cronos Plus".

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

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

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

СУБД "Cronos Plus" обеспечивает:

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

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

Основные режимы функционирования. Основными режимами функционирования системы являются:

Обработка.

Накопление.

Проектирование.

Администратор.

Макро.

Выход.

196

ОБРАБОТКА - режим, в котором сосредоточены основные возможности системы по манипулированию информацией. Обеспечивает пользователю многоаспектный поиск информации с учетом логических связок И/ИЛИ, разнообразных условий на значения и кратность свойств объектов, ассоциативных видов сравнений, скобочных структур и цепочек связей. Отобранную информацию можно сортировать, распределить по значениям свойств, осуществить подсчет в соответствии с вновь заданными критериями, сформировать двухмерные статистические сводки. Поддерживается библиотека постоянных запросов, а также пакетная обработка и средства уточнения запросов. Реализована процедура обработки запросов в режиме удаленного доступа с использованием модема. Средства коррекции используются для изменения загруженной в банк информации, при этом обеспечиваются процедуры индивидуальной и массовой коррекции объектов. Режим позволяет удалять, добавлять и объединять объекты, а также корректировать значения свойств с автоматической отработкой процедур идентификации и слияния информации и коррекции индексных массивов. Реализована возможность выдачи информации на экран, принтер или файл текстом или таблицами по предварительно подготовленным пользователем шаблонам, в том числе в виде развернутого "досье", интегрирующего информацию из связанных объектов. Ответы на запросы могут быть отредактированы с использованием внутреннего или внешнего подключаемого текстового редактора.

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

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

197

ранее подготовленных текстовых файлов. На этапе ЗАГРУЗКИ входных сообщений работают процедуры идентификации и слияния информации в соответствии с заданными пользователем правилами, а также автоматическое обновление индексных массивов. Предоставляется возможность накопления в режиме удаленного доступа через модем.

ПРОЕКТИРОВАНИЕ - режим, позволяющий описывать состав и структуру накапливаемой информации, определять классы данных и их свойства, а также взаимосвязи между классами; задавать правила идентификации и слияния однотипных данных. Режим обеспечивает реструктуризации банка данных в процессе его эксплуатации в соответствии с изменившимися информационными потребностями пользователей, исключая процедуры реорганизации и перезаписывания данных. Для стандартизации понятий и классификаторов используются автоматизированные словари, которые можно создавать, удалять, корректировать, задавать в них уровни иерархии для объединения понятий в группы, сортировать понятия по коду или алфавиту, искать понятия по коду и контексту. Реализован аппарат построения форм ввода и выдачи информации, библиотеки стандартных запросов, таблиц экспорта/импорта для обмена данными между различными банками, кодирования методов обработки данных.

АДМИНИСТРАТОР - режим, обеспечивающий процедуры копирования и восстановления банка данных полностью, либо отдельных его компонентов. Он включает также средства оптимизации и поддержания целостности банка данных, формирования и создания новых индексных массивов, разграничения доступа, а также экспорта/импорта сведений через таблицы обмена.

МАКРО - режим, позволяющий проектировать и выполнять последовательности команд системы, что обеспечивает экономию времени при выполнении часто используемых процедур. С помощью этого режима самый неподготовленный пользователь может выполнять сложные манипуляции с данными.

ВЫХОД - режим, обеспечивающий корректное завершение работы с системой или подключение другого банка данных, если их более одного.

Пример пользовательского интерфейса СУБД "Cronos Plus" приведен на рис.2.

198

Распространенность системы. В настоящее время на базе СУБД "Cronos" в России и странах ближнего зарубежья эксплуатируется более 500 информационных систем различной степени сложности и назначения. СУБД установлена в государственных и коммерческих организациях, среди них:

Управление информационными ресурсами Аппарата Президента РФ,

Служба безопасности Президента РФ,

Министерство внутренних дел,

Департамент налоговой полиции РФ,

Московская регистрационная палата,

ГУ Центробанка по ряду областей России,

Сбербанк России,

Менатеп,

Столичный банк сбережений,

Онэксимбанк,

Сахалинское морское пароходство,

АО "Алмазы "России-САХА"

и другие.

Система управления базами данных "Jasmine"

Назначение и возможности системы. В начале декабря 1997 г. в Нью-Йорке, а 17 декабря того же года в Москве компанией Computer Associates была представлена объектно-ориентированная мультимедийная СУБД Jasmine. Данная СУБД изначально проектировалась как система для быстрой разработки пользователями бизнес-приложений, использующих мультимедийные данные и работающих в Интернете.

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

Архитектура Jasmine. Для достижения максимальной производительности Jasmine использует распределенную клиент/серверную архитектуру, которая позволяет эффективно использовать ресурсы современных персональных компьютеров, выполняя наиболее сложные операции в безопасной и устойчивой к ошибкам среде сервера.

200

Рис.3. Архитектура СУБД Jasmine

На стартовую страницу

201

Jasmine построен из следующих компонентов (см. рис.3):

Хранилище Jasmine (Jasmine Store) - контейнер физических данных в рамках базы данных Jasmine;

Сервер базы данных Jasmine (Jasmine Database Server) - сервер, который хранит мультимедийные данные приложений. Он же осуществляет управление базами данных и вызывает методы обработки данных;

Клиент Jasmine (Jasmine Client) - среда, в которой выполняется приложение Jasmine, пока существует действующее соединение с сервером баз данных Jasmine;

Библиотеки классов Jasmine (Jasmine Class Library) - группы семейств классов, предопределенные и поставляемые вместе с Jasmine, которые обеспечивают поддержку мультимедийных данных;

Jasmine Studio - GUI-инструмент разработчика, предназначенный для создания приложений и доступа к базе данных Jasmine;

Jasmine API - набор вызовов функций, управляющих базой данных Jasmine с помощью языков программирования C, C++ и других;

Java Bindings - интерфейс между Jasmine и Java, который создает класс Java для каждого класса Jasmine, позволяя таким образом получать доступ к базе данных с помощью языка Java;

Jasmine ActiveX - средство, работающее с операционной системой для обеспечения доступа к базе данных Jasmine посредством Visual Basic или любой другой среды разработки, поддерживающей ActiveX;

Jasmine Plug-in - включаемый модуль программы просмотра Web, позволяющий пользователю запускать приложение Jasmine и получать доступ к базе данных Jasmine посредством World Wide Web;

WebLink - HTML-преобразователь, обеспечивающий доступ к объектам Jasmine со стандартных HTML-страниц в World Wide Web без использования Jasmine Plugin;

Доступ к реляционным данным (Relational Data Access) - набор классов Jasmine, позволяющий приложению Jasmine получать доступ и манипулировать данными в реляционных базах данных.

База данных Jasmine содержит одно или несколько хранилищ данных, включающих как метаданные, так и данные пользователя. Каждое хранилище объединяет одно или несколько семейств классов.

202

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

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

Клиент Jasmine представляет собой среду выполнения приложения, которая управляет отображением анимации и мультимедиа, координирует взаимодействие пользователя с внутренними функциями, управляет выборкой мультимедийных ресурсов из базы данных и взаимодействует с сервером для выполнения методов. Клиентское приложение выполняется либо как отдельная программа, либо как загружаемый модуль для программ просмотра Web, таких как Netscape Navigator или Microsoft Internet Explorer. В любом случае выполняющееся приложение взаимодействует с сервером базы данных Jasmine.

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

Среда разработки приложений Jasmine (Jasmine Studio) позволяет создавать приложения для размещения в Internet/intranet или на клиентских рабочих станциях, избегая громоздких языков сценариев, требующихся в других системах мультимедийной разработки.

203

Jasmine поддерживает наиболее популярные языки программирования, включая C, C++, Java и Visual Basic. Этой цели служат специализированные элементы архитектуры системы.

В частности, Jasmine C API позволяет разрабатывать приложения, пользующиеся преимуществами базы данных Jasmine. При программировании с использованием C API используется комбинация основного языка (C, C++) и ODQL, объектно-ориентированного языка программирования для Jasmine. При этом ODQL используется для определений объектов, объектных запросов и манипуляций с объектами, а основной язык - для разработки пользовательского интерфейса, а также сложных вычислений.

Среда Java, связанная с Jasmine, - Java Binding - обеспечивает полный доступ к базе данных Jasmine. При этом определения классов создаются и изменяются в Java, а база данных Jasmine используется апплетами Java в качестве основного хранилища классов и объектов. При необходимости определения классов экспортируются и становятся доступными для Java. Таким образом, для каждого определения класса в базе данных Jasmine создается класс Java. Классы Java могут быть затем вставлены в любое приложение Java.

Jasmine ActiveX обеспечивает доступ к базе данных Jasmine посредством Visual Basic. Управляющие элементы ActiveX (Jasmine ActiveX controls) - это программные объекты, которые могут использоваться с Visual Basic или любой другой средой разработки, поддерживающей ActiveX. Управляющие элементы ActiveX, вставленные в приложение Visual Basic, позволяют подключаться к базе данных Jasmine на удаленном сервере и получать доступ к данным.

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

Приложение Jasmine может быть развернуто на Web с помощью Jasmine Web Browser plug-in. Jasmine plug-in действует как клиент Jasmine и использует HTTP, стандартный протокол Web, для связи с сервером Jasmine. Приложение Jasmine действует затем как апплет внутри страницы HTML.

204

Jasmine также содержит WebLink, автоматический конвертор HTML. WebLink обеспечивает доступ к объектам Jasmine и используется в случаях, когда пользователь получает доступ к серверу Jasmine посредством программы просмотра Web, в которой отсутствует поддержка plug-in.

Клиенты и партнеры Jasmine. Система управления базами данных Jasmine используется прежде всего теми компаниями, которым требуется инструментальное средство для конструирования приложений, включающих сложную графику и звук, а также обеспечивающее доступ пользователей к мультимедийным данным по сети Internet.

Так, компания "Toyota" использовала Jasmine для разработки дилерского киоска, позволяющего заказчикам просматривать и приобретать запчасти к автомобилям фирмы в интерактивной среде. При этом специалистами фирмы к среде разработки выдвигались требования:

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

Возможность быстрой разработки приложения;

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

В марте 1998 г. компания West McLaren Mercedes, разработчик гоночного автомобиля Формула-1 МР4/13, объявила об использовании СУБД Jasmine для реализации проекта по сбору и анализу исторических данных о функционировании автомобиля. Целью проекта явилось сбор, коррелирование и отображение архивной информации о всех условиях, которые влияли на работу машины в предыдущих гонках и испытаниях, с целью получения более полной картины того, как машина реагирует на различные условия эксплуатации. По заявлениям специалистов фирмы, Jasmine является лучшим на сегодняшний день средством ведения репозитария. В перспективе Jasmine предусматривается использовать для управления сложными данными, поступающими из телеметрических источников, и выдавать их в формате, удобном для анализа.

Шведская национальная телефонная компания Telia использовала Jasmine для разработки приложения, позволяющего осуществлять дистанционное обучение своих сотрудников с использованием мультимедийных данных. Компания L'Oreal, один из крупнейших в мире производителей косметики, с помощью Jasmine осуществляет управление аудиовизуальными

205

рекламными материалами своей продукции, подключив к их хранилищам множество своих представительств во всем мире.

Сравнительные характеристики СУБД "Cronos Plus" и "Jasmine"

Рассмотренные инструментальные средства, обеспечивающие представление обрабатываемых данных в объектной форме, различаются по составу, структуре и своим функциональным возможностям. В этой связи возникает проблема правомерности и корректности постановки вопроса: какое же из этих средств предпочтительнее для пользователя?

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

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

От подобных недостатков избавлена СУБД "Jasmine", которая изначально разрабатывалась в соответствии с классическими атрибутами объектной технологии. Однако, основной целью разработки "Jasmine", как следует из документации на систему, явилось предоставление пользователю среды визуальной разработки объектно-ориентированных мультимедийных приложений с обеспечением возможности доступа к ним через World Wide Web. В этой связи, в отличие от "Cronos Plus", где упор сделан на разработку инструментария информационно-логической обработки строковых и числовых данных, "Jasmine" предлагает пользователю

206

широкий выбор средств обработки мультимедийных и графических данных.

Помимо неоспоримых преимуществ "Jasmine" перед "Cronos Plus" в части предоставления возможности разработки приложений для Internet и обеспечения тем самым доступа пользователей к банку данных по WWW (у "Cronos Plus" таких возможностей в настоящее время не имеется), "Jasmine" предоставляет пользователю более богатые и гибкие возможности по разработке и проектированию запросов и методов обработки данных на собственном языке программирования ODQL (Object Database Query Language), а также т.н. "гостевых" языках - C, C++, Java и Visual Basic.

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

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

207

Как представляется, подобный недостаток "Jasmine" связан с попыткой разработчиков системы упростить проектирование пользователями банков данных за счет использования в качестве идентификаторов наименований классов и их свойств. В противоположность этому, СУБД "Cronos Plus" в качестве идентификаторов классов и свойств использует дополнительные служебные параметры: неизменяемые мнемонические и числовые значения, с которыми оперирует программное обеспечение, - а наименования классов и свойств для данной СУБД выступают в качестве комментариев, и могут произвольным образом подвергаться многократным изменениям со стороны пользователей. Вторая причина повышенной устойчивости структуры данных в системе "Cronos Plus" связана с описанием в логической модели данных пользователем связей между классами объектов на уровне "свойство-свойство", то есть сам пользователь определяет взаимно однозначное соответствие между свойствами различных классов. В СУБД "Jasmine" связи определяются пользователем на уровне "свойство-класс", устанавливаются по внутреннему алгоритму системы по команде Build, и разрушаются при вызове команды Unbuild.

СУБД "Cronos Plus" является средой пользователя, в которую изначально заложены типовые команды и блоки, реализующие функции специализированных методов и обеспечивающие информационно-логическую обработку трудноформализуемых данных и генерирование новой информации в автоматизированном режиме, в том числе:

поиск цепочек опосредованных связей;

ассоциативные виды сравнения объектов банка данных между собой;

сравнение вновь поступающих данных с имеющимися в банке, при необходимости дополнение существующих объектов недостающими данными.

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

Простота описания классов и свойств в СУБД "Cronos Plus" позволяет существенно упростить сложный процесс проектирования банков данных

208

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

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

В отличие от этого, система "Jasmine" является средой разработчика, не содержит специализированных настроек и требует определенных усилий программистов, имеющих опыт работы с языком построения запросов к объектной базе данных ODQL (Object Database Query Language) и, возможно, одним из языков программирования: C, C++, Java, Visual Basic - для создания специализированных методов обработки информации, адекватных задачам формально-логической обработки трудноформализуемых данных.

Логическая модель данных, реализуемая средствами "Jasmine", не обладает гибкостью, присущей СУБД "Cronos Plus". В частности, в "Jasmine" отсутствует возможность многовариантных перекрестных ссылок из одного свойства на различные классы данных, что естественным образом реализуется в "Cronos Plus". Например, класс объектов "Организация" в одних случаях может группироваться с классом "Лицо" как это имеет место для свойства "Субъекты события" класса "Событие". В других случаях класс "Организация" может группироваться с классом "Географический адрес", как это имеет место для свойства "Представительства и филиалы организации" класса "Организация".

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

209

Механизм взаимосвязей классов в СУБД "Cronos Plus" позволяет учитывать не только многовариантность, но и направленность ссылок между объектами банка данных. Ссылки могут быть равноправными или иерархическими. Навигация по банку данных "Cronos Plus" между объектами, связанными системой равноправных отсылок, никак не ограничена и может осуществляться в любых направлениях, как вперед, так и назад, так как на этапе ввода информации при задании "прямой" ссылки на объект, связанный с исходным объектом равноправной отсылкой, "обратная" отсылка устанавливается автоматически. В случае использования иерархических отсылок пользователь будет видеть только те объекты, на которые идут ссылки из данного объекта, но не увидит объектов, из которых идут на него ссылки.

В СУБД "Jasmine" понятие равноправной отсылки отсутствует как таковое. Система отсылок носит однонаправленный характер, а проблема "уравнивания в правах" связей между объектами ложится на пользователя.

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

Сравнительные характеристики СУБД "Cronos Plus", "Jasmine" и реляционных СУБД приведены в таблице N2.

210

NN п/п Сравнительная характеристика Cronos Plus Jasmine Реляционные СУБД
1. Прямые адресные отсылки между взаимосвязаными объектами без использования внутренних промежуточных таблиц + + -
2. Возможность отсылок из одного свойства на различные типы классов + - -
3. Возможность реализации отношений и связей по принципу "многие ко многим" + + -
4. Независимость от разработчиков СУБД при разработке, проектировании и реализации банков данных, а также в случае необходимости изменения состава и структуры баз данных, минимизации затрат на модификацию структуры + - -
5. Учет характера связей между объектами (равноправные или иерархические) + - -
6. Возможность использования многозначных свойств + + -
7. Наличие встроенного механизма обеспечения безызбыточности хранения данных за счет идентификации хранящейся в банке данных информации с вновь вводимыми данными + - -
8. Хранение и обработка мультимедийной информации с помощью собственных инструментальных средств - + +
9. Наличие развитого языка манипулирования данными, позволяющего создавать сложные пользовательские приложения с использованием информации, хранящейся в банке данных - + +
10. Обеспечение удаленного доступа к банку данных по сети Internet - + +
211

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

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

Возможности применения объектно-ориентированных банков данных в исторических исследованиях

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

формирование исторического архива путем изучения текущей обстановки по интересующей проблеме в режиме реального времени;

информационное моделирование и реконструкцию исторических событий;

создание интегрированных информационно-справочных систем.

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

Подобные СУБД позволяют в режиме реального времени:

отслеживать динамику развития объектов и явлений реального мира во времени, давать прогнозы развития обстановки;

проводить причинно-следственный анализ имевших место событий, выявлять побудительные мотивы в действиях субъектов событий;

реконструировать и воссоздавать неизвестные наблюдателю события, имевшие место в прошлом;

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

Аналитические возможности таких систем реализуются благодаря следующим обстоятельствам:

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

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

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

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

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

Литература

Дж. Мартин. Организация баз данных в вычислительных системах. М., "Мир", 1980.

Майкл Томас, Пратик Пател, Алан Хадсон, Дональд Болл мл., Секреты программирования для Internet на Java. СПб., "Питер", 1997.

Тимоти Бадд. Объектно-ориентированное программирование в действии. СПб, "Питер", 1997.

Мартин Грабер. SQL, справочное руководство. М., "Лори", 1997.

Стивен Бобровски. Oracle 7, вычисления клиент/сервер. М., "Лори", 1996.

Jasmine. Версия 1.1. Концепции. Computer Associates, Fujitsu. 1997.

Jasmine. Технический обзор. Computer Associates, Fujitsu. 1997.

214

Содержание
Информационный бюллетень Ассоциации "История и компьютер"