Базы данных Oracle - статьи

         

Объектные типы


Корпорация Oracle расширила SQL (как DDL, так и DML), чтобы позволить пользователям:

  • определять свои собственные типы (которые представляют их бизнес-объекты) и связи (например, наследование и агрегирование) между этими определяемыми пользователями типами;
  • хранить их экземпляры (то есть, объекты) в базе данных (либо в столбцах таблиц, либо как сами таблицы);
  • запрашивать, вставлять и изменять эти экземпляры.

Бизнес-объект:

  • может содержаться внутри другого бизнес-объекта;
  • на него может ссылаться другой объект (используя конструкцию, называемую REF);
  • к нему можно получить доступ;
  • с ним можно манипулировать как с коллекциями (collections) или наборами (sets), используя структуры, называемые массивами переменной длины (VARRAYS) и вложенными таблицами (Nested Tables).

Пользователи могут определять операции над бизнес-объектами как методы (methods) определяемых пользователями типов. Методы могут быть реализованы как хранимые процедуры на языках Java или PL/SQL. Объекты также обладают глобально уникальными идентификаторами, называемыми объектными идентификаторами (Object ID), которые могут быть использованы для поддержки ссылок между объектами.

СУБД Oracle9i позволяет пользователям рассматривать объектные данные как реляционные. Например, пользователи могут использовать SQL для запросов объектных данных точно так же, как для запросов реляционных данных. Пользователи могут получать доступ к объекту, используя операторы SQL DML, к его атрибутам и методам, используя расширенные выражения путей (например, объект.атрибут). Они могут также использовать SQL для выполнения явных соединений (explicit joins) объектов в таблицах. Кроме того, Oracle9i позволяет пользователям выполнять неявные соединения (implicit joins) объектов, путем обхода (traversing) или навигации по ссылкам от одного объекта к другому. Объекты можно индексировать, применяя методы MAP или ORDER для преобразования их в скалярные значения, которые затем могут быть индексированы.

Объектно-реляционные конструкции СУБД Oracle9i весьма близки к реляционным, которые хорошо знакомы пользователям СУБД Oracle. Например, ссылка REF очень похожа на внешний (foreign) ключ, методы – это хранимые процедуры (которые могут быть написаны на языках Java, PL/SQL или C/C++), модели безопасности и транзакций, оперирующие с объектными типами, являются точно такими же, как и модели, определенные для реляционных таблиц.

Рис. 2. Определяемые пользователями объектные типы позволяют использовать конструкции предметной области.

Рассматриваемая система объектных типов существенно повышает уровень абстракции, на котором пишутся программы для работы с базами данных. Вместо оперирования типами данных NUMBER, CHAR и т.д., эти программы могут работать с конструкциями предметной области, такими, как Customer, Portfolio или Money. Из этого проистекают многие преимущества, не последним из которых является лучшее моделирование вашего бизнеса в базе данных.



Содержание раздела