| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: The naive test for equality
Paul wrote:
> Marshall Spight wrote:
> > Sure. Specifically, it's an equivalence relation. Let's distinguish
> > between the equality relation specifically and equivalence relations
> > in general. Equality is a much simpler thing.
>
> Is it, though?
I wasn't clear whether you were questioning my "it's an equivalence relation" or my "equality is [simple]."
> We think about 1/2 = 2/4 fine even though they have
> different representations.
Sure, because they are the same value. Thining too much about representation can only confuse you. :-)
> Maybe you mean "identity", often shown using
> a variant of the equals sign with three lines instead of two?
No, I certainly do not mean identity. In fact, I specifically reject the concept of identity in the field of data management. It's useful in OOP to distinguish between equality and identity, but introducing identity in data management is a disaster.
> It's rare that we use the "equals" symbol to compare two things with
> identical representation: 1=1, we'd use the "identity" symbol instead.
I not sure I agree that it is rare. It is certainly correct.
> It's all about levels of abstraction: equality at the physical layer
> (representation) may differ from equality at the logical layer (value).
Sure. Note I am not discussing the physical; I'm discussing the logical and conceptual.
I said:
"I guess what makes it so complicated is that we're used to
having to work with objects and memory locations and aliasing
and so forth. These are all *implementation* complexities,
though; the interface remains blindingly simple."
> So for the underlying relational engine to compare two values for
> equality, it can't in general stay in the physical layer; it has just
> jump up into the logical layer, do the comparison, and then jump back
> down to the physical layer again.
I am unclear as to what you are saying here. The implementation only operates at the implementation level. The implementation implements the logical level, or "interface." I don't know what you mean by "jump up."
Sure, the implementation of a function to test for equality might be more than just a binary region compare, but that doesn't mean that it's not still the implementation.
Marshall Received on Tue Aug 02 2005 - 13:49:37 CDT
![]() |
![]() |