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 17:02:22 -0700
Message-ID: <1149292942.082876.239590_at_u72g2000cwu.googlegroups.com>


Robert Martin wrote:
> On 2006-05-31 13:03:21 -0500, "Marshall" <marshall.spight_at_gmail.com> said:
>
> > A common misconception among application programmers
> > is that their technique of managing integrity with hand written
> > code protected by object encapsulation is the equal of
> > a centrally managed declarative integrity constraint, and
> > that it's merely six of one, half dozen of the other.
>
> Can you cite a source for this other than your own opinion?

This question surprises me. If I had said Java was higher level than assembly, would you have asked for a citation? How would I then respond?

Declarative integrity constraints are better than manually written procedural code for the reasons I list below, and others. If you want a citation, you might start with Date's "What Not How". It's thin but it gets the ideas across well enough.

> > In fact, the reality is that the declarative integrity constraint
> > is at a higher level of abstraction, and is at a much lower
> > cost to produce and maintain, and at a much lower risk
> > for error, than the hand-written code.
>
> I quite agree that a DBMS provides a certain level of security and
> integrity at a reasonable cost. That security is not perfect, and the
> integrity can be corrupted given sufficient effort and knowledge (or
> carelessness); but it remains true.

If by "not perfect" you mean it might fail if the computer was on fire, or if the programmer misunderstood the requirement and coded up something else, or because there might be a bug in the DBMS, then yes, it's not perfect. Otherwise, no. And again, it's not at the same level as manually written validity checks embedded in a class.

Marshall Received on Sat Jun 03 2006 - 02:02:22 CEST

Original text of this message