Re: what are keys and surrogates?

From: David Cressey <>
Date: Mon, 07 Jan 2008 14:46:57 GMT
Message-ID: <BXqgj.6323$%A6.4354_at_trndny08>

"rpost" <> wrote in message news:b03d5$47815cb1$839b4533$
> JOG wrote:
> >> >> >1) A 'Key' is a set of attributes, used at the logical layer to
> >> >> >uniquely identify a proposition.
> >> >> >2) An 'Identifier' is a set of attributes, used at the conceptual
> >> >> >layer to uniquely identify an entity.
> >>
> >> >> Why use two different terms?
> >>
> >> >Because they apply to different things, propositions and entities.
> >> >Don't confuse the two.
> >>
> >> What is the difference?
> >
> >You can't distinguish between a statement of fact, and the things that
> >are the subjects of those statements describe? Cor Blimey guvnor.
> I can, and already explained how I do it; for me, the difference is
> essentially grammatical in nature, but you seem to have a different idea
> of how the distinction is made and what it means; hence my question.
> >> For me, an entity is a proposition treated as a thing
> >> (i.e. used as a reference rather than a description).
> >
> >Wuh-wuh? Its generally agreed that 'entity' is a synonym for
> >'thing' (according to them dictionary jibjobs) so you seem have
> >written: "an entity is a proposition treated as an entity". Er...
> What I was trying to get at is that calling an entity a "thing" doesn't
> add any explanatory value to me. Worse, it makes things *less* clear,
> since many entities aren't actually "things". I find it much more
> clarifying to say an entity is something used as a reference.

The semantic difference between "thing" and "something" is very unclear to me.

As long as we are hell bent on introducing new terminology, and retiring the word "entity", how about the following:

Use the word "subject" instead of the words "entity" or "thing" or (shudder) "object".

This way, you could say that the subject matter is described in terms of "subjects" and "predicates". The word "predicates" has come into several discussions here. And I think you could usefully use the word "predicate" to describe relationships (or assertions about relationships) at the conceptual level.

What I'm uncertain about is whether the terms "subject" and "predicate" would mean about the same things that they do in the world of grammar. If not, it's an argument against using this terminology, but not necessarily a conclusive argument.

I'd be perfectly happy with a conceptual level that says everything that needs to be said in terms of "subjects" and "predicates" rather than "entities" and "relationships".

If this were adopted, the logical level could be described in terms of relvars and constraints, provided the RM is being used as the basis for the logical level.

Then the physical level could be described in terms of tables, indexes, tablespaces, and all that other stuff, provided you are using SQL and some specific SQL product as the basis for implementation. While tables are intended to mimic the logical level, they can be construed as a physical construct if you like. Note also that a significant portion of the cdt community is already looking beyond SQL to a truly relational implementation.

Such an implementation could use the same terminology at the logical and physical layers, but that's a risky step. If the logical layer persists beyond the next implementation framework, you could end up with the same terminological mess we now have, all over again.

Note also that the distinction between "public" and "private" can be made between any pair of levels. For that matter, it can be made across any interface. Received on Mon Jan 07 2008 - 15:46:57 CET

Original text of this message