Научная статья на тему 'Опыт объектно-ориентированного проектирования баз данных'

Опыт объектно-ориентированного проектирования баз данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
153
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кеменов А. Ф., Кошелева Т. Н.

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

Текст научной работы на тему «Опыт объектно-ориентированного проектирования баз данных»

ОПЫТ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ

А.Ф. Кеменов, Т.Н. Кошелева

В настоящее время большое влияние на проектирование информационных систем оказывает концепция MDA (Model driven architecture, дословно: архитектура, управляемая моделью). Суть этой концепции - подход к спецификации информационных систем (ИС), который отделяет спецификацию функциональности ИС от реализации этой функциональности на определенной технологической платформе [1]. Независимая спецификация составляет основу PIM (Platform independent model - модели, независимой от платформы). На последующих этапах разработки PIM трансформируется в PSM (Platform specific model - модель, специфическую для целевой платформы). Далее на основе PSM формируется реализация ИС для целевой платформы.

Для описания PIM и PSM консорциум OMG (Object management group), развивающий концепцию MDA, предлагает использовать язык UML (Unified modelling language - унифицированный язык моделирования [2]). Язык UML хорошо подходит для моделирования программных средств, поскольку поддерживает объектно-ориентированный подход - ведущую парадигму разработки программного обеспечения. Однако при описании предметной области для построения баз данных (БД) язык UML - не самый лучший вариант: его графическая нотация громоздка и невыразительна.

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

Рис. 1. Редактор онтологий Protégé с .загруженной моделью PIM

вания является свободно распространяемый редактор онтологий Protégé [3] разработки Стенфордского университета (http://protege.stanford.edu/index.html, текущая версия 3.1).

Общий вид Protégé с загруженной моделью PIM представлен на рисунке 1. При моделировании классов слева располагается дерево классов, а справа -панель описания слотов текущего класса. Классы верхнего уровня иерархии наследуются от абстрактного базового класса THING, от которого наследуют также служебные классы Protégé.

Понятие «слот» объединяет в себе атрибуты и связи классов. Перечень допустимых типов атрибутов ограничивается строковыми (String), числовыми (Integer, Float), логическими (Boolean), перечислениями (Symbol) и произвольными (Any). Связи характеризуются слотами с типами Instance (экземпляр) и Class. Двухсторонние связи характеризуются также инверсными слотами. Кроме того, слоты могут характеризоваться признаком кардинальности (Cardinality), отражающим их множественный характер (multiple) и обязательность (required). При создании класса, унаследованного от уже существующего, унаследованные слоты маркируются прямоугольником в скобках (например, слот «регистрационный номер» на рисунке 1).

Однако Protégé позволяет описывать не только классы, но и их экземпляры (объекты), что позволяет тут же проверять проектные решения и при необходимости исправлять их.

В соответствии с концепцией MDA следующий шаг в проектировании БД - трансформация подготовленной с помощью Protégé онтологической модели (PIM) в модель PSM, удобную для формирования схемы реляционной БД. Инструментальные средства для такой трансформации отсутствуют, поэтому авторами изготовлена несложная утилита, позволяющая вручную перенести онтологическую модель в модель PSM, для хранения которой используется целевая БД.

Совокупность таблиц БД для хранения модели показана на рисунке 2. Назначение таблиц соответствует их названию: в таблице CLASSES хранятся описание классов, в таблицах ATRDEF и LINKDEF - описание их атрибутов и связей. Значками <pk> и <fk> на схеме маркированы поля таблиц, являющиеся первичными или вторичными ключами, а стрелками обозначены ссылки между таблицами (от вторичного ключа к первичному). Поля name и code, присутствующие в каждой таблице, позволяют одновременно хранить как полные наименования элементов модели, так и специальные, формируемые с учетом

ограничений целевой платформы. В поле inherits таблицы CLASSES помещается код наследуемого класса.

На основании модели PSM вышеупомянутой утилитой генерируются скрипты DDL (Data definition language - язык определения данных) для создания структур хранения объектов. Для отображения объектной структуры на реляционную избрана схе-мозависимая стратегия [4], при которой каждый класс (или иерархия классов) объектов отображаются в отдельную таблицу БД, атрибуты отображаются в поля таблицы, связи между классами типа «один-к-одному» и «один-ко-многим» реализуются соответствующими ссылками между таблицами, а для связей «многие-ко-многим» создаются специальные связующие таблицы. Схемозависимая стратегия позволяет сформировать схему БД, для которой легко настраивается библиотека объектно-реляционного отображения Hibernate.

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

Заключительный этап проектирования БД - настройка объектно-ориентированного доступа к данным. Для этого авторами использована библиотека объектно-реляционного отображения Hibernate (http://www.hibernate.org, текущая версия 3.1).

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

id INT4 <pk>

code VARCHAR(128)

name VARCHAR(255)

table VARCHAR(128)

inherits VARCHAR(128)

CLASS

ATRDEF

id INT4 <pk>

class id INT4 <fk>

code VARCHAR(128)

name VARCHAR(255)

type VARCHAR(32)

table_ VARCHAR(128)

LINKDEF

id

parent_id childjd code name

INT4 INT4 INT4

VARCHAR(128) VARCHAR(255)

<pk> <fk1> <fk2>

multiple_parent BOOL multiple_child BOOL required BOOL

Рис. 2. Таблицы для хранения модели PSM

Для формирования и отладки файлов маппинга и классов JavaBean использовалось специальное инструментальное средство - консоль Hibernate, функционирующая в среде Eclipse. Результирующие файлы маппинга и классы JavaBean объединялись в пакет, который передавался разработчикам приложений.

Таким образом, концепция MDA может быть успешно использована при объектно-ориентированном проектировании БД на основе онтологического моделирования предметной области. Выявленный разрыв в технологической цепочке стимулирует дальнейшее развитие инструментов MDA.

Список литературы

1. MDA Guide Version 1.0.1. - OMG, 2003 (http:// www.omg.org/docs/omg/03-06-01.pdf).

2. Буч Г., Рамбо Дж., Джекобсон А. Язык UML. Руководство пользователя. - М.: ДМК, 2000.

3. Natalya F. Noy and Deborah L. McGuinness, Ontology Development 101: A Guide to Creating Your First Ontology. Stanford Knowledge Systems Laboratory Technical Report KSL-01-05 and Stanford Medical Informatics Technical Report SMI-2001-0880, March 2001. (http ://protege. stanford.edu/publications/ontology_development/ ontology 101 .html).

4. Семенов В.А. и др. Стратегии объектно-реляционного отображения: систематизация и анализ на основе паттернов. // Тр. Инта системного программирования РАН. - 2004.

5. Тенцер А. База данных - хранилище объектов. // КомпьютерПресс. - 2001. - № 8.

6. Bauer Christian, King Gavin. Hibernate in Action. - Manning Publications Co., 2005.

МОДЕЛЬ СПЕЦИАЛЬНОГО ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИИ В ЗАЩИЩЕННЫХ ИНФОКОММУНИКАЦИОННЫХ СИСТЕМАХ

В.В. Голод, В.И. Чернышов, В.Д. Шулика

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

дача удаления информации или уничтожения собственно сигнала) [1,2].

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

Другим примером может выступать стеганография - особый вариант распределения исходной по-

i Надоели баннеры? Вы всегда можете отключить рекламу.