Database Programming & Design



Обзор статьи "Bringing Object Relational Down To Earth" - часть 5


свойств всех его экземпляров (например, средний вес автомобиля);

хранение значения, общего для всех экземпляров класса (например,

число колес у автомобиля); спецификация значения атрибута

экземпляра по умолчанию.

Язык запросов (ObjectSQL)

В ORDB должны поддерживаться ObjectSQL (язык баз данных с

минимальными расширениями стандарта реляционного языка SQL) и

соответствующие API (вызовы функций). Расширения SQL необходимы

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

основе перечисленных выше возможностей объектного моделирования.

Если пользователь не нуждается в использовании возможностей

объектного моделирования базы данных, должен использоваться SQL.

Относительно стандарта ObjectSQL имеются два предложения: SQL3 и

Object Query Language (OQL). Предпринимаются усилия по слиянию

этих двух языков в единый международный стандарт. Стандарт SQL3,

разрабатываемый комитетом ANSI X3H4, включает объектные

расширения стандарта RDB SQL-92. OQL, возникший в результате

усилий Object Data Management Group (ODMG) по стандартизации

языков доступа к объектным базам данных, пока еще не полностью

совместим с SQL3.

Основные свойства ObjectSQL

  • SQL-92

    Поскольку текущим стандартом SQL является спецификация SQL-92,

    ObjectSQL для ORDB должен начинаться с SQL-92 и содержать

    расширенные средства запросов, соответствующие возможностям

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

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

    стандартного SQL включают запросы из одной таблицы, соединения

    нескольких таблиц, вложенные подзапросы, запросы с GROUP BY,

    HAVING и ORDER BY и запросы, включающие операции

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

  • Запросы с вложенными объектами

    Если пользователь создает класс (класс-1) с атрибутом, доменом

    которого является ссылка на другой класс (класс-2), и создает

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

    класса-2 в атрибуте класса-1, связывая тем самым экземпляр




    Содержание  Назад  Вперед