В стандарте ODMG 2.0 определение типа-интерфейса представляет собой спецификацию только поведения объектного типа. В то же время определение типа-класса специфицирует не только поведение, но и состояние объектного ти­па. Определение литерала специфицирует лишь состояние литерального типа.

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

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

Важным компонентом стандарта ODMG являются спецификации синтак­сиса ряда языковых средств. К их числу относится прежде всего язык определе­ния объектов (Object Definition Language, ODL). С функциональной точки зре­ния он является расширением языка определения интерфейсов OMG (OMG IDL). Точно так же, как и OMG IDL, язык ODL позволяет специфицировать интерфейсы объектов и инкапсулирует их реализации.

Отражая функциональность объектной модели стандарта, язык ODL в отли­чие от OMG IDL допускает не только атомарные объекты, но и коллекции объ­ектов, а также бинарные связи между ними. Помимо типов, ODL дает возмож­ность явным образом специфицировать классы объектов и устанавливать между ними иерархическое отношение расширения — аналог отношения насле­дования между типами.

НЕ нашли? Не то? Что вы ищете?

Язык ODL независим от каких-либо конкретных объектно-ориентирован­ных языков программирования. Для унифицированной интеграции таких язы­ков со средами ООСУБД, основанных на стандарте ODMG, последний вклю­чает стандартизованные спецификации отображения функциональности ODL в наиболее популярные объектно-ориентированные языки — C++, Smalltalk и Java.

Другим языком, представленным в стандарте, является объектный язык за­просов (Object Query Language, OQL). Это — SQL-подобный язык, опирающий­ся на объектную модель ODMG и предназначенный для работы с объектными базами данных. Функциональные возможности OQL представляют собой "над­множество" по отношению к спецификациям стандарта SQL-92. Расширение, естественно, включает поддержку объектной семантики. Свою работу по опре­делению и развитию языка OQL консорциум ODMG стремился синхронизи­ровать с деятельностью комитета JTC1 по разработке стандарта SQL3.

Помимо названных языков, стандарт ODMG 2.0, как отмечалось выше, включает доработанные спецификации связывания с объектными языками про­граммирования C++ и Smalltalk. Важным новым элементом рассматриваемой версии стандарта ODMG являются спецификации связывания для языка Java. Благодаря значительной популярности языка Java и постоянно расширяющей­ся сфере его применения введение в стандарт указанного элемента значительно повышает интерес пользователей к объектным СУБД.

Для каждого из рассматриваемых в стандарте объектных языков програм­мирования ODMG 2.0 стандартизует средства доступа к репозиторию схемы ба­зы данных. Тем самым стандартизуется доступ к схеме в приложениях, разраба­тываемых на объектно-ориентированных языках программирования C++, Smalltalk и Java. Спецификации связывания для указанных языков позволяют программисту разрабатывать в одной и той же среде как собственно приложе­ние, так и его компоненты для работы с базой данных.

Конструктивно спецификации связывания для каждого из языков програм­мирования определены в стандарте в форме спецификаций доступа к схеме, а также группы языков, представляющих отображение функциональности ODL и OQL в среду соответствующего языка программирования. Указанные языки называются соответственно C++ ODL, C++ OML, C++ OQL, Smalltalk ODL, Smalltalk OML, Smalltalk OQL, Java ODL, Java OML, Java OQL.

В стандарте ODMG 2.0 вводится концепция специального языка определе­ния обменного формата для дампа текущего состояния объектных баз данных в файл или множество файлов и для загрузки из таких файлов в базу данных, а также для обмена объектами между различными системами. Этот формат назы­вается в стандарте форматом обмена объектами (Object Interchange Format, OIF). Синтаксис соответствующего языка в данной версии стандарта, однако, не определяется. Авторы стандарта формулируют основные требования к тако­му языку и приводят ряд примеров. Формальный синтаксис языка OIF был предложен в следующей версии стандарта - в ODMG 3.0.

Итак, если подвести итог нововведениям в стандарте ODMG 2.0, то следует прежде всего отметить, что в нем радикальным образом, но дале­ко не безупречно переработана объектная модель. Внесены соответствующие поправки в синтаксис языков ODL и OQL. Стандарт ODMG 2.0 расширил спе­цификации ODMG:

• дополнительной функциональностью базовой объектной модели стандарта;

• введением репозитория метаданных ODL-схемы;

• спецификациями связывания для языка Java;

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

Стандарт ODMG 3.0

В январе 2000 г. консорциум ODMG опубликовал новую версию своего стандарта — ODMG 3.0, который теперь в силу указанных ранее причин называется стандартом объектных данных. В ODMG 3.0 пересмотрены и уточнены спецификации объектной модели, введен ряд улучшений в связыва­ние для языка Java, которое уже реализовано в нескольких программных про­дуктах.

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

В этой связи наряду с такими средствами, как объектные системы управле­ния базами данных (Object Database Management Systems, ODBMS), которые непосредственно хранят объекты, авторы вводят также в рассмотрение средства отображения объектов в базы данных (Object-to-Database Mappings, ODM), конвертирующие объекты и позволяющие хранить их в реляционной или иной системе базы данных. Далее вводится родовой термин для средств двух указан­ных категорий — система управления объектными данными (Object Data Management System, ODMS). Наконец, чтобы довести дело до конца, всюду в тексте спецификаций аббревиатура ODBMS заменена на ODMS.

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

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

Вторая часть посвящена неформальному обсуждению объектной модели ODMG — платформы, на которой базируются все остальные компоненты стан­дарта. По сравнению с версией ODMG 2.0 здесь более аккуратно определяются объектные типы, устранено ошибочное использование в ряде случаев концеп­ции интерфейса вместо концепции класса, дополнительно введен литеральный тип long long, определено правило эквивалентности литералов, уточнены воз­можности репозитория метаданных. В этой части определяется также введен­ный еще в предыдущей версии стандарта репозиторий метаданных схемы ODL (ODL Schema Repository) — аналог репозитория IDL-интерфейсов стандарта OMG CORBA. Его спецификации претерпели некоторые изменения по сравне­нию с ODMG 2.0, связанные, в частности, с уточнениями определения объект­ной модели в этой версии стандарта.

В третьей части описывается (с использованием BNF в качестве метаязыка) и иллюстрируется примерами синтаксис языка определения объектов ODL, яв­ляющегося расширением языка определения интерфейсов OMG IDL в архитек­туре CORBA. Приводятся также спецификации обменного формата для объектов (Object Interchange Format, OIF). Этот формат предлагается использовать для разгрузки объектов ООСУБД в файлы и их загрузки из файлов, а также для обмена объектными данными между различными системами. Обсуждение об­менного формата и требований к нему впервые появилось в предыдущей версии стандарта — ODMG 2.0. Однако точное описание синтаксиса языка в той версии отсутствовало. Теперь синтаксис OIF, описанный средствами BNF, включен в спецификации стандарта.

В четвертой главе стандарта ODMG 3.0 обсуждаются концепции объектного языка запросов OQL, описывается его синтаксис, разработанный в стиле языка SQL, приводится ряд иллюстративных примеров. Это опи­сание синтаксиса OQL значительно отличается от имеющегося в ODMG 2.0 и имеет теперь более традиционный вид. При этом функциональность языка не подверглась каким-либо заметным изменениям.

В остальных трех частях монографии представлены спецификации связыва­ния для объектных языков программирования: C++, Smalltalk и Java. В отличие от версии ODMG 2.0, где спецификации связывания для Java ориентированы на спецификации этого языка версии 1.1, в новом стандарте они базируются на Java 2 Platform.

Приложение посвящено сопоставлению возможностей объектных моделей ODMG и OMG.

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

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

Поставщики ООСУБД

Список современных коммерческих объектно-ориентированных систем включает в себя следующие продукты:

·  Objectivity/DB компании Objectivity, Inc. идеально, по заявлениям фирмы, подходит для приложений, которые работают в распределенных средах, требуют гибкой модификации данных, организации сложных связей, а также нуждаются в высокой производительности и работы с большими объемами данных. Вероятно, все компании, производящие ООСУБД, ставят своей целью сложить такое впечатление относительно собственных разработок у читателей распространяемых ими документов. Более содержательно, Objectivity обеспечила интеграцию инструментария СУБД и разработки приложений с такими средствами программирования, как SoftBench и C++ SoftBench. Благодаря интегрированному графическому интерфейсу разработки схемы БД и инструментам отладки и анализа упрощается задание модели базы данных и, соответственно, разработки приложений для Objectivity/DB.

·  СУБД GemStone корпорации GemStone Systems, Inc. GemStone традиционно сосредоточена на рынке Smalltalk (была выпущена версия для С++) и имеет заказчиков, способных продемонстрировать на производстве крупномасштабные, целевые применения ее продуктов.

·  ONTOS Corp., разработчик СУБД ONTOS, по традиции занимается развитием сервера объектно-ориентированной СУБД, но в последнее время придает особое значение своим Службам Интеграции Объектов (Object Integration Services).

·  Построенная на основе реляционной СУБД AllBase, система OpenODB фирмы Hewlett-Packard также, как и Objectivity/DB, интегрирована с системой SoftBench и существует в версии для С++. Благодаря глубокой интеграции, SoftBench распознает файлы приложений OpenODB для установки оптимальной конфигурации, может создавать базы данных формата OpenODB из своей интегрированной среды, обеспечивает оперативную помощь из среды разработки и т. д.

·  Object Design Inc. со своей СУБД ObjectStore занимает лидирующее положение в отрасли, осуществляя около 33% поставок на рынке объектно-ориентированных СУБД и последняя модернизация системы (клиент языка SQL и шлюз к реляционной СУБД) должны только укрепить положение фирмы. Object Design поддерживает версии своей СУБД как для С++, так и для Smalltalk.

·  Versant Object Technology, Inc. (СУБД Versant) проводит двойную стратегию, предлагая средство обеспечения объектно-ориентированной СУБД высокого класса для телекоммуникаций и инструментальные средства Smalltalk для более общих случаев разработки приложений. Используя разработанный фирмой интерфейс VERSANT Smalltalk Language Interface, СУБД совместима как с версией языка Smalltalk компании ParcPlace-Digitalk, так и с Visual Age for Smalltalk корпорации IBM.

·  СУБД UniSQL компании UniSQL Inc. – хорошо устоявшаяся система, позволяющая пользователям осуществлять запросы и модификацию базы при помощи разработанного компанией языка SQL/X (подобные языки, носящие условное название Object SQL, разработаны и некоторыми другими поставщиками). Вся БД UniSQL может состоять одновременно из связей в локальных РСУБД и классов в локальных объектных базах UniSQL. Благодаря механизму каталогов, СУБД передает запросы и модификации данных в локальные базы данных и, обработав (перевод в другой формат, группирование, сортировка и т. д.) полученный от них результат, возвращает его пользователю.

Кроме того ООСУБД предлагают: Object Database, Inc. (Object Database), Itasca Systems Inc. (Itasca) O2 Technology (O2) и некоторые другие компании.

Подробно рассмотрим объектно-ориентированную СУБД Cache’ компании InterSystems.

Особенности ООСУБД Cache'

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

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

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

БД Cache' была первой базой данной, предназначенной для работы в сети Internet/Intranet. В версии Cache' 4.0. реализована технология создания динамических web-приложений Cache' Server Pages (CSP), которая пришла на смену технологии Weblink предыдущих версий Cache'. Кроме этого, системная библиотека %Net предоставляет классы, реализующие протоколы SMTP, POP3, HTTP, FTP и др.

Рассмотрим подробнее основные компоненты, функциональные возможности и характеристики СУБД Cache'.

Основные компоненты СУБД Cache'

На рис. 1. представлена архитектура Cache'.


Рис.1. Архитектура системы Cache'.

Основными компонентами СУБД Cache' являются следующие:

·  TMDM. Многомерное ядро системы, ориентирование на работу с транзакциями.

·  Сервер Cache' Objects. Представление многомерных структур данных ядра системы в виде объектов, инкапсулирующих как данные так и методы их обработки.

·  Сервер Cache' SQL. Представление многомерных структур данных в виде реляционных таблиц.

·  Сервер прямого доступа. Предоставление прямого доступа к многомерным структурам данных ядра системы.

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

TMDM - многомерное ядро Cache', ориентированное на работу с транзакциям.

Данные в Cache' хранятся в виде разреженных массивов, носящих название глобалей. Количество индексов массива может быть произвольным, что позволяет описывать и хранить структуры данных произвольного уровня сложности. Индексы глобалей не типизированы, т. е. они могут быть любого литерального типа данных. Например, с помощью следующей глобали можно описать количество машин Mercedes SL600 черного цвета на складе:

^car("Mercedes","SL600","black")=10

Немного усложняя приведенную структуру описания данных, можно определить все доступные цвета для Mercedes SL600:

^car("Mercedes","SL600","colors")=3

^car("Mercedes","SL600" ,"colors",1)="black"

^car("Mercedes","SL600" ,"colors",2)="blue"

^car("Mercedes","SL600" ,"colors",3)="white"

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

В СУБД Cache' реализована развитая технология обработки транзакций и разрешения конфликтов. Блокировка данных производится на логическом уровне. Это позволяет учитывать особенность многих транзакций, производящих изменения небольшого объема информации. Кроме этого, в Cache' реализованы атомарные операции добавления и удаления без проведения блокировки, в частности, это применяется для счетчика ID объектов в базе данных.

Сервер Cache' Objects

В соответствии с ODMG каждый объект Cache' имеет определенный, единственный тип. Поведение объекта определяется операциями (методами), а состояние объекта - значениями его свойств. Свойства и операции составляют характеристики типа. Тип определяется одним интерфейсом, которому может соответствовать одна или большее число реализаций. Объектная модель Cache' представлена на рис. 2.

В соответствии со стандартом в Cache' реализовано два типа классов:

·  Классы типов данных (литералы).

·  Классы объектов (объекты).

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

Классы типов данных подразделяется на два подкласса типов:

·  Атомарные

·  Структурированные.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4