Re: Conceptual, Logical, and Physical views of data

From: Marshall Spight <marshall.spight_at_gmail.com>
Date: 8 Sep 2005 09:03:03 -0700
Message-ID: <1126195383.339135.108560_at_f14g2000cwb.googlegroups.com>


dawn wrote:
> Marshall Spight wrote:
> > dawn wrote:
> > >
> > > I do want navigational
> > > operators, however and that seems to go against relational theory. I
> > > want to "click on" a foreign key value and navigate to the referenced
> > > entity.
> >
> > Everything you can do with pointers you can do with relational
> > operators. Pointers are neither necessary nor sufficient for
> > "navigation"; that is, finding the data you want.
>
> In that case, the API I use could have what I want, even if behind the
> scenes it uses relational operators, which behind the scenes use
> navigation, right?

I don't see why you'd want to build an API on top of the relational operators. You couldn't make them any more powerful; you could only make them *less* powerful. What would be the advantage?

Everyone in the java world wants to put a "framework" or a customer API or some such between me and the database. I've yet to see one that didn't cripple my interactions with the db. I don't believe it's possible not to.

> > Addressing the data by its content, rather than by
> > its location,
>
> I'm all for addressing data by its content. I still don't know whether
> it is proper to call a foreign key a pointer or not, but it is surely
> data.

My position is that FKs are not pointers.

> > provides a proper superset of the
> > functionality of the navigational operators.
>
> Just to be sure I understand this last statement, what do you mean by
> "addressing data by its content, rather than by its location"?

You describe the data you want, and you get it. select model from cars where color = blue;

> Other than specifying a data source, what would be an
> example of addressing data by location?

The "*" operator in C. A Url. Bulk mail addressed to "occupant." :-)

> Do you consider a base table name to be a location?

No, because table names are semantic. Pointers are not semantic.

Marshall Received on Thu Sep 08 2005 - 18:03:03 CEST

Original text of this message