Re: Towards a definition of atomic
Date: Fri, 1 Feb 2008 17:45:44 -0800 (PST)
Message-ID: <29424b2f-5e55-4310-b26c-685484f4cfda_at_h11g2000prf.googlegroups.com>
On Feb 2, 3:42 am, Jan Hidders <hidd..._at_gmail.com> wrote:
> On 1 feb, 14:30, David BL <davi..._at_iinet.net.au> wrote:
>
> > AFAIK the conventional wisdom is that no absolute definition of atomic
> > exists for domain types.
>
> On the contrary, we have too many of them. :-) But I don't think it is
> wise to go looking for a definition if it is not clear to you want you
> want to do with that definition. If you don't know where you are
> going, any road will take you there.
> > Throwing caution to the wind, in this post I
> > wish to conjecture a definition of atomic that, perhaps with some more
> > effort at its formalisation, can provide some absolute meaning for a
> > given attribute within a given RDB schema.
>
> In view of such blatant carelessness I can only respond by not heeding
> my own warning. :-)
>
> The usual intuition is that something is not atomic if it is
> decomposable into smaller parts. In this case that would mean parts
> with less information. For the case of decomposition into two
> components this leads to something like:
>
> DEFINITION: A domain D is said to be decomposable if there are domains
> D1 and D2 and functions f1 : D -> D1 and f2 : D -> D2 such that (1) f1
> and f2 are not injective and (2) <f1,f2> is injective where <f1,f2> :
> D -> (D1 x D2) is defined such that <f1,f2>(x) = (f1(x), f2(x)).
>
> Note that (1) says that each individual decomposition function loses
> information and (2) says that together they don't. However, we can
> then make the following observation:
>
> THEOREM: A domain is decomposable iff it contains more than 2 values.
I like your approach to defining a *non-trivial* decomposition, by requiring that f1,f2 not be injective.
However, I don't think your definition captures the right idea. For instance, my example 2 decomposes a domain expressed as a set of person names to a single name. In that case what is D1,D2? I think a definition of a decomposition of a domain must be expressed at the level of the relations, not merely at the level of the domains. The information in a "non-atomic" value recorded by the old schema can be spread across a large number of propositions in the new schema.
> As you more or less already observed, if you have a relational schema
> that uses an infinite domain (i.e. with infinitely many values) then
> you cannot map it losslessly it to a relational schema that uses only
> non-decomposable domains. But, if you allow the exception of abstract
> identifiers, then you can.
>
> > Continuing with example 2, note that no further decomposition allowing
> > information equivalence is possible. For example, a person's name is
> > represented as a string domain type, and this is atomic because any
> > attempt at decomposing the string into its individual characters
> > forces the introduction of additional identifiers.
>
> That's not completely correct. You can decompose it, but at least one
> of the components will always be an infinite domain again. You could
> for example split it into the first character and the rest.
Yes. I think you're clever to realise my attempted definition boils down to the problem of decomposing an infinite domain.
Since finite domains with more than two values are quite useful, my attempted definition is clearly a waste of time. Received on Sat Feb 02 2008 - 02:45:44 CET
