Re: Towards a definition of atomic
- From: Jan Hidders <hidders@xxxxxxxxx>
- Date: Fri, 1 Feb 2008 10:42:45 -0800 (PST)
On 1 feb, 14:30, David BL <davi...@xxxxxxxxxxxx> 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
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.
-- Jan Hidders
.
- Follow-Ups:
- Re: Towards a definition of atomic
- From: David BL
- Re: Towards a definition of atomic
- References:
- Towards a definition of atomic
- From: David BL
- Towards a definition of atomic
- Prev by Date: Re: Towards a definition of atomic
- Next by Date: Re: Towards a definition of atomic
- Previous by thread: Re: Towards a definition of atomic
- Next by thread: Re: Towards a definition of atomic
- Index(es):