На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Опыт объектно-ориентированного проектирования баз данных

Статья опубликована в выпуске журнала № 4 за 2006 год.
Аннотация:
Abstract:
Авторы: Кеменов А.Ф. () - , Кошелева Т.Н. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 12247
Версия для печати
Выпуск в формате PDF (1.30Мб)

Размер шрифта:       Шрифт:

В настоящее время большое влияние на проектирование информационных систем оказывает концепция 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 – не самый лучший вариант: его графическая нотация громоздка и невыразительна.

Подпись:  
Рис. 1. Редактор онтологий Protégé с загруженной моделью PIM
На наш взгляд, для объектно-ориентированного описания предметной области больше подходит онтологическое моделирование, которое состоит в описании иерархии классов предметной области и связей между ним (в этом плане онтологическая модель весьма близка к диаграмме классов UML). Наиболее популярным средством онтологического моделирования является свободно распространяемый редактор онтологий 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. Двухсторонние связи характеризуются также инверсными слотами. Кроме того, слоты могут характеризоваться признаком кардинальности (Cardi­nality), отражающим их множественный характер (multiple) и обязательность (required). При создании класса, унаследованного от уже существующего, унаследованные слоты маркируются прямоугольником в скобках (например, слот «регистрационный номер» на рисунке 1).

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

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

Совокупность таблиц БД для хранения модели  показана на рисунке 2. Назначение таблиц соответствует их названию: в таблице Classes хранятся описание классов, в таблицах Atrdef и Linkdef – описание их атрибутов и связей. Значками и на схеме маркированы поля таблиц, являющиеся первичными или вторичными ключами, а стрелками обозначены ссылки между таблицами (от вторичного ключа к первичному). Поля name и code, присутствующие в каждой таблице, позволяют одновременно хранить как полные наименования элементов модели, так и специальные, формируемые с учетом ограничений целевой платформы. В поле inherits таблицы Classes помещается код наследуемого класса.

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

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

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

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

Для формирования и отладки файлов маппинга и классов 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/ ontology101.html).

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

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

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


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=442
Версия для печати
Выпуск в формате PDF (1.30Мб)
Статья опубликована в выпуске журнала № 4 за 2006 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: