Date: Tue, 05 Jul 2005 21:31:02 GMT
Jon Heggland wrote:
> In article <PwBye.138032$Nn7.7012386_at_phobos.telenet-ops.be>,
> jan.hidders_at_REMOVETHIS.pandora.be says...
>>>How does a set domain (e.g. the domain of sets of integers) violate >>>this? For definiteness, let's associate the normal set operations with >>>it---union, intersection, subset, cardinality and so on. >> >>By itself it doesn't. Until you start introducing operations that treat >>it as non-atomic. Then it does.
> Does the common substring operation treat a string as non-atomic?
>>>How does that help with normalisation? >> >>Since it defines atomicity it tells you when you are in 1NF or not. Just >>to be clear on this, I regard this discussion separate from the question >>whether you actually *should* be in 1NF or not.
> That is nice to know. I assumed (as is generally done, I think) that
> relations in 1NF are in some sense better than relations not in 1NF (if
> such a thing is possible). If that is not the case, I find this
> discussion rather pointless.
Don't worry. I do believe that relations should preferrably be in this 1NF, but I think we should not do too many things at the same time and first make sure we agree on what it exactly says.
>>>And how can you say a priori that >>>a relvar with a set-valued attribute is not in 1NF, if that depends on >>>the operators of a particular DBMS? >> >>You cannot.
> Yet you did say "Another option is to treat the field as a set-valued
> field (since it apparently can contain 0 or 1 values) which
> means that you are not in 1NF and should first normalize such that you
Good point. I'm making the silent assumption here that if you allow nested relations, then you probably also have the nest/unnest relations as are usually found in the nested relational algebra. If you don't have those then you are arguably treating it more as an atomic value than a set value.
- Jan Hidders