Re: Surrogate Keys: an Implementation Issue

From: David Cressey <dcressey_at_verizon.net>
Date: Mon, 24 Jul 2006 21:32:35 GMT
Message-ID: <T%axg.23646$V41.20096_at_trndny08>


"Paul Mansour" <paul_at_carlislegroup.com> wrote in message news:1153747076.079661.236060_at_b28g2000cwb.googlegroups.com...
> Bob Badour wrote:
> >
> > The physical level of discourse deals with physical locations on disk or
> > in memory etc. That's what defines it.
>
> <snip>
>
> > I suspect what people refer to as an intermediate level is the external
> > physical level of discourse as opposed to the internal physical level of
> > discourse.
>
> Bob,
>
> As you noted above, I often perhaps confuse the physical and logical
> levels. Here is something I've been wondering about. Assume one were to
> implement the relational model in a high-level intrepreted language,
> say Lisp, APL, Python, etc. These languages insulate the programmer
> from the physical level. So it must be possible, if not practical, to
> implement the RM without ever really thinking about or getting involved
> in the physical level. So when a programmer is implementing the RM in
> one of these types of languages, what level is he thinking in or about?
> Is this what you mean by the "external physical level of discourse"?
>

Paul,

You raise a very interesting point. Perhaps the "logical/physical boundary" isn't a single boundary, but one that gets repeated over and over again, like the layers of an onion. Whenvever you remove a layer, the next layer in becomes the new outer layer.

I first ran into this with disk addresses. "logical addresses" from an OS internals point of view was block number+ offset within block. All blocks in a volume were of a given size, regardless of the actual size of sectors on disk. And block number was a unidimensional addressing scheme, even if physical sectors were addressed by surface, track, and sector.

Of course, from a user's perspective, block numbers within a file were seen as "logical" while the OS "olgical blocks" were seen as "physical".

Once you get inside a DBMS, like Oracle. An address of a byte within a file is now seen as "physical" while the logical address of a row might be table number+row number.

Once you get outside the DBMS. "Logical address" is seen as primary key value, or some such thing as that.

Whenever anyone with one of the above presepectives gets exposed to a much lower level's perspective, he is quick to dismiss it as moronic ignorance. That even happens on occasion in this newsgroup.

There are even lower levels of "physicalness" in messages passed between disk controllers and read/write heads. But the people who deal at that level are all ignorant morons! (yuk, yuk). Received on Mon Jul 24 2006 - 23:32:35 CEST

Original text of this message