quit
Версии системы и поддерживаемые платформы
На рынке высокопроизводительных СУБД Cache' позиционируется как eDBMS, т. е. как СУБД, ориентированная на работу в сетях Internet/Intranet. Разработчику предоставляется обширный набор функций, реализующих большинство стандартных протоколов Internet, таких как SMTP, HTTP, POP3 и др. Кроме этого, разработчику предоставляется развитая технология разработки динамических web-приложений CSP. Поэтому при установке проверяется наличие web-сервера и производится автоматическое конфигурирование подсистемы.
Описание поддерживаемых СУБД Cache' платформ, языков, web-серверов и браузеров для Cache' версии 4.1.1. приводится в последующих таблицах.
Таблица 2. Поддерживаемые платформы.
Платформа | Операционная система | Unicode | ODBC | SQL Шлюз | Notes |
Alpha | OpenVMS 7.2, 7.3 | + | |||
Alpha | Tru64 UNIX 5.1 | + | |||
HP | HP/UX 11i | ||||
IBM P Series | AIX 4.3.3, 5.1 | + | |||
Red Hat Linux (Intel) | 7.1 | + | + | ||
Sun Solaris (SPARC) | 2.8 | + | 64-bit only | ||
SuSE Linux (Intel) | 7.1 | + | + | ||
Windows 95, 98, ME, NT 4 (SP4, SP5, SP6), 2000 | + | + | + |
СУБД Cache' поддерживает множество национальных языков (Таблица 3). Кроме поддержки языков, специальная утилита CNLS позволяет создавать собственные таблицы трансляции из одного набора символов в другой, задавать различные способы вывода непечатных символов и предоставляет ряд других возможностей. При инсталляции под ОС Windows Cache' автоматически определяет региональные настройки операционной системы и устанавливает соответствующую схему локализации. Также предоставляется возможность установки Unicode (16bit) версии Cache'.
Таблица 3. Поддерживаемые национальные языки.
Язык | 8-Bit набор символов | Локализация утилит |
Чешский | Latin 2 | - |
Голландский | Latin 1 | + |
Английский | Latin 1 | + |
Французский | Latin 1 | + |
Немецкий | Latin 1 | + |
Греческий | Latin G | - |
Иврит | Latin H | - |
Итальянский | Latin 1 | + |
Японский | N/A | + |
Корейский | N/A | + |
Польский | Latin 2 | - |
Португальский | Latin 1 | + |
Русский | Latin C | + |
Испанский | Latin 1 | + |
Для русского языка поддерживаются обе таблицы кодировок: Windows-1251 и ISO 8859-5.
СУБД Cache' поддерживает архитектуру, в которой web-сервер и сервер БД могут находиться на разных компьютерах.
Таблица 4. Поддерживаемые Web-серверы
Web-сервер | Платформа |
Microsoft IIS / PWS | Windows 95, 98, NT, 2000 |
Apache 1.3.12 | Alpha Tru64 UNIX |
Netscape / Sun iPlanet 4.0 | Alpha Tru64 UNIX |
Compaq Secure Web Server 1.0 | Alpha OpenVMS 7.3 |
CSP поддерживает следующие браузеры:
Таблица 5. Поддерживаемые браузеры
Web браузер | Версия |
Netscape | |
Internet Explorer |
Как было сказано ранее, Cache' может выступать в роли шлюза к реляционным базам данных (РБД). Официально поддерживаются следующие РБД:
Таблица 6. Поддерживаемые РБД
РБД | Версия |
Microsoft SQL Server | 7.0 |
Oracle | 8 |
При инсталляции Cache' происходит автоматическая проверка настроек операционной системы и производится необходимое конфигурирование ресурсов. Так, к примеру, производится автоматическое определение web-сервера, конфигурирование CSP-компонентов и создание необходимых виртуальных директорий.
Наличие Web-сервера не обязательно. Для тестирования CSP-приложений можно воспользоваться встроенным в СУБД Cache' web-сервером (по умолчанию порт 1972). Однако использование встроенного web-сервера для реальной работы не рекомендуется.
![]() |
После успешной установки Cache' на панели задач MS Windows появится иконка Cache'-куба. С помощью меню, раскрываемого нажатием правой кнопки мыши на Cache'-кубе, можно получить доступ ко всем утилитам СУБД Cache':
Рис.8. Меню Cache'-куба
Описана лишь малая часть того, что реализовано в Cache'. Кроме описанных интерфейсов, Cache' предоставляет ODBC - и JDBC-драйверы для представления данных из СУБД Cache' в виде реляционных таблиц и работы с ними.
СУБД Cache' предоставляет стандартные ActiveX-компоненты, которыми можно воспользоваться при создании пользовательского приложения в среде Visual Basic. Кроме этого, предоставляется мастер создания форм Cache' Form Wizard для облегчения разработки пользовательских форм в среде Visual Basic.
В Cache' реализованы интерфейсы CALLIN/CALLOUT, предназначенные для прямого вызова функций СУБД Cache' из С-программ и вызова функций операционной системы из Cache', Также предоставляется интерфейс для работы с функциями DLL-библиотек.
Cache' предоставляет модуль интеграции со средой проектирования информационных систем Rational Rose. При этом UML-диаграмму классов можно экспортировать напрямую в БД Cache', причем классы, а также типы данных свойств на диаграмме будут полностью соответствовать созданным классам и свойствам классов Cache'.
Разработчику предоставляется также возможность создания описаний классов Cache' на языках Java или С++ и дальнейшей работы с методами и свойствами классов Cache' так, как если бы эти классы были реализованы на Java или С++.
Сейчас уже нет необходимости доказывать преимущества применения XML. Такие задачи как обмен информацией между различными информационными системами, новые протоколы роуминга (например, TAP3), разработка приложений мобильной коммерции решаются с помощью XML. Следовательно, современная СУБД должна предоставлять необходимые механизмы работы с XML.
В Cache' реализована полноценная поддержка XML. Cache' не хранит XML-документы в текстовых файлах, Memo-полях или реляционных таблицах. Полная поддержка Cache' объектной модели позволяет автоматически трансформировать сложные XML-документы в классы объектов Cache'. Из описания классов объектов Cache' можно получить DTD, а сами объекты Cache проецируются в XML-документы. Для создания собственного импорта XML можно воспользоваться SAX-парсером. С помощью Cache' Server Pages можно генерировать не только HTML страницы, но и страницы с XML-содержанием.
Таким образом, появляется возможность использовать XML с Cache' как для обмена информацией между различными информационными системами, так и для реализаций приложений электронной и мобильной коммерции (WAP).
Разработчики крупных приложений (банковские системы, автоматизированные системы расчетов, системы управления предприятием) предпочитают использовать промышленные СУБД. Cache' обладает всеми характеристиками промышленной системы: высокой производительностью, надежностью, масштабируемостью, открытостью и переносимостью. Ядро Cache' - высокопроизводительный Многомерный сервер данных, ориентированный на обработку транзакций. Для обеспечения надежности в Cache' предусмотрены такие механизмы как журнал до и после записи, теневой сервер, репликация, "горячее" резервное копирование и т. д. Протокол Распределенного Кэша - позволяет строить действительно масштабируемые решения на базе Cache'. Протокол Распределенного Кэша (Cache' Distibuted Cache' Protocol) - уникальная сетевая технологи фирмы InterSystems, которая распределяет базу данных по сети в зависимости от работы приложений, оптимизируя производительность и пропускную способность сети. Cache' - "открытая" система, поддерживается множество интерфейсов к средствам проектирования и разработки приложений. Cache' работает практически на всех популярных платформах с наиболее распространенными Web-серверами. При этом обеспечивается полная переносимость приложений с платформы на платформу.
Еще один важный показатель как для производителя, так и для потребителя системы на базе СУБД - стоимость решения. Этот показатель складывается из стоимости разработанной системы, стоимости аппаратного обеспечения, на котором будет работать система, СУБД, стоимости внедрения и сопровождения. Решения на базе постреляционной СУБД Cache' выигрывают по стоимости у конкурентов по всем показателям. Разработчик может быстро и качественно создать систему на базе Cache' за счет поддержки объектно-ориентированного подхода и интеграции со средствами проектирования и разработки, СУБД менее требовательна к аппаратному обеспечению: нужной производительности можно добиться на более дешевом сервере, гибкая лицензионная политика позволит снизить стоимость самой СУБД. Решения на базе СУБД легче сопровождать - система очень надежна и не требует сложного администрирования, кроме этого прекрасно работают и мировой, и российский центр технической поддержки.
Один из партнеров InterSystems - разработчик АСР для операторов сотовой связи выиграл тендер у конкурентов, которые предлагали решение на Oracle, после того как был выполнен пилотный проект. В этом проекте в Cache' и Oracle были загружены данные о звонках, и измерялась скорость закрытия периода для загруженных тестовых данных. Хранимая процедура на Cache' работала 40 минут, на Oracle - 2 часа. При этом Cache' работала на сервере стоимостью 5 тысяч $, а Oracle на сервере Sun за 50 тысяч $.
Таким образом, решения на базе Cache' позволяют разработчикам ПО получить дополнительную прибыль от разработки, а потребителям – получить высокопроизводительные решения, сэкономив на приобретении и эксплуатации приложения.
Заключение
Объектно-ориентированные базы данных вообще и, в частности, СУБД Cache' становится все более популярной в России. На продуктах InterSystems Corp. реализованы банковские системы, автоматизированные системы расчетов для предприятий электросвязи и операторов сотовой связи, системы управления предприятиями, тарификационные системы, Web-порталы и другие интересные приложения. Сегодня есть все предпосылки для роста популярности постреляционной СУБД Cache' в России: промышленная СУБД, поддерживающая объектную модель, предоставляющая разработчику свободу в выборе средств проектирования и разработки, интегрированная с технологией разработки Web-приложений, позволяет быстро создавать надежные высокопроизводительные решения.
Приложение
В прикладных системах, разработанных с применением объектно-ориентированной технологии, требуется использование широко распространенного. Имеющегося в реляционных базах данных инструментария генерации отчетов и анализа данных. А значит, возрастают требования к объектно-ориентированной базе данных по поддержанию структурированного языка запросов – SQL. Следовательно, объектно-ориентированная база данных должна поддерживать SQL для обеспечения выполнения запросов по стандарту, поддерживаемому многими инструментальными средствами.
С другой стороны, разработку прикладной программы не всегда надо начинать с нуля. Достаточно часто, чтобы сделать возможным объектно-ориентированное перепроектирование, необходимо сохранить имеющиеся структуры и суметь применить существующие приложения. При этом предъявляются высокие требования к системе базы данных, подразумевающие несопряженное с потерями использование имеющихся определений таблиц и эффективное выполнение SQL-доступа приложений обработки транзакций.
Благодаря единой архитектуре данных Cache’ предлагает насколько простое, настолько и убедительное решение для обоих взглядов на проблему: оно соединяет старую и новую среду, совмещая определение классов в виде объектно-ориентированных сущностей с их определением в виде реляционных таблиц.
Моделирование может осуществляться в обеих парадигмах, что имеет свои преимущества. Новые разработки будут объектно-ориентированными, однако в них также будет:
- автоматически поддерживаться SQL для доступа к данным с помощью основанных на SQL инструментов;
- импорт описаний ранее существовавших реляционных таблиц с помощью языка Data Deinition Language (DDL) для поддержки старых SQL-приложений.
При использовании реляционных прикладных программ в Cache’ во многих случаях наблюдается значительный рост производительности системы, причину которой следует искать в улучшенной способности многомерного ядра базы данных обрабатывать транзакции. Но прежде всего миграция делает возможным использование объектной технологии для новых модулей или прикладных систем, включая объектно-ориентированный доступ к уже имеющимся базам данных.
В рамках единой архитектуры данных иерархия класcов Cache’ моделируется неодинаково: используя Cache’Objects, мы оперируем объектами и, напротив, при использовании Cache’SQL – с реляционными таблицами. Несмотря на это, речь идет о едином определении данных и об идентичных, однократно сохраняемых данных.
С точки зрения объктно-ориентированной технологии мы видим экземпляры класса, в реляционном отображении данные классов становятся реляционными таблицами. Строки которых соответствуют отдельным экземплярам, а столбцы – свойствам объектов.
Объектное понятие | Реляционное понятие |
Класс | Таблица |
Экземпляр | Строка |
Идентификатор объекта (OID) | ID-столбец в виде первичного ключа |
Свойство-константа | Столбец |
Ссылка на хранимый объект | Внешний ключ |
Встраиваемый объект | Индивидуальные столбцы |
Коллекция-список | Столбец с полем-списком |
Коллекция-массив | Подтаблица |
Поток данных | BLOB |
Индекс | Индекс |
Запрос | Хранимая процедура или представление |
Метод класса | Хранимая процедура |
Итак, чтобы не быть голословными, смоделируем небольшой объектно-ориентированный аналог реляционной базы данных – учебного примера.
В реляционной модели есть 5 таблиц – Офисы, Продавцы, Клиенты, Товары, Заказы.
Следовательно, нам необходимо определить 5 соответствующих классов, причем каждый столбец из таблицы будем определять как соответствующее свойство класса.

Выбрав новый пакет Votincev создаем класс Client.

При этом выбираем тип класса – Persistent. После того, как определили класс, определяем каждое свойство класса. Например, Наименование (Naimenovanie), выбираем Тип - %Library. String:

Таким же образом создаем все остальные классы с их соответствующими свойствами. Для того, чтобы показать связи реляционных таблиц необходимо просто при определении свойства класса в качестве Типа указать на связь с другим свойством. Например, для того, чтобы указать на связь свойства Prod_Id класса Offices с соответствующим свойством класса Prodavcy в качестве типа указываем на таблицу Votincev.Prodavcy:

И так далее, пока полностью не опишем все классы, свойства. При определении свойств также можно указывать, является ли данное свойство обязательным, однозначным и т. п. Все указанные действие осуществляются в Cache’ObjectArchitect, причем после определения класса его нужно компилировать. Вот как будет выглядеть класс Продавцы:

Для того чтобы увидеть соответствующее реляционное представление данной базы данных – открываем Cache’SQL-менеджер. Разработчики и администраторы могут использовать его для проверки определений таблиц, администрирования пользователей SQL, создания индексов, представлений, импорта и экспорта данных. В древовидной структуре в левой части можно выбрать Таблицы для просмотра всех таблиц, определенных в текущей области. SQL-менеждер предлагает следующие возможности, связанные с SQL-доступом:
Вы можете видеть данные в типичном табличном представлении.
Вы можете просматривать все свойства таблицы, такие как триггеры, индексы, хранимые процедуры, и информацию компилятора.
Панель Кэшированные запросы показывает все ODBC-запросы, кэшированные к этому времени, и позволяет вам просматривать их и редактировать.
Панель Роли выводит список определенных в системе ролей и позволит его отредактировать.
Панель Пользователи позволяет управлять пользователями в системе. Вы можете устанавливать их привилегии и разрешать доступ к таблицам и ролям.
Панель Виды открывает список представлений таблиц.
С помощью двух мастеров вы можете легко экспортировать и импортировать данные через ASCII-файлы.
Особый интерес представляет пункт меню Связать таблицу в меню Файл: он позволяет связывать таблицы Cache’ с таблицами, хранимыми в других реляционных азах данных, и получать к ним доступ из Cache’ObjectScript.

Далее можно работать с базой данных как с реляционной базой данных, используя язык SQL. Cache’ поддерживает все элементы ANSI-стандартов. Они подразделяются на три основные области: DQL для запросов к данным, DML для обработки данных и DDL для определения структуры данных. Кроме того, имеются TCL для управления транзакциями, DCL, регулирующий доступ к данным и пользовательские права доступа к ним.
Рассмотрим, например, запрос select * from Votincev. Tovary, при этом видно, что при указании таблицы (класса), сначала необходимо указать пакет (Votincev), в который и был прописан соответствующий класс:

И еще пример команды INSERT:

Реализация SQL в Cache’ предлагает целый ряд расширений по отношению к ANSI-стандарту. Данные расширения поддерживают интеграцию Cache’Objects и Cache’SQL, а также привязку к Cache’ObjectScript.
В эти расширения подпадают следующие категории:
- Дополнительные операторы Cache’(=*, ->, ?, [, &, ! и т. п.);
- Поля-списки;
- Соединения (внешнее соединение (One-Way Outer Join) и неявное соединение (Implicit Join));
- Ссылки (отношение между таблицами, при котором поле ссылающейся таблицы содержит первичный ключ (ID) записи данных таблицы, на которую она ссылается);
- Отношения зависимости (связь между таблицами, в которой строки одной таблицы (подтаблицы) своим существованием зависят от строк другой таблицы (родительской), т. е. строки родительской таблицы имеют отношение 1:n к строкам подтаблицы).
Для того, чтобы упростить разработку прикладных систем баз данных, Cache’ поддерживает встраивание SQL в методы и программы.
Таким образом, на конкретном примере, было рассмотрено создание объектно-ориентированной базы данных на основе ее реляционного аналога, и продемонстрирована работа с этой базой в привычном для всех реляционном представлении, с помощью языка SQL, однако при этом наблюдался значительный рост производительности системы, причина которого – улучшенная способность многомерного ядра базы данных обрабатывать транзакции.
Список литературы
1. В. Кирстен, М. Ирингер и др. "СУБД Cache'. Объектно-ориентированная разработка приложений", Питер, 2001.
2. "Стандарт систем управления объектными базами данных ODMG-93", СУБД №01/1996.
3. Материалы сайта http://www. intersystems. ru/
4. Постреляционная технология Cache' для реализации объектных приложений. - М, МИФИ, 2001
5. Материалы Конференция разработчиков "Cache' - Промышленные информационные технологии" http://www. itfond. ru/.
6. Данные в языках программирования. Абстракция и типология: Сб. статей; Пер. с англ. / Под ред. . — М.: Мир, 1982.
7. "Системы программирования баз данных и знаний. — Новосибирск: Наука; Сиб. отд-ние, 1990.
8. Язык описания данных КОДАСИЛ: Пер. с англ. /Под ред. и с предисл. и . — М.: Статистика, 1981.
9. ANSI NCITS 331.1-1999, SQLJ - Part 1: SQL Routines using the Java Programming Language, 1999.
10. Atkinson M., Bancilhon F., DeWitt D., Dittrich K., Maier D., and Zdonik S. The Object-Oriented Database System Manifesto. Proc. of Deductive and Object-Oriented Databases, Kyoto, Japan, December 1989. (Есть русск. пер.: . Манифест объектно-ориентированных баз данных // СУБД№4. - С. 142-155.)
11. Bierman G. M. Using XML as an Object Interchange Format. Department of Computer Science. University of Warwick. May 17, 2000. http://www. odmg. org/library/readingroom/oifml. pdf.
12. Extensible Markup Language (XML) 1.0. W3C Recommendation lO-February-1998. http://www. w3.org/TR/1998/REC-xml/.
13. Object Management Group. The Common Object Request Broker: Architecture and Specification. OMG Document Number 91.12.1, December 1991.
14. Stonebraker M. et al. Third-Generation Data Base System Manifesto. Proc. IFIP WG 2.6 Conference on Object Oriented Databases, Windermere, England, July 1990. (Есть русск. пер.: и др. Системы баз данных третьего поколения: Манифест // СУБД№2. - С. 143-158.)
15. The Object Database Standard: ODMG-93. Edited by R. G.G. Cattell. Morgan Kaufmann Publishers, 1994.
16. The Object Database Standard: ODMG-93 (Release 1.2). Edited by R. G.G. Cattell. Morgan Kaufmann Publishers, 1996.
17. The Object Database Standard: ODMG 2.0, R. G.G. Cattell and D. K. Barry. Morgan Kaufmann Publishers, Inc., 1997.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |



