RSS    

   Реферат: Объектно-ориентированные СУБД

дополнен такими необходимыми дляобъектных БД свойствами, как определение

коллекций, двунаправленных связей типа “многие-ко-многим”, ключей и др. В

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

позволяет определять практически любые объекты. Все дополнения реализованы в

видедоопределения методов, что обеспечивает совместимость со стандартами OMG,

например стандартом CORBA.

Рисунок 4 показывает работоспособную схему для построения приложения на

стандартных языках программирования, в процессе которой

автоматическигенерируются метаданные, заголовочные файлы и методы. Приведем

также пример на языке ODL из “белой книги” компании Objectivity,

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

преподавателем и студентами:

interface professor : employee {

     attribute string <32> name;

     unique attribute lang unsigned ssn;

     relationship dept works_in inverse faculty;   relationship set<section>

teaches inverse taught_by;    . . . operations . . .

     {

interface section : class {

     . . . taught_by: professor . . . ;

     . . .

     }

OQL. За основу языка OQL была взята команда SELECT языка SQL2 (или SQL-92) и

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

возможность вызывать методы в рамках одного запроса. Данные, полученные в

результате запроса, могутбыть скалярными (включая кортежи), объектами или

коллекциями объектов. Некоторые примеры наязыке OQL (тот же источник):

• Select x from x in faculty where x.salary >

          x.dept.chair.salary

•sort s in (select struct (name: x.name, s:x.ssn) from

          x in faculty where for      all y in

          x.advisees:y.age<25) by s.name

• Chair.salary

• Students except TAs

•list (1,2) + list (count (jse.advisees), 1+2)

• exists x in faculty [1:n]: x.spouse.age<25

C++. Спецификация ODMG-93 позволяет программистам легко использовать объекты в

то время как ООСУБД прозрачнымобразом управляет ими. При определении стандарта

члены ODMG руководствовались следующими принципами:

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

  реализуютсясредствами языка – библиотеками классов и перегрузкой операторов.

  Определение временных экземпляров (Transient Instance) и экземпляров,

  создаваемых на длительный срок (Transient Instance) припомощи оператора new().

  При перегрузке оператора new() оба типа экземпляров могут создаваться от

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

  Обеспечение устойчивости через стандартный механизм наследования; пользователь

  можетопределять экземпляры временные и рассчитанные на продолжительное

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

  Использование специального механизма указателей (Smart Pointers). Связи между

  объектами объявляются при помощи шаблона Ref<> и перегрузки оператора ->; это

  позволяет использовать специальные указатели(контролируемые системой; см.,

  например, идентичность в словарике (стр. 21) и упоминание косвеннойадресации

  (стр. 10) как обычные.

class Professor: Employee {

          long ssn;

          char* name;

          int age;

          Ref<Department>dept inverse faculty;

          Set<Section> teachesinverse taught_by;

          . . .

          void grant_tenure()

          void assign_course(section)

          }

. . .

Ref<Professor>prof;

. . .

prof = new(db, Professor);

prof->name="Smith";

prof->age+prof->age+1;

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

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

Smalltalk. ODMG-93 поддерживает ту же объектную модель для Smalltalk, что и для

С++, IDL и запросы на языке OQL; это позволяет разделятьодин и тот же объект

пользователям С++ и Smalltalk. Спецификация поддерживает типы (возможны

бестиповые поля) и синтаксис оригинальной версии Smalltalk.

       Рисунок 5 ООСУБД, построенная на основе стандартов ODMG во взаимодействии

      с CORBA.

Взаимодействие с другими стандартами. Многие стандарты совместимы с объектными

базами данных, например STEP, CFI,TINA-C, ISO ODP, ANSI X3H7, OpenGIS и др.

Сейчас они могут напрямую взаимодействовать с любой стандартной ООСУБД, хотя в

некоторые из них и быливнесены изменения для обеспечения совместимости. Два

других стандарта заслуживают более детального описания – OMGи SQL.

Стандарты OMG. Первым результатом деятельности OMG стало утверждение (OMG не

создает стандартов, апринимает одну из существующих реализаций) Архитектуры

Брокера Объектных Запросов (Common Object Request Broker Architecture – CORBA)

–средства диспетчеризации запросов между объектами и пользователями; в

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

полностьюадаптирован к спецификации Persistence Object Service консорциума OMG,

что позволяет пользователям систем, основанных на архитектуреCORBA, пользоваться

преимуществами от ООСУБД, которые могут содержать объекты, отвечающие стандарту

OMG и используемые так же, как и любые другие (“мелкие”)объекты спецификации OMG

(Рисунок 5). Объекты OMG в свою очередь доступны через интерфейс ODMG.

Язык SQL. Из-за распространенности SQL был заложен в основу OQL,который был

дополнен средствами поддержки объектной модели. В настоящее время

разрабатывается версия языка SQL,известная под названием SQL3, в которой будут

реализована поддержка объектов и SQL будет приведен в соответствие современным

понятиям о полноценном языкепрограммирования. В отличие от ODMG, в SQL не

планируется привязка к ODL, а также C++ и Smalltalk, которыеважны для

пользователей ООСУБД. Несмотря на это, возможности SQL3 в организации запросов

совпадают с возможностями OQL. Когда SQL3 будет готов (разработки ведутся сейчас

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

ODMG, вероятно, дополнит его, как это уже сделано для С++ и Smalltalk.

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

       Рисунок 6 Современный рынок СУБД.

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

следующие продукты:

  Objectivity/DB компании Objectivity, Inc. (последняя версия – 2.1) идеально,

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

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

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

  данных. Вероятно, все компании, производящие ООСУБД, ставят своей целью

  сложить такоевпечатление относительно собственных разработок у читателей

  распространяемых ими документов (хотя некоторые и делают это в более

  деликатной форме). Болеесодержательно, Objectivity обеспечила интеграцию

  инструментария СУБД и разработки приложений с такимисредствами

  программирования, как SoftBench и C++ SoftBench. Благодаря интегрированному

  графическому интерфейсу разработки схемы БД и инструментамотладки и анализа

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

  для Objectivity/DB.

  СУБД GemStone корпорации GemStone Systems, Inc. известнав последней редакции

  под номером 5.0. GemStone традиционно сосредоточена на рынке Smalltalk (хотя

  не так давно и была выпущена версия для С++) и имеетзаказчиков, способных

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

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

  компания хочет донести до интересующихся (WWW), ограничивается.

  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, СУБД совместима как с

Страницы: 1, 2, 3, 4, 5


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.