[Zope3-Users] ZODB? PostgreSQL?

Hermann Himmelbauer dusty at qwer.tk
Mon Apr 23 09:59:19 EDT 2007


Am Montag, 23. April 2007 15:21 schrieb Ariel Eduardo Morales Malpica:
> Hi. I'm working on a project and I'm using ZODB but my mentor advices me
> that this model of database will be so big after one or two years. He
> consider that because ZODB works with transactions and it's added to
> ZODB frequently. My mentor mentioned me PostgreSQL, but I don't want it,
> because is better for me use Objet Oriented Database than Relational
> Database.
> I don't know what to do.
> Is true that ZODB can be so big in few years? I'm implementing a Project
> Management System and I fear that it could be a problem after a few
> years. (use ZODB).

I'm no expert, but I don't see how transactions would lead to a huge database.

AFAIK, ZODB allows you to keep old data to enable an undo mechanism. At least 
with Plone, I know that this is possible. However, if you want to get rid of 
this data, one can pack the database, which removes old data which is older 
than a certain time, so I don't see how the database would endlessly grow.

When it comes to differences between ZODB and RDBs, I'd say the following:

- In many situations you already have an existing RDB, so the decision has 
already been made.
- RDBs scale scale very well, so in case your application gets really huge, an 
RDB is an option. With Zope, you can easily cluster the application server, 
however the ZODB can not be distributed. (Maybe ZODB can even not make good 
use of multiple processor due to Python's GIL).
- In case of data models, which heavily rely on references (=relations), I 
think you are also better off with RDBs. 
- RDBs have several addons, such as backup strategies, report generation etc. 
etc.

If speed and the data model is not an issue, then I'd opt for ZODB.

If your professor insists on PostgreSQL, then think about zalchemy, which 
enables a (more or less) seamless integration between Zope3 and relational 
databases by utilizing an object relational mapper (ORM, especially 
SQLAlchemy).

Moreover there's also the possibility of a hybrid approach, where parts of the 
data are stored in the ZODB and other parts in a relational database.

Regards,
Hermann

-- 
x1 at aon.at
GPG key ID: 299893C7 (on keyservers)
FP: 0124 2584 8809 EF2A DBF9  4902 64B4 D16B 2998 93C7


More information about the Zope3-users mailing list