Re: Key attributes with list values was Re: What are the differences ...KEY
Date: 26 Feb 2006 10:32:17 -0800
Message-ID: <1140978737.494702.103570_at_v46g2000cwv.googlegroups.com>
Brian Selzer wrote:
> "Marshall Spight" <marshall.spight_at_gmail.com> wrote in message
> >> What I'm trying to convey is that from one point of view, a list
> >> has identity, regardless of its contents.
> >
> > I reject this point of view. The system I am building has values
> > and variables only. There are no pointers, there are no addresses,
> > and there is no concept of identity. There is only value.
>
> What about the list of operations and materials that are required to
> produce a part? That certainly has identity.
Nope. Just a value. Same as an int.
> > This is not to say that the concept of identity is not consistent.
> > It certainly is, and useful programming languages have been
> > built on top of it. It is foundational to OOP. However, useful
> > systems have been built without it as well; it is not a necessary
> > concept.
>
> I disagree. It is a necessary concept, not only externally but also
> internally.
I'm not sure we're using the terms in the same way, though. Do you speak Java?
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i==j); // tests for identity
System.out.println(i.equals(j)); // tests for equality
Is that how you're using the terms?
> An entity must have identity, otherwise there's no way for the
> database, or users, for that matter, to distinguish between them.
> That's the whole point of keys.
Members of a set don't have identity.
> Because a key value determines all other attribute
> values, it identifies an entity.
Sure. This requires only values and equality.
> But a there's a problem: a key value may
> change over time, so any given key value's ability to determine what was or
> is known about an entity is limited to a specific interval, bounded by the
> time that its value became known by the database and the time that a new
> value became known. This imposes limitations on the types of updates that
> can be performed or the types of constraints that can be enforced.
> If all
> keys can change, then either updates must be singular, that is, must affect
> only one entity of any given type at a time, or no temporal constraint (a
> constraint that involves the state of the database at more than one point in
> time) can be enforced.
> This is a significant limitation of the Relational
> Model with which I am most familiar, but I suspect that the concept applies
> to all other data models, which may have means to overcome it. In the
> Relational Model, all updates are set-based, and if all keys are subject to
> change during an update and if the cardinality of the update is greater than
> one, then there's no way to determine which tuple in a new relation value
> corresponds to any given tuple in the original relation value.
If you want a system that supports identity, you don't want to be using set theory. There are plenty to choose from, and they are well-supported and popular!
> It should be obvious that correlation is necessary to enforce
> a constraint that involves more than one database state.
> Every proposition must
> necessarily be different from every other proposition, because either
> something is known, or it isn't: the knowledge contained in a database is a
> set of propositions, not a collection. Thus every proposition has identity
> with respect to the state of the database at any specific point in time, and
> that identity can be revealed as an attribute.
> In order to avoid losing
> information over time, every new proposition must have a new identity value.
> By that I mean that new values exist only for propositions that are
> completely new to the database rather than to propositions that have been
> changed. In other words, something can become known by the database, and
> something that is already known can change. The distinction is subtle, I
> know, but necessary--especially in a temporal database, but also in one that
> only requires that transitions be constrained.
Perhaps an example is in order.
Marshall Received on Sun Feb 26 2006 - 19:32:17 CET