Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)

From: Marshall <marshall.spight_at_gmail.com>
Date: 2 Jun 2006 21:07:56 -0700
Message-ID: <1149307676.784689.167570_at_c74g2000cwc.googlegroups.com>


Sasa wrote:
> Marshall wrote:
> > There is a fundamental, foundational concept to grasp here,
> > that is easily obscured by the excessive verbiage. But
> > unless you get this foundational point, you won't be able
> > to follow the arguments of the c.d.t. people at all. So I'll
> > simply present it in isolation.
> >
> > A DBMS is not "storage." A DBMS is a system that manages
> > data, where "manages" describes a whole host of high level
> > facilities.
>
> So can you list some short but specific keypoints - what are these
> facilities?

The answer to this question begins with "structure, integrity, manipulation."

Structure is the least of these, but even here, the RM has significant advantages. The RM has a theoretical foundation, in the form of set theory and predicate logic. It also has mathematical formulas for eliminating schemas that are subject to update anomalies.

http://en.wikipedia.org/wiki/Database_normalization

It is hard reading, and you'll probably have to get further background info.

Integrity includes the ability to have the dbms automatically enforce declared invariants on the data. All that is necessary to have this is to state the invariant formally, in the language of the dbms. No if/then, no tracking down the various places relevant updates happen (or maintaing that, as new updates are added,) no translating a formal requirement into procedural code: you just state the invariant, and all updates that break the invariant are rejected.

Manipulation includes the "rich queries" you mentioned. One thing often underestimated is the importance of ad hoc queries due to ad hoc analysis needs. If your data is only available behind a programmatic interface, then any analysis you want to do means you have to write and compile code. You can do an amazing amount of analysis on a database by simply typing in interactive one-off SQL queries.

Notice how none of these things require persistence, and how they are are useful whether the data is long-lived or transient.

OOPLs have nothing to compare with any of these things.

Marshall Received on Sat Jun 03 2006 - 06:07:56 CEST

Original text of this message