Три манифеста баз данных ретроспектива и перспективы
1942e8f8

Объектные типы и объектные таблицы


Объектные типы в Oracle8 являются аналогом типа записи в IUS. Как и в IUS , для доступа к отдельным полям значений объектного типа используется “точечная” нотация.

В Oracle 8 i при определении объектного типа можно, помимо спецификации структуры значений этого типа, определить и набор методов данного типа. Методы представляют собой функции или процедуры, написанные на PL/SQL, Java, C или другом языке89 и сохранённые в БД или вне её (при наличии регистрации в БД).

Любой метод объектного типа попадает в одну из трёх категорий:

  • методы-члены
  • статические методы
  • методы сравнения.
  • Методы-члены вызываются в нотации

    имя_объекта.имя_метода ( список_параметров )

    имеют неявный параметр SELF и могут обращаться к значениям атрибутов объекта90.

    Статические методы вызываются в нотации

    имя_объектного_типа.имя_метода ( список_параметров )

    и не могут обращаться к значениям атрибутов конкретных объектов.

    Методы сравненияслужат для сравнения экземпляров объектов. Сравнение объектов может производиться с помощью методов вида MAP или вида ORDER. Метод типа MAP принимает в качестве параметра объект некоторого объектного типа, а возвращает значение одного из встроенных типов, которое может использоваться в операциях сравнения и сортировки. Таким образом, этот метод выполняет отображение объекта

    на значение одного из встроенных типов.

    Метод типа ORDER сравнивает два объекта и возвращает –1, если первый объект

    меньше второго, 0,  если объекты равны, и 1, если первый объект больше второго.

    Если при определении объектного типа метод сравнения не задан, то объекты этого типа можно сравнивать только на равенство/неравенство, причём объекты не должны содержать элементов тип LOB. Тогда объекты считаются считаться равными, в том и только в том случае, когда все их элементы не содержат неопределенных значений, и значения соответствующих элементов совпадают.

    Каждый объектный тип имеет определяемый системой метод-конструктор, который

    создаёт новый объект этого типа и присваивает значения его атрибутам.
    Метод-конструктор – это функция, которая возвращает объект данного типа. Имя метода-конструктора совпадает с именем объектного типа, имена и типы параметров

    конструктора – с именами и типами атрибутов объектного типа.

    Объектной таблицей в Oracle 8 называется таблица, строки которой имеют объектный тип. В Oracle 8 не поддерживалось наследование (ни типов, ни таблиц), но уже в Oracle 8 i появилась возможность наследования таблиц почти в той же форме, как это делалось в IUS , но без поддержки параллельной иерархии наследования объектных типов 91.

    К объектным представлениям можно обращаться так же, как и к объектным таблицам (по крайней мере, по выборке данных). Можно определять объектные представления на основе других представлений (возможно, объектных).


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