В стандарте 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 |



