Re: Objects and Relations

From: David BL <davidbl_at_iinet.net.au>
Date: 6 Feb 2007 03:41:15 -0800
Message-ID: <1170762075.576776.306090_at_s48g2000cws.googlegroups.com>


On Feb 6, 6:44 pm, "JOG" <j..._at_cs.nott.ac.uk> wrote:
> On Feb 6, 6:15 am, "David BL" <davi..._at_iinet.net.au> wrote:
>
>
>
>
>
> > On Feb 6, 10:19 am, "JOG" <j..._at_cs.nott.ac.uk> wrote:
>
> > > On Feb 6, 1:01 am, "David BL" <davi..._at_iinet.net.au> wrote:
>
> > > > On Feb 6, 5:01 am, Kenneth Downs <knode.wants.t..._at_see.sigblock>
> > > > wrote:
>
> > > > > Walt wrote:
>
> > > > > >> > All databases, RM or otherwise, are about record-keeping. That is
> > > > > >> > their purpose.
>
> > > > > >> I presume by "keeping" you mean persistence. By "record" do you mean
> > > > > >> a tuple of a relation? If so I don't agree. An RDB is about "record
> > > > > >> keeping", but not an OODB (used appropriately).
>
> > > > > > I don't think the term "record-keeping" is closely related to the term
> > > > > > "record" as you assert above.
> > > > > > Record-keeping predates electronic computers.
> > > > > Yup. I abandoned this thread as soon as I saw that it was never going to be
> > > > > about down-to-earth ideas.
>
> > > > Down to earth as in "muddy"? :)
>
> > > > Could you please define in more detail what "record keeping" means?
> > > > For example does it include the recording of large amounts of text?
>
> > > > I think your characterisation of database versus programs (record
> > > > keepers versus taxis) has to do with persistent state versus transient
> > > > state, or perhaps disk versus memory+CPU rather than with the
> > > > distinction between relational (state) and OO (state).
>
> > > > I note that systems based on RM provide the means to manipulate the RM
> > > > state. So it doesn't seem quite right to say that RM is about
> > > > passive state and OO is about active state. Remember as well that
> > > > most objects don't host their own threads and therefore are passive
> > > > (meaning they only do things when a thread calls their methods).
>
> > > > I claim that the distinction between OO and relational has a lot to do
> > > > with the question of whether entities are inside or outside the
> > > > abstract computational machine, noting that 1) secondary storage is
> > > > part of the machine so persistence has nothing to do with it, and 2)
> > > > at the system level both relational and OO based approaches are
> > > > "active" so that has nothing to do with it either.
>
> > > Then it seems that what you are essentially saying here is - OO
> > > functions at the conceptual layer, and RM at the logical layer. This
> > > is not really breaking news
>
> > Why would you want to replace the comparatively precise criterion of
> > whether an entity is inside or outside the abstract machine, with
> > fuzzy terms like "conceptual layer" and "logical layer"?
>
> Because they are not fuzzy at all, and are terms that have been
> refined over 40 years. Why would you think that?

If these terms are in fact precise then I apologise. When I first read your post I (briefly) googled these terms without finding definitions that satisfied me. Searching for both "conceptual layer" and "logical layer" only returned 278 hits.

The link below referred to a mapping between conceptual and logical layers, and made me think about some kind of O/R mapping between them. However I think the whole idea of an O/R mapping is a nonsolution  for a non-existent problem (the so called impedance mismatch between OO and RM).

http://www.dmreview.com/editorial/newsletter_article.cfm?articleId=1031010

> The conceptual layer
> deals with entities, whereas the logical layer deals with
> propositions, communicated statements of fact.

Ok that fits in with what I read here

http://www.sapnetweavermagazine.com/archive/Volume_03_(2007)/Issue_01_(Winter)/v3i1a05.cfm?session=

I've haven't read anything as yet that suggests that the conceptual layer is by definition to do with entities that are strictly inside the Abstract Computational Machine (ACM).

> And we all already know
> that this boundary is confused by weak software developers.
> Now it is fine to state definitions in a new way, but then why not
> just say that is what one is doing at the outset?

Are you sure they are equivalent?

IMO an OO system must not at any time try to directly represent models of entities outside the ACM - even under some O/R mapping from an associated RDB. This is quite restrictive! Instead the OO system must (at all levels of the OO decomposition) only concern itself with the building of a working device (the ACM). Received on Tue Feb 06 2007 - 12:41:15 CET

Original text of this message