GinTon wrote:
> I have seen that for web applications is best far using a ODBMS:
>
> 1- Objects in an OODBMS can store an arbitrary number of atomic types
> as well as other objects. The fact that an OODBMS is better suited to
> handling complex,interrelated data than an RDBMS means that an OODBMS
> can outperform an RDBMS by ten to a thousand times depending on the
> complexity of the data being handled.

This is a bit off-topic, but I just wanted to share some experiences
that brought me to Django, a choice I'm very happy with so far.

Having spent more than 6 years with Zope and ZODB I'll have to say I'll
never touch an OODBMS ever again. I realize ZODB may be perfectly fine
for some situations, and there are other OODBMS's out there that are
probably better, but it struck me that a lot of what makes databases
cool are not yet solved well in Zope 2 / ZODB.  For example:

 * optimization tools
 * dependable recovery tools

and my favorite examples are inlined in responses below.


> 2- Data in the real world is usually has hierarchical characteristics.
> The ever popular Employee example used in most RDBMS texts is easier to
> describe in an OODBMS than in an RDBMS.

Django models are pretty darn straightforward. Seems like everyone in
our organization, even non-programmers, feel pretty comfortable
creating model files! (Not that we let everyone do it :)

At least with ZODB the concept of a schema is not that strong. You can
pretty much put anything you want into the database.  That sounds great
at first, but try debugging a program running on a 3-year-old database
with 5 different versions of the same object, all lacking different
attributes or storing differently typed versions of the same attribute.
True, you can solve this with migrations, but at least with an RDBMS
you can make the assertion that "all data is this way and will stay
this way" very easily, and being to make that assertion is essential to
achieve peace of mind.


> 3- A query language is not necessary for accessing data from an OODBMS
> unlike an RDBMS since interaction with the database is done by
> transparently accessing objects. It is still possible to use queries in
> an OODBMS however.

A QUERY LANGUAGE
You'll always want to search objects and RDBMSs are excellent at
indexing and searching/ querying. ZODB doesn't really deal with this;
you do that at the application level, which just isn't as robust or
efficient, and you'd want something as basic as this robust and
efficient. The best way to do cataloging for an OODBMS is probably to
store all the metadata in an RDBMS, and in this case I have to ask: so
why do you even need the OODBMS?
http://www.faqs.org/docs/ZopeBook/SearchingZCatalog.html


> 4- In a typical application that uses an object oriented programming
> language and an RDBMS, a signifcant amount of time is usually spent
> mapping tables to objects and back. This "impedance mismatch" is
> completely avoided when using an OODBMS.

This is taken care of by the ORM.


> 5- The user of an RDBMS has to worry about uniquely identifying tuples
> by their values and making sure that no two tuples have the same
> primary key values to avoid error conditions.

WELL-DEFINED REFERENCES
RDBMSs are all about references, and ORMs can map those to "pointers".
The identity of an object is well defined and understood. For Zope
programmers at least, storing pointers in ZODB was pretty much black
magic. Again, people would create application-level (products)
solutions for pointers, something that basic should really be rock
solid, well-defined, and implemented in the database itself. Oh the
horrors of past...


> 6- With an RDBMS it is not possible to model the dynamic operations or
> rules that change the state of the data in the system because this is
> beyond the scope of the database. With an OODBMS there is no disconnect
> between the database model and the application model because the
> entities are just other objects in the system.

It is pretty easy to store anything you want in a RDMBS, including
methods, just pickle it.  After all, that's what ZODB does.


Sorry for the Zope/ ZODB bashing. I guess I'm really *REALLY* just
hoping Django stays away from mimicing Zope too much; the mixing of
admin interface and model stuff is already too close for my liking
(polluting the schema, IMO).

To end on a good note: Zope's got good full-text indexers. I hope
Django can improve in this respect.


Rgds,
Bjorn


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers
-~----------~----~----~----~------~----~------~--~---

Reply via email to