Классика баз данных - статьи

       

Краткий обзор команд управления R*O-системой.


Типы данных определяются на языке определения данных (DDL). Типы делятся на значимые и объектные. Существует набор базовых скалярных типов. Среди команд, манипулирующих значимыми типами, необходимо отметить команду, позволяющую определить новый кортежный тип.

DESCRIBE TUPLE tuplename. { scalar_attribute_definition; [scalar_attribute_definition;] }

где scalar_attribute_definition - выражение, описывающее атрибут скалярного типа. Должны существовать команды, манипулирующие кортежными типами и позволяющие уничтожать эти типы.

Компонент или переменная типа-множества определяется с использованием конструктора SET OF с указанием используемого скалярного или кортежного типа.

rvarname SET OF tuplename CONSTRAIN [local_keys_definition];

где local_keys_definition перечисляет поля, входящие в необязательный локальный ключ.

В команде, создающей новый объектный тип (и соответствующий ссылочный тип), необходимо указывать имя этого типа, перечислить базовые типы, спецификацию компонентов и определить ключи.

CREATE CLASS otypename [EXTENDED parenttypename[,parenttypename] ] { value_signature [CONSTRAIN keys_definition]; [value_signature [CONSTRAIN keys_definition];] } [CONSTRAIN keys_definition]

Здесь value_signature - выражение, описывающее компонент значимого типа. Выражение keys_definition определяет тип ключа и перечисляет поля, входящие в ключ.

Операция изменения определения типа подразумевает добавление, изменение и удаление спецификаций собственных атрибутов и методов типа (т.е. изменение спецификации),

ALTER CLASS otypename ADD| DROP|ALTER value_signature[CONSTRAIN keys_definition];

…а также изменение реализаций собственных и наследуемых атрибутов и методов типа (в соответствии с существующей спецификацией).

ALTER CLASS otypename REALIZE value_signature AS realizе_expr;

…где realizе_expr определяет реализацию компонента - является ли он хранимым (AS STORED) либо вычисляемым; в последнем случае для компонента должно быть определено вычисляющее выражение (AS valueexpr) либо вычисляющая функция (AS BEGIN …END)



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