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

       

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


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

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

Операции уровня представления данных, манипулирующие схемой данных, транслируются в операции, манипулирующие таблицами каталога.

Команда, создающая новый объектный тип

CREATE CLASS otypename [EXTENDED parenttypename[,parenttypename] ] { signature [;signature] }

должна выполняться следующим образом.


  1. В таблицу objTYPES добавляется единственная запись о новом типе, содержащая имя (otypename) этого типа.
  2. В таблицу SPEC добавляются записи, содержащие спецификации сигнатур компонентов и методов типа по числу определенных в типе собственных компонентов и методов.
  3. В таблицу ISt добавляется не менее одной записи. Одна запись добавляется для типа, у которого отсутствует базовый тип (для простоты здесь мы опускаем обязательное наследование от фиктивного типа Object). Для типов, наследующих уже существующие в системе типы (EXTENDED parentclassname), в таблице ISt необходимо также перечислить все (прямые и непрямые) базовые типы. Заметим, что информацию о непрямых базовых типах можно получить из содержащихся в этой же таблице ISt записей, описывающих прямые базовые типы.


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

ALTER CLASS otypename ADD| DROP|ALTER signature_name;

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

ALTER CLASS otypename REALIZE signature AS realizе_expr;

Указанные операции реализуются в виде добавления, изменения и удаления записей в таблицах SPEC и REAL соответственно.

Операция удаления объектного типа

DROP otypename;

выполняет действия, обратные действиям, выполняемым в процессе добавления, а также удаляет записи о реализации атрибутов и методов этого типа.


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