Hi,
Federico Heinz <fh...@vi...> wrote:
> How does ZODB compare exactly to Modeling? I've been trying to
> understand ZODB from its documentation, but I can't quite figure out
> whether it ZODB and Modeling are substitutes for one another, or whether
> they solve different problems and can be used together. At times, the
> ZODB docs seem to say that it's a O-O database engine in itself, at
> other times that it's an O/R mapper... I can't quite figure it out.
>=20
> Any experienced Zopers that can tell?
It's been a long time since I haven't seriously played with ZODB
internals, but I'll try to comment to the best of my knowledge.
ZODB *is* an OODB, not a RDBMS, that's sure. It currently offers:
- an object database (called Data.fs within zope),
- a base class, Persistence.Persistent, which is very good at observing
changes. It is very quick, since it's coded in C; the modeling's equivale=
nt
are CustomObject's method willChange() and the ObserverCenter.
- a transactional scheme
(see also the links at the end of the mail)
AFAIK there are currently two major problems with ZODB, depending on
your needs:
- complex relationships are not easily expressed (see
e.g. http://www.zope.org/Members/upfront/ZODBRelationships/FrontPage
and the related thread
http://mail.zope.org/pipermail/zodb-dev/2003-May/thread.html#4998)
- queries on objects are not easily done --you need an external product,
such as the ZCatalog in Zope, to achieve this. No need to say that if
you need to build complex queries, involving relationships, it can
quickly become a nightmare.
For a quick and complete overview of the ZODB, you can e.g. refer to Jim
Fulton's introduction paper at:
http://www.python.org/workshops/2000-01/proceedings/papers/fulton/zodb3.h=
tml
The introduction of the ZODB/ZEO Dev. Guide by A.M.Kuchling is also of great
interest:
http://www.zope.org/Wikis/ZODB/FrontPage/guide/index.html
Other related resources can be found at:
http://www.zope.org/Wikis/ZODB/FrontPage
BTW, I know that the Zope3 dev-team tries to address the problem,
although I've no idea on what, how, when, etc. You might want to search
the archives of zope3-dev; you can also check the Ape product
(http://hathaway.freezope.org/Software/Ape) from Shane Hathaway, for
additional info.
These were quite general comments, I hope they are informative
however...
-- S=E9bastien.
|