В полку NoSQL прибавление

25 марта 2011 г.

22 марта стартовал проект Globals. Запустила его компания Intersystems.

Что это такое

Возможно, кто-то из вас слышал о СУБД Cache, если нет — информацию можно почерпнуть на сайте компании разработчика.

В двух словах: Cache это СУБД, произошедшая из языка M(Mumps). Уникальная особенность языка MUMPS — глобальные массивы(globals). Эти массивы автоматически записываются на диск, без необходимости резервирования и адресации пространства для записи, относятся к иерархическим и разрежённым структурам по самой своей природе. В массивах может содержаться произвольное количество уровней иерархии(индексов), причём данные могут содержаться на любом из уровней массива. Индексом массива может быть любое корректное MUMPS выражение, результатом оценки которого может быть число, или строка символов. Подробнее здесь.
Так вот Cache это язык Mumps окруженный кучей всяких технологий.
Пример того, каким образом отображаются реляционные таблицы. Имеем две таблицы Счет и Операции, связанные внешним ключом:
Счет

НомерДата...
101/01/2011...
202/01/2011...
302/15/2011...
403/01/2011...
503/02/2011...


Операции
НомерНомерСчетаДата...
1101/01/2011...
2202/01/2011...
3302/15/2011...
4403/01/2011...
5503/02/2011...

в глобалах(globals) они будут хранится следующим образом
^Invoice(1)= «01/01/2011»
^Invoice(2)= «02/01/2011»
^Invoice(3)= «02/15/2011»
^Invoice(4)= «03/01/2011»
^Invoice(5)= «03/02/2011»
^Transaction(1,«invoice»,1)=" 01/01/2011"
^Transaction(2,«invoice»,2)=" 02/21/2011"
^Transaction(3,«invoice»,3)=" 02/25/2011"
^Transaction(3,«invoice»,4)=" 03/20/2011"
^Transaction(4,«invoice»,5)=" 03/21/2011"

Аналогичным образом обстоит дело и с хранением объектов.
Но вернемся к нашим баранам глобалам. Globals — это текущая версия СУБД Cache, в которой отсутствует большинство надстроек, но есть, это самое ценное, на мой взгляд, многомерная структура хранения и процедурный язык программирования для работы с ней. После установки занимает на диске ~55мб., учитывая, что 40 из них сразу резервируется по базу данных.

С чем его едят

Как заявляет производитель — Globals это бесплатная база данных для Java. Пока только для Java. Возможно, мы увидим реализацию для .Net, но это предположение, думаю всё будет зависеть от реакции рынка.

Идея проекта проста. На стороне Java мы работаем со сложными структурами данных, объектами, которые теперь можем хранить в БД, причем структура такого хранения может быть достаточно произвольной.
Пример(.zip-архив) на сайте проекта.

Итог

Для тех, кто давно использует Cache, появление Globals безусловно, станет подарком. Среди остальных найдутся те, кто станет использовать новую БД, и те кто скажет — «нас и тут неплохо кормят». В общем, решать Вам.

Теги: рубрика Программирование
  • Похожие статьи
  • Предыдущие из рубрики