Архитектурные особенности постреляционной СУБД Cache'
Андрей Грачев, InterSystems
СУБД Cache’ является постреляционной системой управления базами данных.
Отнесение СУБД к реляционной, иерархической или к другому типу производится на основе той модели данных, которая поддерживается на концептуальном или логическом уровне, то есть той моделью данных, с которой работает программист-разработчик. Например, впрочем, несколько упрощая реальную картину, реляционная СУБД должна поддерживать работу в терминах отношений и основываться на реляционном исчислении. Проще говоря, реляционная СУБД должна реализовывать один из стандартов языка SQL.
СУБД Cache’ основывается на архитектурных решениях, которые, с одной стороны, позволяют в полном объеме поддерживать и реализовывать реляционную модель (в том числе, стандартный диалект SQL), а, с другой стороны, обеспечивают и другие модели доступа - объектную и иерархическую. Причем все три модели (реляционная, объектная и иерархическая) являются равноправными и позволяют работать с одними и теми же данными.
Наличие равноправных моделей данных в Cache’ обусловлено основной архитектурной особенностью СУБД Cache’ - использованием в качестве физической модели хранения данных сбалансированного дерева (B+-tree). Иерархическая модель данных, реализованная в Cache’, практически один к одному соответствует внутреннему иерархическому представления, обеспечивая самую эффективную навигацию по данным.
Объектная модель реализуется на основе иерархической модели, которая позволяет достаточно эффективно реализовывать механизм наследования (используя естественную для иерархической структуры связь "родитель-потомок"). Причем методы класса (и, соответственно, методы хранимых объектов) привязаны не к программной реализации сервера БД, а хранятся как данные в самой базе данных и, вообще говоря, являются платформенно-независисмыми.
Наиболее распространенная реляционная модель представляется в СУБД Cache’ набором однотипных одноуровневых данных в иерархическом физическом представлении. Кстати, в подавляющем большинстве реализаций чисто реляционных СУБД используется или индексно-последовательный (ISAM) или прямой индексный (RSAM) способ хранения данных (что соответствует реализации реляционной модели "в лоб"), а для хранения индексов, использование которых необходимо для обеспечения нужной скорости работы, используются уже упомянутые сбалансированные деревья.
Такая архитектура СУБД Cache’ позволяет в полном объеме и эффективно реализовать все возможности современных реляционных СУБД.
Причем речь идет не только о стандарте языка SQL, но и о таких эксплуатационных и функциональных возможностях, как:
- распределенные базы данных
- управление размещением данных на разных устройствах
- архивирование и восстановление данных
- возможности по настройке производительности
- обеспечение горячего резерва
и т.д.
Таким образом, становится понятно, почему СУБД Cache’ считается постреляционной (а именно, за счет равноправной реализации трех моделе данных, в том числе, и самой популярной - реляционной) и каковы ее основные архитектурные особенности.