[Zope] When to use a relational database

Dieter Maurer dieter at handshake.de
Thu Feb 7 14:03:40 EST 2008


quizzical wrote at 2008-2-6 16:03 -0800:
> ...
>Apologies if this is a dumb question, I have had a good look through the
>archives and on the web. My question is basically about how to design a
>website. I really like the ease with which you can build applications in
>zope but I often see comments implying that in order to scale well one may
>want to use a backend relational datbase. I have also seen several comments
>to the effect that one should keep the state of a user session out of the
>ZODB. 
>
>I am slightly confused by this, I can't find any information which would
>help me decide what data would be better off in a relational database.

A relational database is good when you have large amounts
of strictly structured data -- e.g. millions of user records
where each user record has a fews fields with atomic datatypes.

The ZODB is good when you have weakly structured or unstructured data
and your write rate is not too high.

The ZODB uses an almost self describing format. Therefore, it can
store virtually everything, without any data model fixed beforehand.
However, this leads to high redundancy and efficiency loss.
This is not so problematic for unstructured or semi structured
content -- as there is no much structure to exploit.
It is also mot problematic for small amounts of data (then optimality
is not an issue). But for large amounts of highly structured data,
you can gain a lot with respect to space and time efficiency from
a relational database.



-- 
Dieter


More information about the Zope mailing list