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

       

Сервер Cache' Objects


Объектная модель Cache' соответствует объектной модели стандарта ODMG (Object Data Management Group). В соответствии с ODMG каждый объект Cache' имеет определенный, единственный тип. Поведение объекта определяется операциями (методами), а состояние объекта - значениями его свойств. Свойства и операции составляют характеристики типа. Тип определяется одним интерфейсом, которому может соответствовать одна или большее число реализаций [2]. Объектная модель Cache' представлена на рис. 2.

В соответствии со стандартом в Cache' реализовано два типа классов:

  • Классы типов данных (литералы).
  • Классы объектов (объекты).

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

    Классы типов данных подразделяется на два подкласса типов:

  • Атомарные
  • Структурированные.

    Атомарными литеральными типами в Cache' являются традиционные скалярные типы данных (%String, %Integer, %Float, %Date и др.). В Cache' реализованы две структуры классов типов данных - список и массив. Каждый литерал уникально идентифицируется индексом в массиве и порядковым номером в списке.

    Рис.2. Объектная модель Cache'

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

    Зарегистрированные классы могут быть двух типов - встраиваемые и хранимые. Встраиваемые классы наследуют свое поведение от системного класса %SerialObject. Основной особенностью хранения встраиваемого класса является то, что объекты встраиваемых классов существуют в памяти как независимые экземпляры, однако могут быть сохранены в базе данных, только будучи встроены в другой класс.


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

    Хранимые классы наследуют свое поведение от системного класса %Persistent. %Persistent предоставляет обширный набор функций своим наследникам, включающий: создание объекта, подкачку объекта из БД в память, удаление объекта и т.п. Каждый экземпляр хранимого класса имеет 2 уникальных идентификатора - OID и OREF. OID (object ID) характеризует объект, записанный в БД, т.е. на физическом носителе, а OREF (object reference) характеризует объект, который был подкачен из БД и находится в памяти.

    Объектная модель Cache' в полном объеме поддерживает все основные концепции объектной технологии:

  • Наследование. Объектная модель Cache' позволяет наследовать классы от произвольного количества родительских классов.
  • Полиморфизм. Объектная модель Cache' позволяет создавать приложения целиком и полностью независимыми от внутренней реализации методов объекта.
  • Инкапсуляция. Объектная модель Cache' обеспечивает сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Разделяют интерфейсную часть класса и конкретную реализацию. Интерфейсная часть необходима для взаимодействия с любыми другими объектами. Реализация же скрывает особенности реализации класса, т.е. все, что не относиться к интерфейсной части.
  • Хранимость. Система Cache' поддерживает несколько видов хранения объектов: автоматическое хранение в многомерной базе данных Cache'; хранение в любых структурах, определенных пользователем; хранение в таблицах внешних реляционных баз данных, доступных через шлюз Cache' SQL Gateway.

    Класс объектов в Cache' хранится в двух формах:

  • Описательная форма. Поддерживается развитый язык описания классов объектов - CDL (class definition language). В версии Cache' 4.2. планируется обеспечить поддержку языков UDL (unified definition language) и XML (extensible markup language).
  • Объектная run-time форма.Использование класса возможно только после его компиляции в объектный код.


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