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

       

Как это работает.


В самом общем виде работа системы основанной на модели "объект-качество", может быть проиллюстрирована следующим примером (исключительно иллюстративным) . Предположим, что нами определено качество Q

Property Q { int i; long l; }

При обработке этого выражения системой на уровне хранение будет создано новое отношение R со схемой [OID, S, i:int, l:long]. Следующее выражение

Class C { Attr Q; }

приведет к тому, что в каталоге классов появиться информация о новом классе С, с качественным атрибутом типа Q. Теперь мы можем создать объект этого класса:

C rObject = new C;

Это процесс можно разделить на следующие этапы

  • в стержневое отношение R0 система добавляет кортеж, в котором содержится OID создаваемого объекта и информация о том, что этот объект будет ассоциироваться со схемой класса С
  • на основании информации, содержащейся в ассоциированной схеме класса, в отношение R система добавляет новый кортеж. Значение атрибута "OID" этого кортежа равно OID созданного объекта, а значение атрибута "S" соответствует имени атрибута "Attr"

    Далее OID объекта присваивается ссылочной переменной rObject. Теперь можно изменить значение атрибута созданного объекта

    rObject.Attr.i = 1;

    На основании информации, содержащейся в кортеже стержневого отношения, описывающем объект, идентифицируемый OID, содержащемся в ссылочной переменной rObject, система определяет, что этот объект ассоциирован со схемой класса C. В этой схеме класса содержится информация о том, что атрибут Attr имеет качественный тип Q. Поскольку информация об атрибутах этого типа содержится в отнощении R, то предыдущее выражение может быть приведено системой к следующему запросу на изменение данных:

    UPDATE SET R.i = 1 WHERE R.OID = rObject AND R.S = "Attr"



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