Zope использует объектную базу данных

В статье "Zope uses an object database" автор сравнивает объектную базу данных с реляционной.

Хранилище Zope использует высоко-масштабируемую объектную базу данных.

Большинство CMS стараются использовать стандартную реляционную базу данных в качестве backend. Zope всегда относился к хранилищу по другому. ZODB (Объектная База данных Zope) - является объектным хранилищем для хранения объектов Python. Python является основным языком программирования Zope. Использование объектного хранилища для программирования является прозрачным, поскольку все в Zope и Python является объектом.

Объектные базы данных по сравнению с реляционными базами данных

Работа с реляционной моделью требует большого знания о ваших данных и связях при проектировании приложения. Однако,  с развитием приложений, меняются и требования. Это означает, что ваша модель данных может меняться, и ваша база данных требует изменений в моделях и миграцию данных. Так как Python является объектно-ориентированным языком программирования, часто бывает трудно отобразить объектно-реляционную модель на реляционную базу данных. Это то место, где ORM помогает вам объединить мир RDBMS  с объектно-ориентированном миром.

В объектно-ориентированном мире легко изменить модель, потому что вы можете легко прикрепить или изменить атрибуты объектов. Объектная база данных сохраняет целые объекты, так что вы не обязаны сообщать хранилищу об изменениях объекта - объектная база данных сохраняет объекты автоматически. Zope, следуя этой парадигме, предоставляет встроенную объектную базу данных, ZODB.

Высокая масштабируемость

ZODB подходит как для малых, так и для больших объемов данных. Приложения на основе Zope, использующиеся на предприятиях, работают с сотнями гигабайт информации, хранимой в ZODB. Масштабируемость осуществляется на нескольких уровнях, либо через репликацию хранилища ZODB, либо распределение хранилища ZODB на нескольких серверах. Усилия и стоимость создания и поддержки большой установки ZODB меньше, чем других сопоставимых систем хранения. Более детальную информацию можно увидеть здесь: Zope is highly scalable .

ZODB является ACID compatible:

ZODB выполняет все свойства ACID. Определения свойств ACID:

Атомарность
означает, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной. Если программа делает много изменений, а затем происходит сбой, то база данных не будет частично изменена, потенциальные данные остаются в исходном состоянии, все изменения будут проигнорированы. Это плохо, но лучше чем частичное сохранение изменений,  из-за чего база данных может оказаться в противоречивом состояние.
Целостность
означает, что каждая транзакция выполняет корректное состояние базы данных. Некоторые базы данных, но не ZODB, предоставляют разнообразные проверки целостности, например, реляционные базы данных могут накладывать ограничения на тип столбца. Рассматриваемые более широко, атомарность и изоляция позволяют приложениям   поддержать целостность.
Изоляция
означает, что две программы или потока, запущенные в двух различных транзакциях не могут видеть изменения, сделанные друг другом, пока не завершат свои операции.
Долговечность
означает, что, как только транзакция будет завершена, то последующие нарушения не будут являться причиной потери или нарушения данных.

ZODB и RDBMS бок о бок

Хотя ZODB является первичным хранилищем Zope, вы можете также взаимодействовать со всеми известными базами данных либо непосредственно через SQL или ORM. Даже возможно хранить части данных ваших приложений в ZODB и других RDBMS. Нет никакого общего правила, использовать ZODB или же RDBMS. Можно сказать, что высоко структурированные данные с большим количеством связей лучше подходят реляционной базе данных, чем ZODB, которая больше подходит для неструктурированных данных с меньшим количеством связей между данными.

По материалам zope2.zope.org

Перевод КОМТЕТ komtet.ru

Вам также может помочь