[Zope] [OT] Re: ZOPE IN WINDOWS, ANY WARNINGS I SHOULD KNOW? .RE: [Zope] crystal reports

Terry Hancock hancock@anansispaceworks.com
Fri, 27 Jun 2003 13:40:27 -0700

On Friday 27 June 2003 09:44 am, Aurélien Campéas wrote:
> Le jeu 26/06/2003 à 23:43, Dieter Maurer a écrit :
> > A relational database essentially supports a single data type:
> > a two dimensional table. 
> hmmmmph ! you are not serious, are you ?
> I don't know of any RDBMS which doesn't support primitive types (int,
> float, bool, char, string).

What Dieter should have said is "one data structure" -- the components
are indeed different types, but the traversability of the structure is
limited to the table design.

He's right about this, but I assert that that is a *strength* of RDBMs, as
much as it is a weakness.  It is this simplicity that defends the data from
being irrevocably connected with the code that processes it.

OOP insists on tightly binding code and data into atomic "objects". That's
in fact the whole point of OOP.  And it is a really nice idea with loads
of useful applications.  But it isn't for *everything*.

In the long run, programming methods will change and other paradigms
will come out, but the basic structure behind, say, a library catalog or a
customer database is not going to change!  It's like ASCII or the concept
of text files themselves -- it's just so dumb simple that it doesn't need
re-thinking every few years the way programming techniques do.

As for "outer joins" being complicated -- that's a programming problem,
not a structural property of the database itself.  It is that way precisely
because it *isn't* object-oriented.

> > The ZODB supports an openly extensible
> > set of data types. 
> What is more extensible that the combination of primitives types +
> relations + inclusion constraints ? 

Well, objects are more flexible -- you can include code unique to the
object, mappings (M:M, M:1, 1:M), and all kinds of other structures.

Which is terribly useful, but can also be a little too much rope.

> Lacks encapsulation, inheritance, as in OO ? Hopefully no serious DB
> backend provides true OO semantics since those don't exist (OO semantics
> are really defined at the level of the language itself). Relational
> algebra on the contrary has solid grounds in set and predicate theory.
> You can map any "OO model" into the relational model. Not the other way
> around.

And that's why people like the OO method -- they don't have to go through
the hoops involved in representing the OO model in relational terms. Which
does indeed make the front end code more complicated.

> > This might be considered "less straightforward
> > to understand". It definitely is not a flaw.
> The flaw lies in this fact : ODBMS are really hierarchical DBMSes, like
> the ones of the 60's and 70's that the relational model was supposed to
> help throw out of the window.
> That's not to say ZOBD isn't neat and usefull, but please. I just hate
> when some knowledgeable person spreads FUD on those topics.

Yeah, that was pretty much my reaction.  ZODB is actually great,
and the point of my original post was that it was very appropriate
for the needs of the original poster.  But it is *not* a panacea -- there
are still plenty of problem domains for which RDBMs remain superior,
and I was outlining where I personally felt the boundaries lay.


Terry Hancock ( hancock at anansispaceworks.com )
Anansi Spaceworks  http://www.anansispaceworks.com