Помощь в написании студенческих работ
Антистрессовый сервис

Стандарты объектных баз данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Язык объектных запросов OQL — это SQL — подобный декларативный язык, который предоставляет эффективные средства для извлечения объектов из базы данных, включая высокоуровневые примитивы для наборов объектов и объектных структур. Синтаксис оператора SELECT, определенный SQL-92, является подмножеством OQL, это гарантирует, что SELECT-утверждения, выполняемые над реляционными таблицами, сохранят… Читать ещё >

Стандарты объектных баз данных (реферат, курсовая, диплом, контрольная)

Несколько наиболее крупных компаний-разработчиков образовали группу Object Database Management Group (ODMG) с целью определения стандартов, необходимых для ООСУБД. В состав этой группы в настоящее время входят компании Sun Microsystems, eXcelon Corporation, Objectivity Inc., POET Software, Computer Associates и Versant Corporation. Группа ODMG создала объектную модель, в которой определяется стандартная модель семантики объектов базы данных. Эта модель имеет очень большое значение, поскольку в ней определена встроенная семантика, которая может быть отражена и предписана в ООСУБД. Проект библиотек классов и приложений, в которых применяется эта семантика, должен быть переносимым во все ООСУБД, в которых поддерживается эта объектная модель.

Ниже перечислены основные компоненты архитектуры ODMG для ООСУБД.

  • · Объектная модель (Object Model — ОМ).
  • · Язык определения объектов (Object Definition Language — ODL).
  • 2

Язык объектных запросов (Object Query Language — OQL).

· Средства связывания объектной модели с объектами языков C++, Java и Smalltalk.

Первая версия стандарта ODMG была выпущена в 1993 году.

С тех пор было выпущено несколько небольших поправок к ней, а следующая обновленная версия ODMG 2.0 была принята в сентябре 1997 года. Она включает следующие дополнения:

  • · новые средства связывания объектной модели с объектами языка программирования Java компании Sun;
  • · полностью пересмотренная версия объектной модели с новой метамоделью, поддерживающей семантику объектной базы данных во многих языках программирования;
  • · стандартная внешняя форма для данных и схемы данных, обеспечивающая обмен данными между базами данных.

В конце 1999 года была выпущена версия ODMG 3.0, в которую вошел целый ряд дополнений к объектной модели и средствам связывания Java. В период между выпусками версий 2.0 и 3.0 группа ODMG расширила свой устав и включила в него разработку спецификаций универсальных стандартов хранения объектов. В тот же период группа ODMG изменила расшифровку аббревиатуры своего обозначения с Object Database Management Group на Object Data Management Group в соответствии с расширением своих обязанностей, которые вышли за пределы задач простой разработки стандартов хранения для объектных баз данных [4, c.32].

Стандарт на хранение объектов ODMG разработан на основе трех существующих стандартов: управление базами данных (SQL), объекты (стандарты OMG — Object Management Group) и стандарты на объектно-ориентированные языки программирования (C++, Smalltalk, Java).

ODMG добавляет возможности взаимодействия с базами данных в объектно-ориентированные языки программирования: определяются средства долговременного хранения объектов и расширяется семантика языка, вносятся операторы управления данными. Стандарт состоит из нескольких частей:

Объектная модель — унифицированная основа всего стандарта. Она расширяет объектную модель консорциума OMG за счет введения таких свойств как связи и транзакции для обеспечения функциональности, требуемой при взаимодействии с базами данных. Ключевые концепции объектной модели ODMG:

  • · наделение объектов такими свойствами как атрибуты и связи
  • · методы объектов (поведение)
  • · множественное наследование
  • · идентификаторы объектов (ключи)
  • · определение таких совокупностей объектов как списки, наборы, массивы и т. д.
  • · блокировка объектов и изоляция доступа
  • · операции над базой данных

Язык описания объектов ODL — средство определения схемы базы данных (по аналогии с DDL в реляционных СУБД). ODL является расширением IDL (Interface Definition Language — язык описания интерфейсов) модели OMG и предоставляет средства для определения объектных типов, их атрибутов, связей и методов. ODL создает слой абстрактных описаний так, что схема базы данных становится независима как от языка программирования, так и от СУБД. ODL рассматривает только описание объектных типов данных, не вдаваясь в детали реализации их методов. Это позволяет переносить схему БД между различными ODMG-совместимыми СУБД и языками программирования, а также транслировать ее в другие DDL.

Приведем пример из «белой книги» фирмы Objectivity [4, с. 79−90] на языке ODL, иллюстрирующий связи типа «один-ко-многим», которые объявлены между преподавателем и студентами:

interface professor: employee {.

attribute string name;

unique attribute lang unsigned ssn;

relationship dept works_in inverse faculty; relationship set teaches inverse taught_by;

... operations.. .

{.

interface section: class {.

... taught_by: professor. .. ;

.. .

}.

Язык объектных запросов OQL — это SQL — подобный декларативный язык, который предоставляет эффективные средства для извлечения объектов из базы данных, включая высокоуровневые примитивы для наборов объектов и объектных структур. Синтаксис оператора SELECT, определенный SQL-92, является подмножеством OQL, это гарантирует, что SELECT-утверждения, выполняемые над реляционными таблицами, сохранят работоспособность и с наборами объектов ODMG. OQL-запросы могут вызываться из ОО-языка, точно также из OQL-запросов могут делаться обращения к процедурам, написанным на OO-языке. OQL предоставляет средства обеспечения целостности объектов (вызов объектных методов и использование собственных операторов изменения данных).

Приведем некоторые примеры на языке 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++, Smalltalk и Java определяет OML (Object Manipulation Language) — язык манипулирования объектами, который расширяет базовые ОО-языки средствами манипулирования и хранения объектов. Также включаются OQL, средства навигации и поддержка транзакций. Каждый ОО-язык имеет свой собственный OML, поэтому разработчик остается в одной языковой среде, ему нет необходимости разделять средства программирования и доступа к данным.

Взаимодействие с другими стандартами. Многие стандарты обладают совместимостью с объектными БД, например CFI, STEP, ISO ODP, TINA-C, X3H7, ANSI OpenGIS и др. В настоящее время они могут напрямую взаимодействовать с любой стандартной объектно-ориентированной СУБД, хотя в ряд из них и были для обеспечения совместимости внесены изменения. Следующие два стандарта заслуживают более подробного описания — это OMG и SQL.

Стандарты OMG. Первым результатом деятельности OMG стало утверждение архитектуры брокера объектных запросов CORBA (Common Object Request Broker Architecture) — средства для диспетчеризации запросов между объектами и пользователями; в дальнейшем также были добавлены ряд других сервисов. В настоящее время интерфейс ODMG полностью адаптирован к спецификации Persistence Object Service консорциума OMG, что дает возможность пользователям систем, которые основаны на архитектуре CORBA, использовать преимущества от объектно-ориентированных СУБД, которые могут содержать объекты, отвечающие стандарту OMG и используемые так же, как и любые другие («мелкие») объекты спецификации OMG. В свою очередь объекты OMG доступны через интерфейс ODMG.

Язык SQL. Из-за своей распространенности SQL был заложен в основу OQL, который был дополнен средствами поддержки объектной модели. В 1999 году была разработана версия языка SQL, известная под названием SQL3, в которой была добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно-ориентированные возможности. В отличие от ODMG, в SQL не планируется привязка к ODL, а также C++ и Smalltalk, которые важны для пользователей объектно-ориентированных СУБД. Несмотря на это, возможности SQL3 в организации запросов совпадают с возможностями OQL.

Показать весь текст
Заполнить форму текущей работой