Re: Is a function a relation?

From: Brian Selzer <brian_at_selzer-software.com>
Date: Sat, 27 Jun 2009 02:23:00 -0400
Message-ID: <9Vi1m.2086$j84.609_at_nlpi061.nbdc.sbc.com>


"David BL" <davidbl_at_iinet.net.au> wrote in message news:be884cc7-43d2-4053-b81b-693fd10b9b7c_at_c20g2000prh.googlegroups.com...
> On Jun 27, 2:22 am, "Brian Selzer" <br..._at_selzer-software.com> wrote:
>> "David BL" <davi..._at_iinet.net.au> wrote in message
>>
>> > * Do you draw a distinction between a relation variable and a
>> > relation value?
>>
>> Of course, but I think in terms of relation schemata instead of relation
>> variables. Date and Darwen's databases_as_collections_of_relvars
>> paradigm
>> presupposes assignment as the only mechanism for implementing database
>> updates. Relation schemata serve the same purpose as relation variables
>> but
>> without the baggage of assuming an implementation methodology.
>
> If a database system records relations, then there are relation
> variables. I fail to see how you can deny that. It follows from the
> definition of 'variable'. Also when a variable changes then by
> definition it has been reassigned. I don't see how that assumes any
> implementation methodology. Definitions in themselves don't imply
> anything at all.

I think you are afflicted with tunnel vision. A database system does not just record relations in isolation. If anything it records entire databases, one at a time, each of which just happens to be a set of relations. But a database system need not even record databases at all: it could instead record just the differences between successive databases, which when accumulated can be presented as a set of relations. None of these implementation methodologies involve the use of relation variables. The latter does not even hint at assignment, since it involves appending to and accumulating a stream of assertions to arrive at the current set of relations, though it is conceivable that intermediate results could be cached under the covers in order to improve query performance.

>
>> > * Do you think it's possible to talk about the relation value
>> > recorded in a relation variable in a particular database at a
>> > particular time?
>>
>> I'm not sure what you're asking here. A database is a set of relations
>> that
>> conforms to the database schema. The state constraints specified on the
>> schema determine the set of all possible databases. Only one possible
>> database can actually be /the database/ at any given point in time. It
>> should be possible to talk about any relation in any database at any
>> time.
>> That's why I don't understand your question.
>
> I find many things you say very confusing. A database... all posible
> databases...one possible database...the database...any database. What
> do you mean by the word 'database'?

A database is a set of relations that conforms to a given database schema. Don't you agree that the database schema defines the set of all valid databases? Don't you also agree that of all valid databases, only one database at a time can be the current database? Is it my use of the terms 'possible' and 'actual' that has you confused?

> I distinguish between a database type (aka database schema), database
> variable (aka physical database system with named relvars) and
> database value (aka tuple with RVAs).
>
> I was talking about the idea of there being a value of a given
> relation variable in a given database system at a given time.
>
>
>> > * Is a relation value necessarily associated with some external
>> > predicate?
>>
>> If I understand correctly what you mean by 'external predicate,' then the
>> answer is a qualified 'yes.'
>
> Well I think the answer is 'no'.
>
>> Each and every value is the result of applying
>> the valuation function to a term under an interpretation at the instant
>> of
>> interpretation. For things that cannot change, such as mathematical
>> objects, that function application yields the same result at every
>> instant
>> of interpretation, and as a consequence of that being taken for granted,
>> values are often incorrectly treated as being equivalent to the symbols
>> or
>> compositions of symbols that are terms in a formal language. The problem
>> is
>> that for things that can change, a particular composition of symbols can
>> mean different things at different times. For example, the phrase, "the
>> guy
>> in the red t-shirt and blue baseball cap" may describe different guys at
>> different times, even though in each given context it is sufficient to
>> identify a particular guy. So since relations are values, they are each
>> extensionally the result of applying the valuation function to a distinct
>> composition of symbols under an interpretation at the instant of
>> interpretation, and therefore are associated with both the interpetation
>> and
>> the instant of interpretation.
>
> We have different definitions of the term 'value'. I use it (only) to
> mean an abstract, well defined mathematical object like a particular
> integer, completely divorced from any appearance of that value (such
> as being used to record someone's age).

Abstract, well defined mathematical objects cannot change, so a formalism that admits only abstract, well defined mathematical objects cannot be used to model things that can change.

> When you say a value means different things at different times it
> seems like you're thinking a value is what C.Date calls an appearance
> of a value, which actually has more to do with a variable that exists
> in time and space.

Please don't misrepresent me: I didn't say that a value means different things at different times; I said that a term in a formal language can mean different things at different times.

Also, a variable is a container for a value. How can it exist in time and space?

>
>> > * What is the definition of equivalent relation values?
>>
>> In what context?
>>
>> > * Do you think it's possible to say that distinct relation variables
>> > (possibly in distinct databases) happen to have recorded the same
>> > relation value at particular times - even though the relation
>> > variables have distinct external predicates?
>>
>> A relation is a named set of sets of named values. The name of a
>> relation
>> is significant and should, I think, preclude it from being recorded in
>> distinct relation variables.
>
> I don't consider relation values to have names.

That doesn't surprise me. I suppose that you would attribute the same meaning to a relation that is constructed by explicitly stating the heading and tuples, as a relation consisting of the exact same set of tuples that is the result of a union of two relations in the database?

>> Also, one cannot assume that the name given to
>> a domain defined in one database schema would be identical to the name
>> given
>> to the same domain in another database schema, so there is no common
>> frame
>> of reference in order to compare relations in databases that conform to
>> different database schemata. In the case of ETL applications, the frame
>> of
>> reference is supplied in the form of a schema mapping between systems.
>
> When the integer value 5 is encoded in various databases around the
> world, do you consider that it is the same integer being recorded?

Yes, provided it is understood that the integer domain is common to all of those databases. Received on Sat Jun 27 2009 - 08:23:00 CEST

Original text of this message