характерной для современного бизнеса необходимости усложнять и часто вносить изменения в структуры данных, а также вследствие неприспособленности языка SQL для их "тонкой" обработки. Реализующие концепцию хранилищ (data warehousing) и выполняющие аналитическую обработку данных OLAP-системы не обеспечивают требуемой производительности при прохождении большого числа коротких транзакций в реальном режиме времени даже для нескольких пользователей. Фирмы Oracle, Informix, Sybase и Computer Associates предлагают покупателям системы, позволяющие хранить многомерные структуры данных, однако их ядра подобны имеющимся у реляционных БД. Хорошо известная технология многомерной обработки информации привела к созданию постреляционных СУБД (postrelational database), а в 1997 г. компания InterSystems анонсировала подобную систему под названием Cache, появившуюся уже в начале 1998 г. на российском рынке. Она включает следующие компоненты:
Транзакционное ядро с протоколом распределенного кэша, которое позволяет обрабатывать данные в виде многомерных массивов и управлять кэш-памятью, обеспечивая высокую производительность СУБД.
Надстройку над ядром, обеспечивающую доступ к данным с помощью языка SQL, на уровне объектов и путем прямого доступа, а также их сочетания. Следовательно, Cache отличается более высокой производительностью от объектно-реляционных СУБД. При обработке многомерных массивов постреляционной СУБД, называемых глобалями и являющихся единицами хранения данных, используется встроенный язык Cache Script для описания прямого доступа к последним. А язык запросов Cache SQL вместе со словарем данных позволяет создавать реляционные таблицы для сохранения данных. Существенно, что в такой таблице можно сохранить в ее глобали скомпилированные запросы, представляющие собой сгенерированный код на языке Cache Script.
Для описания логики приложений ИС в ядро встроен язык Cache ScriptObject, поэтому с данными можно работать как с кодом, что и делает систему Cache привлекательной для пользователей и разработчиков аналитических и экспертных систем. Кроме того, существует возможность обращения к данным из приложений на языках Java и Си++. Объектная надстройка Cache по существу является макроуровнем языка Cache Script. Такие свойства объектов, как наследование (в том числе множественное) и полиморфизм, реализуются Cache на собственных средствах, а словарь классов объектов позволяет создавать информационные системы различной степени сложности. Глобали БД хранят информацию о значениях свойств и параметрах, характеризующих их поведение, а сами методы работы с данными реализуются на языках Caсhe Script, Cache SQL и Cache ScriptObject, причем последний включает команды манипулирования объектами. Кроме того, объекты Cache можно использовать в программах, написанных на языках Си++ и Java.
Интерфейсы ODBC, Visual Cache и Weblink, поддерживающие стандартный API. Кроме того, у пользователей и разработчиков Windows- и Web-приложений имеется выбор описаний объектов на Java или Си++ и в виде элементов управления ActiveX, т. е. в излюбленной среде разработки. Интерфейс Visual Cache устанавливает связь между объектами системы Cache и языком разработки Visual Basic.
Протокол DCP (Distributed Cache Protocol), технология DNM (Dynamic Namespace Mapping) и интерфейс Weblink позволяют пользователям эффективно работать в сети благодаря управлению кэш-памятью, прозрачному доступу к сетевым БД и возможности выполнения Web-приложений.
В завершение описания нового продукта кратко охарактеризуем многомерную модель данных, краеугольным камнем которой является глобаль - многомерный массив с разреженной индексацией. Ее элементы - узлы определяют значения индексов, причем элементы могут быть пустыми (не содержащими данных), а индексы нет. Это указывает на аналогию с ключевыми полями в таблицах РСУБД.
На приведенном во врезке примере структуры данных СУБД Cache (с. 60) продемонстрирована замена нескольких реляционных таблиц одним многомерным массивом с хранимыми в нем реальными данными.
Таким образом, отмеченные достоинства продукта Cache говорят о возможностях создания постреляционных СУБД различного назначения, отвечающих требованиям современных ИТ. Так, для предприятий предназначена Cache Enterprise, для отделений - Cache Division, а для отделов, рабочих групп и индивидуального пользования - Cache Department, Cache Workgroup и Cache PC.
Cache
Коротко о продукте: СУБД Cache доступна в пяти конфигурациях: от Cache PC (для одного пользователя) до версии Cache Enterprise (для принятия решений в масштабе предприятия).
Системные требования: все СУБД Cache работают в ОС, Windows 95/98, NT, Digital Open VMS, IBM AIX, HP/UX, Digital Unix, Sun Solaris. Минимальная конфигурация аппаратной платформы - Intel 486 DX2-66 и 32 Мбайт оперативной памяти.
Цена лицензии: от 125 до 1100 долл. в расчете на одно РМ пользователя.
InterSystem, тел.: (095) 203-46-49.
Пример структуры данных СУБД Cach
Рассмотрим пример структуры данных, хранящей информацию о прокате спортинвентаря. Допустим, что из четырех видов оборудования клиент № 1 пользовался на протяжении месяца трижды роликовыми коньками и однажды ракеткой для тенниса, клиент № 2 - однажды лыжами и ракеткой, клиент № 3 - четырежды футбольным мячом. Эта структура в реляционном виде представлена таблицей, в которой по строкам - номера пользователей, по столбцам - виды инвентаря, а на перекрестьях - данные. При желании сохранить в РСУБД данные об использовании инвентаря по дням месяца необходимо сохранить набор таблиц, привязанных к датам. Тогда как в постреляционной СУБД Cache достаточно обойтись следующей структурой хранения данных:
"№1", "Роликовые коньки", "1/12/1998")=1 "3/12/1998")=1 "9/12/1998")=1 "Ракетка", "23/12/1998")=1 "№2", "Лыжи", 5/12/1998")=1 "Ракетка", 15/12/1998")=1 "№3", "Мяч", "5/12/1998")=1 "12/12/1998")=1 "19/12/1998")=1 "26/12/1998")=1