Re: Towards a definition of atomic
Date: Fri, 1 Feb 2008 10:42:45 -0800 (PST)
Message-ID: <3b7a8884-75de-4fe7-97df-bf785f9d483c_at_n20g2000hsh.googlegroups.com>
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.
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
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
> 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.
- Jan Hidders