Re: MV Keys

From: Brian Selzer <brian_at_selzer-software.com>
Date: Fri, 03 Mar 2006 13:53:49 GMT
Message-ID: <NTXNf.62440$PL5.60906_at_newssvr11.news.prodigy.com>


"Jon Heggland" <heggland_at_idi.ntnu.no> wrote in message news:MPG.1e724bc450f19847989780_at_news.ntnu.no...
> In article <wMUNf.17845$rL5.2737_at_newssvr27.news.prodigy.net>,
> brian_at_selzer-software.com says...
>>
>> I don't see it that way. If you can talk intelligently about values that
>> are contained in a list apart from that list within the constraints
>> imposed
>> by the universe, then the list is not atomic or scalar with respect to
>> the
>> universe of discourse. The list can be resolved into components that
>> have
>> meaning with respect to the universe independent of the list.
>
> What universe? A concrete example: I can use a varchar as a string
> (where, for the sake of the argument, I postulate that the individual
> characters "have no meaning"), or as an array of characters (where they
> do). The DBMS doesn't know (or care) what meaning I apply to either
> varchar---so what is the point of the distinction? Just to say that one
> design (the one using varchar as an array) is probably bad, and the
> other is not?

I take issue with stuffing nonscalar values into attributes. The universe of discourse is (at least for relational databases) the set of all possible values for all relevant domains and a set of rules that describe how those values can be combined. It is clearly redundant to have the same value in a scalar domain and a domain of lists, because undoubtedly, there's an operator available that can extract that value from the list so that it can be discussed. I think that redundancy in the universe of discourse is worse than redundancy in the database, because it undermines the logical foundation of the database. How can you know if you're talking about the same thing if it values in the universe of discourse don't have identity with respect to that universe? In addition, the way I see it, combining values in a list is an application of one of the rules that belong to the universe. The association of a value with other values in a set or list clearly augments the meaning of that value along with all of the other values in the list. It just doesn't make sense to me to define a domain in the universe that is an application of one or more of the rules against one or more scalar domains. It would make more sense to me for that to be part of the database predicate.

A database is a logical thing, so it is not relevant what the DBMS knows or cares.

>
> My point is that you can't say that a type (e.g. varchar) is scalar or
> not a priori; you have to say "the way varchar is used by this operation
> in this particular database means it's not a scalar here". Hence,
> scalar-ness is a property of some use of some variable of a type, not of
> the type as such. I think we actually agree; you do say "scalar /with
> respect to the universe of discourse/" (my emphasis).
>

Whether something is scalar is a logical concept, not a physical one. Also, it's not the operation in a particular database, but rather the definition of a domain in the logical universe that determines whether or not something is scalar.

I think we do agree. Something is scalar with respect to the universe, or less precisely, with respect to the context in which it is used.

>> > Speaking of dates, is date a scalar type? Its components (year, month,
>> > day) do belong to the universe of discourse in most cases.
>>
>> Absolutely. Year, month and day are not components, they're
>> transformations. Time is a continuum, and dates are points along that
>> continuum. Year, month and day are functions of the number of days that
>> have passed since a widely accepted point in time.
>
> Or the other way around. Are substrings of strings components or
> transformations? What about subranges, or individual values, of arrays
> or lists? What is the difference?

If a string is atomic within the universe, then a substring must be a transformation. If it's not, then both the string and the substring are compound entities subject to the rules of combination that are defined in the universe. I'm using the term entity deliberately here, because such instances have identity with respect to the database. They're propositions, not values.

> --
> Jon
Received on Fri Mar 03 2006 - 14:53:49 CET

Original text of this message