- •Csp. Методы, выполняющиеся на стороне сервера.
- •Csp. Скрипты, выполняющие код Cache.
- •Доступ к полям формы. Класс %csp.Rcqucst.
- •Единая архитектура данных Cache.
- •Методы классов и объектов в Cacho. Видимость методов. Язык метода.
- •Методы объектов. Передача параметров. Возвращаемые значения.
- •1.7 Недостатки реляционной модели. Причины появления объектно-ориентированных баз данных.
- •1.8 Операции с множествами объектов Cache.
- •1.9 Определение класса Cachd. Синтаксис.
- •1.10 Основные команды языка Cache Object Script
- •1.11 Основные свойства объектно-ориентированной модели согласно odmg 2.0.
- •1.12 Основные теги csp.
- •1.13 Основы технологии csp. Выражения Cache.
- •1.14 Преимущества и недостатки объектно-ориентированных баз данных по сравнению с реляционными базами данных.
- •1.15 Работа с объектами. Создание новых объектов. Открытие объектов.
- •1.16 Работа со свойствами-списками и свойствами-массивами в Cache.
- •1.17 Свойства - ссылки на объекты. Свойства - встраиваемые объекты.
- •1.18 Свойства классов Cache. Синтаксис определения свойств. Ключевые слова, используемые со свойствами.
- •1.19 Типы классов в Cache.
- •1.20 Язык Cache Objoct Script. Основные характеристики.
1.19 Типы классов в Cache.
В соответствии со стандартом в Cache реализовано два типа классов:
Классы типов данных (литералы).
Классы объектов (объекты).
Классы типов данных определяют допустимые значения констант (литералов) и позволяют их контролировать. Литерал не имеют дополнительной идентификации, кроме своего значения, в то время как объекты имеют еще и уникальную идентификацию.
Классы типов данных подразделяются на два подкласса типов:
Атомарные
Структурированные
Атомарными литеральными типами в Cache являются традиционные скалярные типы данных (%String, %Integer, %Float, %Date и др.). В Cache реализованы две структуры классов типов данных - список и массив. Каждый литерал уникально идентифицируется индексом в массиве или порядковым номером в списке.
Рисунок 2. Объектная модель Cache
Различают два подтипа классов объектов - зарегистрированные и незарегистрированные. Зарегистрированные классы обладают предопределенным поведением, т.е. набором методов, наследуемых из системного класса %RegisteredObject и отвечающих за создание новых объектов и за управление размещением объектов в памяти. Незарегистрированные классы не обладают предопределенным поведением, разработка функций (методов) класса целиком и полностью возлагается на разработчика.
Зарегистрированные классы могут быть двух типов - сериализуемые и хранимые. Сериализуемые классы наследуют свое поведение от системного класса %SerialObject. Основной особенностью хранения сериализуемого класса является то, что объекты сериализуемых классов существуют в памяти как независимые экземпляры, однако могут быть сохранены в базе данных, только будучи встроенными в другой класс.
Основным преимуществом использования сериализуемых классов является минимум издержек при изменении структуры класса.
1.20 Язык Cache Objoct Script. Основные характеристики.
В СУБД Caché реализован собственный язык программирования Caché Object Script (COS). COS — это расширенная и переработанная версия языка программирования M
(ANSI MUMPS). В первую очередь, COS предназначен для написания исходного кода ме-
тодов класса. Кроме этого, в Caché вводится понятие Caché-программы. Caché-программа
не является составной частью классов и предназначена для написания прикладного про-
граммного обеспечения для текстовых терминальных систем.
Особенности языка Object Script:
• Язык не имеет зарезервированных слов: вы свободны в выборе имен идентификато-
ров, также как и имен переменных. Например: set set=12, где первый set – это коман-
да, второй – это имя переменной.
• Не является языком строгой типизации. Используемые переменные не требуют пред-
варительного объявления.
• Имеется большой набор встроенных функций, которые отличаются наличием знака $
перед именем функции. Например: $Piece, $Select и т.д.
• Существует довольно много встроенных команд языка. Например: write, read и т.д.
• Поддержка работы с классами и объектами.
• Поддержка работы с многомерными массивами.
• Широкий набор функций для прямого управления потоками внутри приложений.
• Набор команд ввода/вывода.
• Поддержка встроенного SQL.