Вы находитесь на странице: 1из 29

ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ВОПРОСОВ ДЛЯ ПРОВЕДЕНИЯ ЗАЧЕТА

ПО КУРСУ «ПОСТРЕЛЯЦИОННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ

БАЗАМИ ДАННЫХ»

1. Понятие и функциональные возможности СУБД. Классификация

СУБД. Режимы работы пользователя с СУБД.

2. Современные СУБД: настольные, серверные, распределенные.

Тенденции развития СУБД.


В настоящее время в мире используется достаточно большое количество
универсальных промышленных СУБД. Среди них можно выделить трёх
несомненных лидеров (как по уровню развития технологий, так и по объему рынка
- они вместе занимают более 90% мирового рынка СУБД). Это СУБД первого
эшелона - Oracle, Microsoft SQL Server и IBM DB2.

Список СУБД второго эшелона довольно велик, сюда относят такие СУБД, как
Sybase, Informix, Ingress, Adabas, Interbase, Progress, Postgres, Cache, Linter,
Firebird, Teradata и т.д.

Существуют также небольшие СУБД для нишевых (специализированных)


решений и постоянно появляются прототипы новых специализированных СУБД
(объектно-ориентированные СУБД, ХML СУБД, СУБД для обработки потоковых
данных, СУБД для работы с текстами и т.д.). Можно ли предсказать тенденции
развития этих СУБД на ближайшие годы?

Да можно, особенно для СУБД первого и второго эшелона. Предсказывать эти


тенденции можно двумя путями: исходя из теоретических исследований и отчетов
аналитиков и крупных специалистов в области СУБД или анализируя текущее
состояние и планы развития лидеров рынка СУБД.

Настольные (несетевые) СУБД обрабатывают реляционные таблицы путем


полной их загрузки в оперативную память компьютера. После обработки данных
таблица полностью выгружается из оперативной памяти.(DBASE, Visual DBASE,
Paradox, Microsoft FoxPro, Visual FoxPro, Access.)

Достоинства настольных СУБД:

·они являются простыми для освоения и использования;

·обладают дружественным пользовательским интерфейсом;

·ориентированы на класс ПК, на самую широкую категорию пользователей –


непрофессионалов;

· обеспечивают хорошее быстродействие при работе с небольшими БД.

Недостатки настольных СУБД:

·при росте объемов хранимых данных и увеличении числа пользователей


снижается их производительность и могут возникать сбои при обработке данных;

·контроль за целостностью совершается внутри пользовательского приложения,


что может вызывать нарушение целостности данных;

·очень малая эффективность работы в компьютерной сети.

СУБД на каждой рабочей станции посылает запросы файловому серверу по всем


необходимым ей данным, которые хранятся на диске файлового сервера. Все
данные из БД пересылаются на компьютер пользователя. В результате на
компьютере пользователя создается локальная копия БД (время от времени
обновляемая из реальной БД на сервере). Затем СУБД пользователя выполняет
запрос.

Серверные СУБД. Архитектура клиент/сервер.Возможности серверных


СУБД

При наличии сети откр-ся возможность хранить и исп-ть в многопользов-ом


режиме централизованные БД, размещаемые на одном компе – сервере сети. В
этом случае каждый пользователь своего ПК получает доступ к общей для всех
пользов-ей централизованной БД.

Архитектура с совместным исп-ем файлов :

Для этой архитектуры характерен коллективный доступ к общей БД на сервере, к-


й явл. файловым сервером. Файловый сервер содержит файлы, необх-ые для
работы приложений и самой СУБД. Он обеспеч. функционирование той части
сетевой версии СУБД, к-я осущ-т упр-ие данными в БД..

Наиб. эффект-ую работу с централизованной БД обеспеч-т арх-ра клиент/сервер.


Клиент/серверная система состоит из мн-ва компов, объединенных в сеть. На
компьютере-клиенте приложение-клиент формирует запрос к БД. Серверная
СУБД обеспеч-т интерпретацию запроса, его выполнение, формиров-е результата
запроса и пересылку его по сети на клиентский комп. Клиентское приложение
интерпретирует его необх-ым образом и представляет пользов-лю. Клиентское
приложение может также посылать запрос на обновление БД и серверная СУБД
внесет необх-ые изменения в БД.

19. Распределенные субд


В случае распределённых СУБД не все данные хранятся централизованно- они
разделены по узлам, которые связаны коммуникационными связями. Каждый узел
имеет свою локальную БД, но может обращаться и к другим БД в сети. Т.о.
Распределённая СУБД представляет собой сов-сть логически взаимосвязанных
БД, распределённых в сети. Это прикладная система, которая обеспечивает
управление распределённой БД и прозрачность её распределённости для
пользователей.

Требования к распределённой БД:

1)распределения БД и СУБД д.б. локально автономны

2)никакой конкретный сервер не д. возлагаться на к-либо специально выделенный


центральный узел.

3) Непрерывность функционирования

4)Независимость от местоположения, фрагментации и тиражирования

5)распределённая обработка запросов

6)управление распределёнными транзакциями


7)Независимость от оборудования, ОС, сети, СУБД

Распр. СУБД бывают: однородные(имеют 1 СУБД в основе) и неоднородные(2и


>, кот-е различаются)

Формы распределения данных:

Фрагментация- разделение данных на порции(горизонтальная, вертикальная)

Тиражирование- создание дублируемых копий(репликатов) на разных узлах с


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

Репликаты- это мн-во различных физических копий некоторого объекта БД, для
кот-х поддерживается синхронизация(идентичность) с некоторой главной копией.

3 Основные концепции объектно-ориентированной методологии.

Постреляционная, многомерная и объектно-ориентированная модели

данных.

4.1.Постреляционная модель
Стройность и мощность реляционных моделей сделали их
доминирующими в среде баз данных. Но постоянное усложнение данных
позволило выявить ряд неудобств, возникающих при работе с
реляционными базами:
∙ Реляционные системы ограничены в структурах представления
данных, так как все данные хранятся в них в виде отношений,
состоящих из простых атрибутов. Классическая реляционная модель
предполагает неделимость данных, хранящихся в полях таблицы, то
есть информация в таблице должна быть представлена в первой
нормальной форме. Однако на практике иногда возникают ситуации,
когда такое ограничение снижает эффективность работы с базой.
∙Данные в реляционной системе пассивны, и для описания их
поведения требуется создавать прикладные программы.
∙Возможности реляционных баз данных недостаточны в тех
случаях, когда объекты данных сложны, например: географические
информационные системы, мультимедийные базы, базы с проектной
документацией и др.
Все эти требования можно реализовать с помощью реляционных
методов, но в результате получается не очень естественное
представление требований пользователя.
Постреляционная модель является расширением реляционной
модели. Она снимает ограничение неделимости данных, допуская
многозначные поля, значения которых состоят из подзначений, и
набор значений воспринимается как самостоятельная таблица,
встроенная в главную таблицу.
4.2. Многомерная модель
Одновременно с реляционной моделью данных появилась
многомерная модель. Однако хоть идеи многомерной модели возникли
одновременно с реляционной, но
ним стал проявляться интерес. Это было вызвано появлением статьи Э.
Кодда, в которой
он сформулировал 12 требований к системам класса OLAP (Online
Analytical Processing – оперативная аналитическая обработка),
связанных с возможностью представления и обработки многомерных
массивов.
Информация в многомерной модели представляется в виде
многомерных массивов,
называемых гиперкубами. В одной базе данных, построенной на
многомерной модели, может храниться множество таких кубов, на
основе которых можно проводить совместный анализ показателей.
Конечный пользователь в качестве внешней модели данных получает
для анализа определенные срезы или проекции кубов, представляемые
в виде обычных двумерных таблиц или графиков.
Развитию многомерных моделей способствовало и то, что широко
распространенные реляционные модели и соответствующим образом
организованные базы данных хорошо подходили для оперативной, то
есть транзакционной обработки данных. В случае же аналитической
обработки, то есть поддержки принятия решений реляционные системы
не давали желаемого результата. А многомерные базы данных хорошо
обслуживают именно аналитическую обработку данных и обычно
являются узко специализированными. Они обеспечивают более быстрый
поиск и чтение данных по сравнению с реляционными моделями, а также
избавляют от необходимости многократного связывания таблиц.
Среднее время ответа у них на сложный вопрос в десятки раз меньше,
чем при использовании реляционной модели.
Основными понятиями для многомерной модели являются:
агрегируемость, историчность, прогнозируемость.
Агрегируемость данных означает рассмотрение и возможность
анализа данных на разных уровнях обобщения: для пользователя,
аналитика, руководителя. Историчность данных обозначает привязку их
ко времени и высокий уровень неизменности (статичности) данных и их
взаимосвязей. Временная привязка позволяет выполнять запросы,
имеющие значения даты и времени. А статичность – использовать
специализированные методы загрузки, хранения,
выборки. Прогнозируемость данных предполагает задание функций
прогнозирования и применение их к различным временным интервалам.
Многомерность модели данных – это, прежде всего, многомерное
логическое представление структуры данных при их описании и в
операциях манипулирования ими, а не многомерность их визуализации.
По сравнению с реляционной моделью многомерная организация
данных обладает более высокой информативностью.
4.3. Объектно-ориентированная модель данных
Объектно-ориентированная модель представляет структуру,
которую можно изобразить графически в виде дерева, узлами
которого являются объекты (рис. 16).
Между записями базы данных и функциями их обработки
устанавливаются связи с помощью механизмов, подобных тем, которые
имеются в объектно-ориентированных языках программирования. Такая
модель позволяет идентифицировать отдельные записи базы.
Определяемый пользователем объект называют объектом-целью. Поиск
в объектно-ориентированной базе состоит в выяснении сходства между
объектом, задаваемым пользователем, и объектами, хранящимися в
базе.
Базовыми понятиями этой модели являются следующие: объекты,
классы, методы, инкапсуляция, наследование, полиморфизм.

4. Класс и объект. Полиморфизм, инкапсуляция и наследование.

Способы представления объектных моделей (UML).

Инкапсуляция автоматически подразумевает защиту данных. Для этого в


структуре class используется спецификатор раздела private, содержащий данные
и методы, доступные только для самого класса. Если данные и методы
содержатся в разделе public, они доступны извне класса. Раздел protected
содержит данные и методы, доступные из класса и любого его производного
класса. Наличие последних позволяет говорить об иерархии классов, где есть
классы - родители - шаблоны для создания классов - потомков. Объекты,
полученные из описания класса, называют экземплярами этого класса.

Вторым по значимости понятием является наследование. Новый,


или производный класс может быть определен на основе уже имеющегося класса,
или базового. При этом новый класс сохраняет все свойства старого: данные
объекта базового класса включаются в данные объекта производного, а методы
базового класса могут быть вызваны для объекта производного класса, причем
они будут выполняться над данными включенного в него объекта базового класса.
Иначе говоря, новый класс наследует как данные старого класса, так и методы их
обработки. Если объект наследует свои свойства от одного родителя, то говорят
об одиночном наследовании. Если же объект наследует атрибуты от нескольких
базовых классов, то говорят о множественном наследовании. Простой пример
наследования - определение структуры, отдельный член которой является ранее
определенной структурой.

Третьим по значимости понятием является полиморфизм. Он основывается на


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

Классы и объекты в ООП — различные понятия. Понятие класса в ООП – это тип


данных (такой же как, например, Real или String), а объект – конкретный
экземпляр класса (его копия), хранящийся в памяти компьютера как переменная
соответствующего типа. Класс является структурным типом данных.
UML (англ. Unified Modeling Language — унифицированный язык моделирования) —
язык графического описания для объектного моделирования в области разработки
программного обеспечения, для моделирования бизнес-процессов, системного
проектирования и отображения организационных структур.
UML является языком широкого профиля, это — открытый стандарт, использующий
графические обозначения для создания абстрактной модели системы, называемой UML-
моделью. UML был создан для определения, визуализации, проектирования и
документирования, в основном, программных систем. UML не является языком
программирования, но на основании UML-моделей возможна генерация кода.

 3Диаграммы
o 3.1Диаграмма классов
o 3.2Диаграмма компонентов
o 3.3Диаграмма композитной/составной структуры
o 3.4Диаграмма развёртывания
o 3.5Диаграмма объектов
o 3.6Диаграмма пакетов
o 3.7Диаграмма деятельности
o 3.8Диаграмма автомата
o 3.9Диаграмма прецедентов (Диаграмма вариантов использования)
o 3.10Диаграммы коммуникации и последовательности
o 3.11Диаграмма обзора взаимодействия
o 3.12Диаграмма синхронизации

5. Объектная модель Caché. СУБД Cache: настройка среды разработки

и работа с ней. Компоненты Caché Object.

Объектная модель Caché.


Представление объектов реального мира в виде плоских реляционных таблиц в
большинстве случаев приводит к потере семантики. Однако, множество компаний,
имеющих работающие приложения, построенные на базе реляционных таблиц, не желают
переходить на объектно-ориентированную технологию, т.к. это приведет к большим
затратам на этапе трансляции. Кроме этого, зависимость приложений от
структурированного языка запросов (SQL), также является камнем преткновения при
принятии решения о переходе на более развитую объектно-ориентированную технологию.
Caché - это высокопроизводительная постреляционная база данных, а также развитая
система управления базой данных (СУБД). Основным отличием БД Caché от РБД и ООБД
является универсальность представления данных в Caché, реализуемая с помощью т.н.
единой архитектуры данных. В рамках этой архитектуры существует единое описание
объектов и таблиц, отображаемых непосредственно в многомерные структуры ядра базы
данных, ориентированного на обработку транзакций. Имеющиеся серверы Caché Objects
И Caché SQL предоставляют в распоряжение разработчика все наиболее популярные
интерфейсы, посредством которых и унаследованные реляционные
иновые объектно-ориентированные прикладные системы получают равноправный доступ
к данным. Кроме реляционного и объектного доступов к данным, разработчику
предлагается прямой доступ к данным (Caché Direct), т.е. доступ непосредственно к
многомерным структурам ядра. 
Caché Objects.
Объектная модель Caché следует рекомендациям по стандарту ODMG (Object Data
Management Group). Caché классы в полном объеме поддерживают все основные
концепции объектной технологии:
•Наследование. Объектная модель Caché позволяет наследовать классы от произвольного
количества родительских классов.
•Полиморфизм. Объектная модель Caché позволяет создавать приложения целиком и
полностью независимыми от внутренней реализации методов объекта.
•Хранимость. Объектная модель Caché позволяет долговременно хранить объекты на
физических носителях. Поддерживаются несколько форматов хранения объектов –
автоматический, предопределенный в Caché; ручной, определенный клиентом; а также
Caché может выступать в роле шлюза для хранения данных в виде реляционных таблиц в
других БД.
Класс объектов в Caché хранится в двух формах:
•Описательная форма. Поддерживаются 2 языка описания классов объектов –UDL(unified
definition language) и CDL (class definition language). Следует заметить, что UDL
поддерживается начиная с версии Caché 5. В работах рекомендуется использовать UDL,
т.к. CDL поддерживается для совместимости с предыдущими версиями Caché.
•Объектная run-time форма. Использование класса возможно только после его компиляции в
объектный код.
Для определения классов объектов, а также для решения многих других задач
разработки приложений в Caché реализован инструментарий Caché Studio
СУБД Cache: настройка среды разработки была рассмотрена в первой лабораторной работе по
псубд (там прикреплена пошаговая инструкция)

6. Классы и свойства СУБД Cache. Виды классов. Элементы классов.

Компиляция классов.

7. Определение классов.

Виды классов:

Классы типов данных: это специальные классы, определяющие допустимые


значения констант, и позволяющие их контролировать. Содержат опред. набор
методов проверки. Не могут содержать св-в.

Классы объектов: определяют структуру и поведение объектов данного типа.


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

Зарегистрированные классы имеют полный набор методов. Автоматически


наследуют методы управления объектов от системного класса. Экземпляры
существуют временно в памяти процесса. Их называют временными объектами.
Созданием новых объектов, зарегистрированных классов и управлением их
размещения в памяти занимается Cache.Наследуются от Library Registered Object.
Допускают полиморфизм.

Встраиваемые классы могут храниться не только временно в памяти, но и


продолжительное время в БД. Эти классы наследуют свое поведение от класса
Library Serial Object. Главное в их поведении – то, что экземпляры в памяти
существуют как независимые объекты и могут быть сохранены в БД лишь будучи
встроенными в другие объекты.

Хранимые классы обеспечивают длительное хранение экземпляра в БД.


Наследуются от Library Persistent. Экземпляры обладают однозначными
объектными идентификаторами и могут независимо храниться в Cache. Когда
хранимый объект используется как свойство класса говорят о ссылке на хранимые
объекты.

Элементы класса:

1. Название 2. Ключевые слова

3. Свойства, то есть элементы данных, хранящихся в классе. Могут быть


константами, встроенными объектами и ссылками на хранимые объекты. Классы
типов данных не содержат свойств. При доступе к свойствам возможно изменение
формата и другое преобразование. Объекты, на которые делаются ссылки
автоматически загружаются в память. Свойства могут быть public и private.

4. Методы, то есть код, реализующий те или иные функциональные возможности.

5. Параметры класса, значения, осуществляющие формирование класса во время


компиляции.

6. Запросы, то есть операции с множеством операций класса.

7. Индексы – структуры, оптимизирующие доступ к объектам.

Типы данных реализуются классами.

8. Введение в CachéStudio. Управление классами в проводнике Caché.

Введение про Caché


Caché — мультимодельная СУБД. К ней можно обращаться как с помощью запросов на
языке SQL с некоторыми расширениями, так и взаимодействовать с хранимыми
объектами и процедурами через интерфейсы для различных языков программирования.
Третий же вариант — это напрямую разрабатывать приложение на родном для СУБД
языке — Caché ObjectScript (COS).

Caché поддерживает классы на уровне СУБД. Существует два основных типа классов:
Persistent, которые могут хранится в базе данных, и Registered, которые не хранятся в БД,
а выполняют роль программ и обработчиков. Так же есть ряд особых типов: Serial
(классы, которые могут быть встроены в Persistent классы для создания сложных типов
данных, таких как, например, адреса), DataType (создают пользовательский тип данных),
Index, View и Stream

А теперь про Class Explorer

Caché Class Explorer — инструмент, который визуализирует структуру классов Caché в


диаграмму, показывает зависимости между классами и всю необходимую информацию,
включая код методов, запросов, xData-блоков, комментарии, документацию и ключевые
слова разных элементов класса. Для отображения Class Explorer использует
модифицированную нотацию UML, потому что в Caché присутствует целое разнообразие
сущностей, которые в стандартной нотации UML не предусмотрены, но имеют важное
значение для Caché: запросы, xData-блоки, множество ключевых слов для методов и
свойств (таких как System, ZenMethod, Hidden, ProcedureBlock и другие), отношения
parent-child, one-many, типы классов и так далее.

В Caché Class Explorer (1.14.3) можно:

 Отобразить иерархию пакетов, диаграмму класса или целый пакет;


 Редактировать внешний вид диаграммы после отображения;
 Сохранить текущее изображение диаграммы классов;
 Запоминать текущий вид диаграммы и восстанавливать его при следующем
отображении;
 Проводить поиск по любым ключевым словам, отображённым на диаграмме
или в дереве классов;
 При помощи всплывающих подсказок получать полную информацию о
классах, их свойствах, методах, параметрах, запросах и xData-блоках;
 Просматривать программный код методов, запросов или xData-блоков;
 Включать или отключать отображение любых элементов диаграммы,
включая графические иконки.

9. Служебные API-вызовы Caché Objects. Терминал Caché и командная

строка. Загрузка и компиляция определений классов.

Определение классов тогда выглядит таким образом.


Файл CDL может содержать одно или несколько предложений по определению классов.
Определение класса начинается со следующей конструкции: CLASS {Имя пакета}. Имя класса
{Ключевое слово1, Ключевое слово2,..}. В случае, если не указывать название пакета, по
умолчанию класс создается в пакете USER. Ключевое слово N — это флаг состояния,
состоящий из ключевого слова и опционального значения. Например, с помощью ключа
DESCRIPTION = строка можно задать описание класса, а FINAL говорит о том, что от этого
класса нельзя порождать подклассы.

Таким же образом, используя предложение ATTRIBUTE, можно определять свойства класса:


ATTRIBUTE, имя свойства {определение свойства}. Как и в современных языках
программирования, тут можно сделать свойство внутренним — ключевое слово PRIVATE,
задать выражение по умолчанию — INITIAL, сделать данное свойство обязательным —
REQUIRED или вычисляемым — CALCULATED. Аналогично определяются методы класса,
его индексы, запросы, параметры, а также триггеры.

 Можно определять классы напрямую с помощью языка CDL — Class Definition Language.
Файл в формате CDL можно создать в любом текстовом редакторе. Импортировать такие
файлы определения классов можно либо с помощью Проводника Cache, либо загрузить файл
в Cache Object Architect, либо c использованием служебных API — вызовов Cache Objects из
командной строки.

Базовые API кэша объектов Java


Caché Terminal – это программа эмуляции ASCII терминала, поставляемая вместе с Caché.
Эта программа может быть с успехом использована для изучения моделей данных,
поддерживаемых Caché, особенностей использования языка Caché Object Script, так как
она немедленно выполняет любую команду Caché Object Script, записанную в командной
строке с приглашением типа:

10.Основы Caché ObjectScript. Основные элементы Caché ObjectScript.

Элементарные типы данных. Оператор косвенности.

1. Основные элементы Cache Object Script

Caché Object Script - это мощный объектно-ориентированный язык, встроенный в


Caché. Синтаксис языка близок к синтаксису широко известных языков (Delphi, C+
+ и пр.) хотя имеются и некоторые особенности. Отладка кода может быть
выполнена с помощью специальной программы «Терминал», моментально
интерпретирующей любую команду Caché Object Script.

Оператор косвенности @ Оператор косвенности позволяет преобразовать строку символов в


программный код в четырех четко описанных случаях: • Косвенное имя: преобразование в имя
(например, переменной). • Косвенный аргумент: преобразование в полный аргумент команды. •
Индексная косвенность: преобразование в индексированную переменную. • Косвенный шаблон:
преобразование в шаблон при проверке по шаблону.
Основные команды, Caché Object Script:

 команда DO;
 команда SET;
 команда WRITE;
 команда READ;
 команда QUIT;
 команда NEW;
 команда IF;
 команда ELSE;
 команда FOR.

Основные операторы:

 арифметические операторы (+,-,=,/,\,**,#);


 операторы сравнения чисел (>,<);
 оператор конкатенации строк (_);
 оператор «НЕ» (`);
 оператор соответствия шаблону (?).

11.Списки и массивы. Функции обработки строк. Примеры написания

кода методов и работы с объектами.

Несмотря на перманентные похороны Delphi, эта платформа построения Desktop


приложений живёт и здравствует, а со сменой владельца даже обретает второе
дыхание и продолжает оставаться основным инструментом для тысяч
разработчиков во всём мире.
Как и с любыми другими СУБД, Delphi прекрасно взаимодействует с СУБД Caché.

Из Delphi можно подключиться к Caché, используя следующие интерфейсы:

 Caché Objects (объектный, используя библиотеки


CacheObject.dll/CacheActiveX.dll);
 Caché SQL (реляционный, используя драйвер ODBC);
 Caché Direct (прямой, используя библиотеку Vism.ocx);
 Веб-сервисы;
 Сокеты.

В данной статье будут рассмотрены примеры использования объектного


интерфейса при работе с СУБД Caché.

Но для начала приведу несколько коротких примеров на VBScript, которые вы


можете запустить непосредственно из Windows Проводника.

Пример прямого доступа:

Set f = CreateObject("VISM.VisMCtrl.1")
f.Server="CN_IPTCP:localhost[1972]:_system:@ SYS"
f.NameSpace="SAMPLES"
f.Execute("=$zv") 'получение версии СУБД
WScript.Echo f.VALUE

Пример реляционного доступа:

Set cn=Createobject("ADODB.Connection")
cn.ConnectionString="DRIVER={InterSystems ODBC35}; SERVER=127.0.0.1; PORT=1972; DATAB
ASE=SAMPLES; UID=_system; PWD=SYS"
cn.open
WScript.Echo "Succesfully!"

Пример объектного доступа:

Set f = CreateObject("CacheActiveX.Factory")
Set rs = CreateObject("CacheActiveX.ResultSet")
If Not f.IsConnected() Then

f.Connect("cn_iptcp:127.0.0.1[1972]:SAMPLES:_SYSTEM:SYS")

Set rs=f.DynamicSQL("select TOP 3 * from Sample.Person")


rs.Execute()
while rs.Next
WScript.Echo rs.Get("SSN") 'выводим поле SSN первых трёх записей из таблицы
Sample.Person
wend

rs.Close()
Set person = f.Static("Sample.Person")
age=person.CurrentAge(45678) 'вызываем метод класса Sample.Person

WScript.Echo age
End If

Обработка строк (Класс) $Extract, $Find, $Length, $Piece, $Reverse, $Translate


Типичные представители

Свойство коллекция состоит из набора элементов одного типа. Caché поддерживает


два типа коллекций: списки (List) и массивы (Array). Коллекция список состоит из упоря-
53
доченного набора элементов, т.е. каждому элементу ставится в соответствие его
порядковый номер. Коллекция массив состоит из набора пар вида: <ключ> <значение>,
упорядоченных по ключу. 
12.Программы в Caché. Процедурное структурированное

программирование: базовые конструкции управления выполнением

программ. Обработка ошибок.

Тип
Окончание Пояснение
программы
.MAC Макрокод Макрокод может содержать код Cache
ObjectScript, макродирективы, макросы,
встроенный SQL и встроенный HTML. Он
компилируется в промежуточный код, а тот уже в
объектный код.
Включаемые макропрограммы могут содержать
любой код, разрешенный в .МАС-программах.
Включаемая Они применяются для построения
.INC
макропрограмма макробиблиотек и могут быть включены в
макропрограмму с помощью директивы Include -
отсюда и их название.
Промежуточный код - это рабочий код Cache
Промежуточный
.INT ObjectScript. Макросы и встроенный SQL сначала
код
преобразуются в промежуточный код.
Прежде чем выполнить промежуточный код,
необходимо откомпилировать его во внутренний
объектный код. Это происходит автоматически
при сохранении отредактированной программы.
.OBJ Объектный код Во время выполнения используется только
объектный код; Фирмы-разработчики
программного обеспечения тиражируют свои
приложения, большей частью, только в
объектном коде.

Создание программ с помощью Cache Studio


Cache Studio — это одно из приложений, вызываемых из меню Cache-
куба. Для разработки программ предлагается графический редактор,
позволяющий комфортно создавать классы (включая создание кода
методов), CSP-страницы Cache (Cache Server Pages), программы на
макроязыке, включаемые файлы и программы на промежуточном коде, а
также компилировать их в выполняемый объектный код.

Cache Studio предоставляет программисту такое вспомогательное


средство, как автоматический синтаксический контроль; различные
элементы языка помечаются разным цветом и в случае нарушения
синтаксических правил выводятся сообщения об ошибках. Cache Studio
также содержит встроенный отладчик, который может быть использован
для поиска ошибок в приложениях.

Программисты часто используют Cache Studio совместно с проводником


Cache, который предоставляет богатейшие возможности по управлению
программами, включая их импорт/экспорт, а также контекстный поиск.

Процедурное структурированное
программирование
Для управления последовательностью выполнения программы
разработчик в Cache ObjectScript может выбирать между двумя
методами:

 Метод, ориентированнный на строки, основанный на командах If,


Else и For, знакомых по прежним версиям Cache.
 Метод командных конструкций, основанный на языковых
элементах, эквивалентных применяемым в Java, С и C++.

Исключая специальные случаи, эти два метода не должны смешиваться.


Хотя — до некоторой степени — они используют одинаковые ключевые
слова (If, Eise и For), соответствующие команды синтаксически и
семантически отличаются. Для новых разработок настоятельно
рекомендуется использовать только новые условные конструкции и
циклы.

Ниже в общем виде описаны четыре конструкции:


If <expr>[,<expr> . . . ] {code}
ElseIf <expr>[,<expr> . . . ] {code}
Else {code}
For <forparameter> {code}
While <expr>[,<expr> . . . ] {code}
Do {code} While <expr>[,<expr> . . . ]

Так называемый блок кода заключен в фигурные скобки, что важно для


задания области действия программного кода. Следует подчеркнуть, что
просто блок кода {} в Cache не существует, только в этих четырех
командных конструкциях (и, естественно, в процедурах).

 При возникновении ошибки Cache помещает сообщение об ошибке


в двеспециальные переменные $ECode и $ZError. Программа
обработки ошибок (так называемый обработчик ошибок) может
анализировать содержимое обеих переменных и принимать
соответствующие меры.
 При этом переменной $ZError присваивается строка, содержащая
наименование ошибки и ее местоположение (метка и имя
программы), например:
<UNDEFINED>Labl+3^Programm.

 $ECode, напротив, содержит стандартизованный в соответствии с


ANSIХ11.1 [1994] код ошибки, ограниченный запятыми. Если
осуществляется ссылка на неопределенную глобальную
переменную, то вид его, например, таков: ,М7,. В дополнение к
стандартным ошибкам в Cache имеются специфические коды
ошибок, начинающиеся с Z (например, ,ZSTORE,), кроме того,
программистам разрешено добавлять собственные коды ошибок,
которые должны начинаться с U.
 Обработчик ошибок инициализируется через любую из двух
назначаемых специальных переменных, $ЕТrар или $ZTrap,
которые отличаются друг от друга. $ЕТrар содержит полную
команду, выполняемую в случае ошибки, a $ZTrap содержит адрес,
по которому происходит переход в случае ошибки. Если по каким-
либо причинам назначены обе команды, $ZTrap имеет
преимущество.
 Заметную роль в обработке ошибок играет глубина вложенности.
Она повышается на 1, когда выполняется подпрограмма,
пользовательская функция или строка Xecute, и соответственно
уменьшается, когда Quit(в $$-функциях — с аргументом) завершает
выполнение на текущем уровне программы. Текущее значение
«глубины» хранится в системных переменных $Stack или $EStack.

13.Объектный доступ и хранимые объекты

1. Cache' Objects - объектный доступ, для максимальной продуктивности


разработки при использовании Java, Visual C++, VB и других ActiveX-
совместимых средств разработки, таких как PowerBuilder и Delphi. В
Cache' реализована объектная модель в соответствии с рекомендациями
ODMG (Группа управления объектными базами данных - Object Database
Management Group). В Cache' полностью поддерживаются наследование (в
том числе и множественное), инкапсуляция и полиморфизм. При
создании информационной системы разработчик получает возможность
использовать объектно-ориентированный подход к разработке, моделируя
предметную область в виде совокупности классов объектов, в которых
хранятся данные (свойства классов) и поведение классов (методы
классов). Cache', поддерживая объектную модель данных, позволяет
естественным образом использовать объектно-ориентированный подход
как при проектировании (в Rational Rose) предметной области, так и при
реализации приложений в ОО-средствах разработки (Java, C++, Delphi,
VB). Постреляционная СУБД Cache' конкурирует с объектными СУБД,
значительно превосходя их по таким показателям как надежность,
производительность и удобство разработки.

14.Хранение объектов: интерфейсы хранения. Операции с множествами

объектов. Использование объектов. Практика работы с хранимыми

объектами.

Определения и классы хранения

Хранение и доступ к данным в объектах Caché производится с помощью


"Описания хранения" (Storage Definition), который использует "Класс хранения"
(Storage Class). В Описании хранения определяется структура базы данных для
данного класса и сам Класс хранения. В Классе хранения содержится
программный код, генерирующий операции Load, Save и Delete для класса
объектов, который задается на основе Описания хранения этого класса.
(Определения и классы хранения являются очень удобным и эффективным
средством контроля структур хранения и собственно процессов сохранения
данных. С другой стороны, Caché способна генерировать структуры хранения
автоматически, если программист не хочет тратить время на эти операции.)

Три класса хранения в Caché

Наиболее часто используемым и высокопроизводительным способом хранения


является CachéStorage. Сначала разработчики создают или импортируют
описание данных, затем в процессе компиляции Caché автоматически генерирует
необходимые многомерные структуры данных и методы доступа в базы данных.
Таким образом, либо структура хранения целиком генерируется компилятором,
либо сам программист задает структуру данных, исходя из возможностей
системы.

Разработчики могут также создавать специфические для конкретного класса, так


называемые CustomStorage методы доступа. Схема хранения здесь отсутствует.
Данная техника более всего подходит для доступа к специфическим структурам
данных или при хранении данных не на диске. Данный класс несовместим с SQL.

Когда используется третий тип хранения - CachéSQLStorage, Caché


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

Наконец, если три предложенных метода не подходят, программист всегда может


установить свой собственный Класс хранения.

Отличительной особенностью СУБД Cache' является независимость хранения


данных от способа их представления, что реализуется с помощью, так
называемой, единой архитектуры данных Cache'. В рамках данной архитектуры
существует единое описание объектов и таблиц, отображаемых
непосредственно в многомерные структуры ядра базы данных,
ориентированных на обработку транзакций [1]. Как только определяется класс
объектов, Cache' автоматически генерирует реляционное описание данных этого
класса в формате SQL. Подобным же образом, как только в Словарь данных
поступает DDL-описание в формате реляционной базы данных, Cache'
автоматически генерирует реляционное и объектное описание данных,
устанавливая тем самым доступ в формате объектов. При этом все описания
ведутся согласованно, все операции по редактированию проводятся только с
одним описанием данных. Это позволяет сократить время разработки,
сэкономить вычислительные ресурсы и приложения будут работать значительно
быстрее.
Метод может быть Public или Private. Для Private используется ключевое слово. Помимо
аргументов, через которые метод получает значения, метод может иметь возвращаемое
значение, которое он предоставляет в распоряжение вызвавшей его программы. 

15.Прямой доступ и глобалы. Индексированные переменные.

Переменные как локальные, так и глобальные могут существовать в виде простых


или индексированных структур. Глобальные переменные или глобалы, являясь
хранимыми данными, создают основу так называемого прямого доступа.
Многомерность данных реализована через индексы, поэтому говорят об
индексированных переменных. Табл. 14 демонстрирует различия между переменными:
   
Таблица 14
Тип пере- Локальная Глобальная
менной    

Скалярная Name=Иванов ^Name=Иванов


Многомерная Book(Nomer)=Солярис|Лемм С. ^Book(Nomer)=Солярис|Лемм С.
Переменная Name – скалярная, она не хранится в базе данных. Переменная ^Name –
глобальная, она сохраняется в базе данных.
Переменные Book и ^Book – это индексированные переменные, в отличие от
переменных Name и ^Name. Переменная ^Book является глобальной, т.е. сохраняется в
базе данных.

Индексированные переменные создаются с помощью команды Set. При этом нет


необходимости в предварительном объявлении массива и его размерности. Например:
Set A=1, A(3)=2, A(3,7)=”Monday”, A(3,7,25)=”holiday”.

Глобалы это структуры данных, как правило, многомерные, которые хранятся в базе
данных и могут обрабатываться в многопользовательской среде различными процессами.
Обработка глобалов в Caché весьма проста.
С помощью команды Set глобалу присваивается значение. Например: Set
^Univer(“математический”)=$ListBuild(“Волков Ю.Н.”, “22-33-45”)

Работа с глобалами

Работа с глобалами выполняется в проводнике Caché. Глобальные данные


сохраняются в B*-деревьях. Дерево, которое имеет одинаковое число подуровней в
каждом своем поддереве, называется сбалансированным (balanced tree, отсюда и B-
дерево). Дерево, у которого каждый ключ указывает на блок данных, содержащий
требуемую запись, называется B*-деревом. Оно делает возможной интеграцию области
указателей и области данных.

16.Навигация в многомерных массивах. Сложные операции с

глобалами: блокировка, обработка транзакций.

Функции для работы с многомерными массивами


Функция $Data
$Data (коротко - $D) – может работать с глобальной, локальной, скалярной или
индексированной переменной. Функция определяет, существует ли заданная в виде
аргумента переменная и какая у нее структура данных. Функция может возвращать четыре
значения. Синтаксис:
$DATA(variable,target) $D(variable,target)
Где variable – переменная, target – необязательный, возвращает текущее значение
переменной. Если переменная не определена, то остается неизменным.

Правила, которым должна удовлетворять процедура согласованного выполнения


параллельных транзакций.

1. пользователь видит только согласованные данные


2. СУБД гарантировано поддерживает принцип независимого выполнения
транзакций – сериализация транзакций.

Способ выполнения транзакций – сериальный, если результат совместного


выполнения транзакций эквивалентен результату некоторого последовательного
выполнения этих же транзакций. Это осуществляется механизмом блокировок.
Самый простой вариант – блокировка объекта на все время действия транзакции.
После окончания транзакции объекты становятся доступны другим транзакциям.

В ряде СУБД организована блокировка на уровне страниц.

Блокировки, называемые синхронизационными захватами объектов, могут быть


применимы к разным типам, в том числе и по всей базе данных.

Для повышения эффективности параллельного использования транзакций,


используются комбинирования разных типов синхронизационных захватов.

Рассматриваются 2 основных типа:

1. Совместный режим блокировки – нежесткая или разделяемая блокировка


(S, Shared). Это означает разделяемый захват объекта. Объекты не
изменяются в процессе выполнения транзакций и доступны другим только
для чтения.
2. Монопольный режим – жесткая или эксклюзивная блокировка (X, Exclusive).
Требуется для выполнения операций занесения, удаления, модификации и
предполагает монопольный захват объекта. Объекты недоступны для
других транзакций.

17.SQL-доступ и таблицы. диная архитектура данных.

Структурированный язык запросов SQL.

18.Встроенный SQL. Caché SQL-менеджер. Caché SQL-сервер.

SQL (Structured Query Language) – структурированный язык запросов – является


инструментом, предназначенным для выборки и обработки информации,
содержащейся в компьютерной базе данных. SQL является языком
программирования, применяемым для организации взаимодействия пользователя
с базой данных (рис. 44). SQL работает только с реляционными базами данных и
предоставляет пользователю следующие функциональные возможности:
 изменение структуры представления данных;
 выборка данных из базы данных;
 обработка базы данных, т. е. добавление новых данных, изменение,
удаление имеющихся данных;
 управление доступом к базе данных;
 совместное использование базы данных пользователями, работающими
параллельно;
 обеспечение целостности базы данных.

SQL – это не полноценный компьютерный язык типа PASCAL, C++, JAVA. Еще раз
отметим, что SQL, также как и QBE, является непроцедурным языком. С помощью
SQL описываются свойства и взаимосвязи сущностей (объектов, переменных и т.
п. ), но не алгоритмы решения задачи. Он не содержит условных операторов,
операторов цикла, организации подпрограмм, ввода-вывода и т. п. В связи с этим
SQL автономно не используется. Инструкции SQL встраиваются в программу,
написанную на традиционном языке программирования и дают возможность
получить доступ к базам данных (встроенный SQL). Кроме того, из таких языков,
С, C++, JAVA инструкции SQL можно посылать

СУБД в явном виде,


используя интерфейс
вызовов функций.

Язык SQL является

многофункциональным языком. Во-первых, SQL используется в качестве языка


интерактивных запросов пользователей с целью выборки данных и в качестве
встроенного языка программирования баз данных. Кроме того, SQL используется
в качестве языка администрирования БД для определения структуры базы данных
и управления доступом к данным, находящимся на сервере; в качестве языка
создания приложений клиент/сервер, доступа к данным в среде Internet,
распределенных баз данных.

С помощью SQL можно динамически изменять и расширять структуру базы


данных даже в то время, когда пользователи работают с ее содержимым. Таким
образом, SQL обеспечивает максимальную гибкость. Статические языки
определения данных запрещают доступ к БД во время изменения ее структуры

Инструкции языка SQL

Вид Название Назначение


DDL CREATE TABLE Добавление новой таблицы в БД
DROP TABLE Удаление таблицы
ALTER TABLE Изменение структуры таблицы
CREATE INDEX Создание индекса для столбца
DROP INDEX Удаление индекса столбца
CREATE VIEW Создание нового представления
DROP VIEW Удаление представления
GRAND Назначение привилегий доступа
пользователей к БД
REVOKE Удаление привилегий
CREATE SCHEMA Добавление новой схемы в БД
DROP SCHEMA Удаление схемы
DML SELECT Выборка данных из таблицы
UPDATE Обновление данных в таблице
INSERT Вставка новых строк в таблицу
DELETE Удаление строк из таблицы
Caché Monitor – альтернативный Sql менеджер Cache.
Если при разработке или использовании вашего приложения на Caché вам часто
приходится выполнять SQL-запросы, а функциональности SQL-менеджера из Портала
Управления Caché или SQL-оболочки из терминала Caché вам недостаточно, то советую
обратить внимание на приложение Caché Monitor.

Альтернативный SQL-менеджер разработал Андреас Шнайдер — разработчик из


Германии.
Это кроссплатформенное Java-приложение кроме выполнения SQL-запросов
предоставляет следующие возможности:

1. Продвинутый редактор SQL-запросов:

 подсветка синтаксиса Caché-SQL


 интеллектуальный ввод SQL для таблиц, представлений и колонок
(Intellisense)
 история выполнения SQL-запросов
 форматирование SQL-запросов
 параллельное выполнение запросов
 графическое представление плана выполнения SQL-запроса с поддержкой
индексов и selectivity
 SQL сокращения (например, ввод команды se преобразуется в «SELECT *
FROM »
 просмотр TuneTable для выбранных таблиц или всей области
 запись результатов выполнения запроса в таблицу
 DDL генератор (CREATE TABLE)

2. Просмотр следующей метаинформации в областях Caché:

 Таблицы
 Представления
 Программы (у меня показывает только список)
 Классы
 Кэшированные запросы
 Хранимые процедуры
 Индексы

3. Также Caché Monitor помогает управлять вашими Caché серверами:

 Объединять сервера в группы для удобства просмотра информации


 Просматривать информацию о версии Caché
 Просматривать «стоимость» выполнения запроса
 Быстрое открытие нового окна Query Analyzer для выбранного сервера
 Просмотр списка выполняемых процессов
 Просмотр таблицы блокировок

Веб сервер позволяет подключиться к локальному хосту и работать с панелью управления субд
удаленно.

19.Программирование с помощью ActiveX. Соединение с Caché через

ActiveX. Объекты Caché и Visual Basic.

20.Работа с серверами ActiveX через Caché Activate: генерация классов,

программирование клиентов.

Объекты Cache обеспечивают связь широкого разнообразия клиентских


приложений и инструментальных средств через интерфейс ActiveX

Объекты Cache включают следующие компоненты ActiveX:

 Сервер объектов Cache для ActiveX: Сервер автоматизации ActiveX, который


представляет объекты Cache как объекты ActiveX.

 Visual Cache: набор инструментальных средств, которые расширяют


прикладное развитие в Visual Basic. Эти инструментальные средства включают
управление связыю объектов Cache (Cache Object Link Control), управление
списками Cache (Cache List Control), управление запросами Cache (Cache Query
Control) и мастера форм объектов Cache (Cache Object Form Wizard):

o Управление связыю объектов Cache (Cache Object Link Control): OCX


(Управление ActiveX), особенно написанный для Visual Basic,
представляет свойства объектов Cache как данные Visual Basic.
Управление связыю объектов Cache работает также, как управление
данными в Visual Basic, за исключением того, что оптимизирован доступ к
объектам Cache.
o Управление списками Cache (Cache List Control): OCX, написанный для
Visual Basic, помогает просматривать результаты запроса. Нужно
обеспечить интерфейс для выбора запросов и параметров запроса для
выполнения.
o Управление запросами Cache (Cache Query Control): OCX, написанный для
Visual Basic, обеспечивает простой интерфейс для выполнения запросов и
отображения результатов. Управление запросами Cache обеспечивает
интерфейс для выбора во время выполнения запроса, который
возвращает ID, и для определения любых параметров запроса.
o Мастер форм объектов Cache (Cache Object Form Wizard): врезка Visual
Basic, которая позволяет быстро и легко создаь простую форму для
обращения к свойствам одиночного класса Cache.
 Сервер объектов Cache для ActiveX
 Сервер объектов Cache для ActiveX – сервер автоматизации ActiveX, который
дает приложениям клиента доступ к сервер-ориентированным объектам Cache.
Внутренне, сервер объектов Cache для ActiveX создает объект ActiveX, который
отражает объект на сервере Cache. Объектные свойства и методы представлены
как свойства и методы ActiveX. Когда методы вызваны, они выполняются на
машине сервера.
 Каждый объект клиента Cache ObjInstance может обратиться к объекту на
сервере. Возможно, что несколько объектов клиента обращаются к одному и
тому же объекту на сервере. В любом случае, индекс ссылки серверного объекта
увеличивается на единицу, если любые клиентские объекты связываются с
серверным объектом.
 Клиентские объекты, которые выполняют специальные функции (например,
объекты SysList и ResultSet) и не являющиеся объектами Cache, не могут
обращаться к объекту на сервере.
 Клиентский объект Cache – объект ActiveX, использующий указатель на
интерфейс IDISPATCH ("объект" в Visual Basic).
 Например, можно обращаться к свойствам и методам объекта Patient из Visual
Basic, используя следующий код:
 patient.Name
 ’ возвращает значение Nama для объекта patient
 patient.Admit
 `запускает метод Admit() объекта patient на сервере
 В отличие от типичных серверов автоматизации ActiveX, сервер объектов Cache
для ActiveX не требует регистрации каждого класса объектов, который
определен в операционной системе клиента. Сервер объектов Cache для ActiveX
определяет информацию о классе во время выполнения. Это позволяет
разрабатывать большие приложения со многими машинами клиента и многими
сервер-ориентированными объектами без опасений относительно поддержки
системного реестра ActiveX. Можно также генерировать статическую библиотеку
типов объектов для ActiveX, используя ExportTLBList^% apiOBJ().
 Объекты Cache ActiveX
 Сервер объектов Cache для ActiveX состоит из шести типов объектов ActiveX:
  Cache ObjInstance: клиентский серверный объект Cache. Для каждого
серверного объекта Cache в приложении клиента имеется один объект Cache
ObjInstance.
  Cache Factory: Объект Factory. Приложения используют этот объект для
создания и управления Объектами Cache. Приложение требует создания только
одного объекта класса Cache Factory.
  Cache SysList: Объект манипуляции списком. Приложения используют этот
объект, чтобы создавать и управлять данными Cache в формате $List.
  Cache ResultSet: Объект обработки запроса. Приложения используют этот
объект, чтобы выполнять запросы и обрабатывать результаты этих запросов.
  Cache BinaryStream: Объект манипуляции двоичными потоками. Приложения
используют этот объект для создания и управленияь данными в двоичных
потоках Cache.
  Cache CharStream: Объект манипуляции символьными потоками. Приложения
используют этот объект для создания и управленияь данными в символьных
потоках Cache.
 Объекты Cache и Visual Basic
 В дополнение к обеспечению доступа к Cache из любого приложения,
поддерживающего объекты ActiveX, интерфейс Cache ActiveX включают
специальные инструментальные средства, именуемые Visual Cache, для
использования только в Visual Basic. Хотя все примеры в этой главе используют
Visual Basic, они не используют Visual Cache.
 Конфигурированиее проекта Visual Basic
 Хотя можно использовать объекты Cache в Visual Basic без настройки, проект
Visual Basic следует настроить, если требуется использовать ранннее
связывание. Ранннее связывание – особенность Visual Basic, которая позволяет
объявлять объекты так, чтобы они несли информацию относительно их типа.

21.Объектное взаимодействие с Java. Создание классов в Java.

Использование Caché Objects в Java: создание проекта, сервер,

соединение с сервером, доступ к потокам.

Класс определяется с помощью ключевого слова сlass:

class Person{

При создании же кросс-платформенных решений разработчики зачастую


используют технологию Java, которая также очень легко интегрируется с СУБД
Caché с помощью таких механизмов как Caché Java Binding, Caché EJB Binding
и относящийся к реляционному способу доступа JDBC -драйвер,
поддерживающий JDBC API 2.0.

Механизм Caché Java Binding позволяет Java -объектам взаимодействовать с


серверными объектами Caché напрямую и для каждого указанного класса Caché
создает специальный промежуточный Java -класс, который функционирует
непосредственно в среде Java и обеспечивает доступ к свойствам и методам
серверных объектов. В модели объектного проецирования Java Binding можно
выделить следующие основные элементы:

•  Caché Java Class Generator – специальное расширение компилятора классов


Caché, позволяющее из описаний классов в Caché Class Dictionary получать
описания классов на Java

•  Caché Java Class Package – Набор Java-классов, которые в связке с классами,


сгенерированными Caché Java Class Generator, обеспечивают прозрачную работу
с объектами, сохраненными на сервере Caché

•  Caché Object Server – специальный серверный процесс, обеспечивающий


взаимодействие между Java -клиентом и сервером Cach e через транспортный
протокол TCP/IP.
Таким образом, Caché Java Class Generator из определений классов Caché
создает Java-проекции, которые во время выполнения взаимодействуют с
соответствующими классами на сервере Caché.

22.Запросы и ResultSet.

Запросы
Предоставляют в распоряжение разработчика операции с множествами экземпляров
классов. Можно считать, что запросы образуют для объектов класса некий фильтр.
Запросы можно формулировать либо на языке Caché Object Script, либо на SQL.
Результат запроса становится доступен через ResultSet – специальный интерфейс для
обработки результатов запроса в прикладных программах, написанных на языке Caché
Object Script, или на любом другом с использованием ActiveX, либо на языке Java. Кроме
того, запросы могут быть представлены в виде хранимых процедур SQL или же
представлений(View), а значит, далее обрабатываться средствами SQL.
23.Web-программирование в Caché. Особенности технологии CSP.

Установка CSP. Cache и Web-интерфейс.

24.Разработка в CSP. Создание динамического содержимого.

Взаимодействие с CSP. Использование форм. Доступ к полям формы.

Объект %CSP.Request.

25.Теги CSP. Использование предопределенных тегов, разработка

собственных тегов. Создание CSP-страниц.

Основы Web – программирования в Cache. Технология CSP

Технология CSP (Caché Server Pages)основной инструмент создания Web-


интерфейса для информационных приложений, написанных на Caché. Технология
CSP предлагает изящные средства создания быстродействующих, хорошо
масштабируемых Web-приложений за короткое время. Она также упрощает
дальнейшее сопровождение и развитие таких приложений. CSP-страницы
хранятся в CSP-файлах. При обращении к CSP-файлу происходит его трансляция
в класс CSP, который затем компилируется с помощью компилятора Caché Server
Pages. Этот процесс прозрачен для разработчика и пользователя. Когда браузер,
используя HTTP, запрашивает CSP-страницу на Web-сервере, последний, в свою
очередь, запрашивает содержание страницы из базы данных Caché. Caché
обрабатывает запрос, динамически генерируя HTML-страницу и передавая ее
Web - серверу, который в свою очередь передает ее браузеру.

При создании CSP-файла используются:

1. Выражения;
2. Скрипты, выполняющие код Caché или код JavaScript;
3. Методы стороны сервера;
4. CSP-теги;
5. Стандартные теги HTML.
Теги CSP

Теги Caché имеют следующий общий синтаксис:

<CSP:XXX …>

Где ХХХ – это имя тега. Как встроенные, так и заказываемые теги обеспечивают
разнообразные функциональные возможности.

 <CSP:Object>- связывает объект Caché с CSP-страницей;


 <CSP:Query>- выполняет из CSP-страницы предопределенный запрос и
именует результат;
 <CSP:Method>- создает метод при определении класса CSP-страницы;
 <CSP:If>- формирует содержание, основанное на условии;
 <CSP:Loop> - циклическая обработка фрагмента страницы;
 <CSP:While>- циклическая обработка фрагмента страницы.
 Web – формы
 Формы позволяют обеспечивать интерактивную связь сайта с
пользователем. Элементы форм (области редактирования текста, поля
ввода, меню) позволяют посетителям вводить различную информацию и
выбирать нужные опции. При добавлении элемента формы надо указать
его имя. Имена нужны только для различения элементов форм. Когда
пользователь вводит данные, соответствующему элементу формы
присваивается определенное значение. После щелчка на кнопке Submit
(запрос) имя элемента и его значение отсылается на сервер. Тег <FORM>
устанавливает форму на web- странице. Документ может содержать любое
количество форм, но одновременно на сервер может быть отправлена
только одна форма. По этой причине данные форм должны быть
независимы друг от друга. 
 Доступ к полям формы. Класс %CSP.Request
 При получении CSP-запроса CSP-сервер создает экземпляры класса
%CSP.Request, которые доступны через переменную %request. Каждая
форма имеет поля ввода, которые в соответствии со стандартом HTML
оформляются в виде: «имя/значение». Переменная %request позволяет
получить доступ к полю ввода формы по его имени. Например, для формы
с полями ввода и именами соответственно: ID, Fam, Im, переменная
%request позволит получить значения этих полей. Переменная %request это
объект со своими свойствами и методами, которые приведены в
следующей таблице:
 Таблица 1 – Свойства объекта %request.

Возвращаемое
Имя Функция Аргументы
значение
Число значений для
Count %Library.Integer Имя поля ввода (%Library.String)
заданного имени поля
Имя поля ввода (%Library.String),
Соответствует Извлекает данные, необязательный второй
Get
аргументу посланные в запросе параметр задает значение по
умолчанию для поля
Kill Нет Удаляет поле ввода Имя поля (%Library.String)
из объекта %request
Перебрать все поля
формы, вернуть имя Имя предыдущего поля или «»
Next %Library.String
следующего поля (%Library.String)
формы
26.Использование JavaScript-кода и кода HTML в коде Caché Object

Script.

Код, написанный на JavaScript, может встраиваться в HTML документы


несколькими способами:

• между парой тегов <script> и </script>;

• из внешнего файла, заданного атрибутом src тега <script>;

• в обработчик события, заданный в качестве значения атрибута тега HTML,


такого как, например onclick или onmouseover;

• как тело URL-адреса, использующего специальный спецификатор


псевдопротокола javascript:.

Клиентские JavaScript сценарии представляют собой часть HTML-файла и


находятся между тегами <script> и </script>:

Язык Caché Object 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.

Cache работает с html файлами позволяя редактировать их.

27.Установление связи с базой данных.

В Caché реализован специальный механизм Caché SQL Gateway, позволяющий


обращаться к внешним источникам данных посредством ODBC. Таким образом,
этот механизм позволяет программам на языке Caché Object Script осуществлять
обращение к внешним реляционным базам данных. В отличие от Caché ODBC
(JDBC и др.), предоставляющих доступ к данным Caché для внешних
реляционных источников, SQL Gateway – это средство, позволяющее
взаимодействовать с реляционными источниками данных в противоположном
направлении.

Поскольку для связи с внешними реляционными источниками данных Caché


SQL Gateway использует ODBC, необходимо создать и/или настроить источник
данных ODBC (DSN) соответствующей “внешней” базы данных. Для этого
необходимо выполнить следующие действия (или убедиться, что они уже
выполнены):

1) Инсталлировать драйверы ODBC соответствующей СУБД. Некоторые


драйверы, например MS SQL Server как правило, уже присутствуют в Windows.
Некоторые, такие как MSM SQL, MySQL устанавливаются отдельно. Некоторые
(Oracle, Caché) инсталлируются при установке клиентской части СУБД.

2) Создать источник данных (DSN) из программы настройки ODBC. Например,


в ОС Windows 2000 эта программа доступна из меню Windows: Start->Settings-
>Control panel->Administrative tools->Data Sources (ODBC) (Рис.1).
Рекомендуется для работы через SQL Gateway создавать системные DSN.

3)  После создания DSN появится диалог конфигурации, который специфичен


для каждого отдельного драйвера. Как правило, необходимо указать имя
сервера, имя пользователя и пароль, и некоторые другие настройки, например,
БД по умолчанию.

28.Экспорт/Импорт данных из/в Caché.


Импорт и экспорт данных — это автоматический или полуавтоматический ввод и вывод
наборов данных между различными программными приложениями. Он включает «перевод»
из формата, используемого в одном приложении, в формат, используемый другим, когда
такой перевод выполняется автоматически через машинные процессы, такие
как транскодирование, преобразование данных и другие. Истинный экспорт данных часто
содержит данные в необработанных форматах, которые в противном случае не могут быть
прочитаны конечными пользователями без пользовательского интерфейса, который был
разработан для их отображения[1] .
Импорт и экспорт данных разделяет семантическую аналогию с копированием и вставкой, в
которой наборы данных копируются из одного приложения и вставляются в другое. На самом
деле, разработка программного обеспечения за буфером обмена операционной системы (и
приложениями расширения буфера обмена) в значительной степени касается многих деталей
и проблем преобразования и транскодирования данных, чтобы предоставить конечному
пользователю иллюзию лёгкого копирования и вставки между любыми двумя приложениями,
независимо от того, насколько они внутренне различаются. Команда «Сохранить как» во
многих приложениях требует почти такой же разработки, когда файлы сохраняются в другом
формате.
Способность импортировать и экспортировать данные (или отсутствие такой возможности)
имеет большие экономические последствия, потому что это может быть ресурсоёмким для
ввода данных неавтоматизированными способами (такими как повторный ввод вручную);
отсутствие взаимодействия между системами, неспособными к импорту или экспорту данных
между собой приводит к потере работоспособности, функционала и эффективности, как,
например, в мэшапах.
ИМПОРТ ЗАГРУЖАЕТ ФАЙЛЫ С ДАННЫМИ И ЭКСПОРТИРУЕТ ИХ В КАКОМ ЛИБО
ОБЩЕПРИНЯТОМ ФОРМАТЕ.

Вам также может понравиться