Date: Tue, 28 Aug 2007 12:26:21 -0000
Message-ID: <1188303981.637381.32500_at_r29g2000hsg.googlegroups.com>
I am still fighting with the theoretical underpinning for 1NF. As such, any comments would be greatfully accepted. The reason for my concern is that there /seems/ instances where 1NF is insufficient. An example occurred to me while I was wiring up a dimmer switch (at the behest of mrs. JOG, to whom there may only be obeyance). Now I don't know the situation in the US, but in the UK a while back the colour codes for domestic main circuit wiring changed. Naturally the two schemes exist in tandem, as exhibited in every house I've had the joy of doing some DIY in:
Brown -> live.
Red -> live
Blue -> neutral.
Black -> neutral.
Green and yellow -> earth.
The issue with encoding these propositions is that the candidate key for each proposition may consist of one _or_ two colours. Now I have a couple of options, none of which seem satisfactory. I could leave green & yellow as some sort of set-value composite, but obviously this would affect my querying capabilities, so thats out straight off the bat. Similarly adding attributes Colour1 and a nullable Colour2 is simply so hideous it isn't worth consideration. So, I could ungroup to give me:
Colour Type
Brown live
Red live Black neutral Blue neutral Green earth Yellow earth
-----------------
But again this is unsatisfactory as I have lost the information that one wire is green and yellow, but none is brown /and/ red.
I could introduce a surrogate to give me:
Id Colour Type
1 Brown live
2 Red live 3 Black neutral 4 Blue neutral 5 Green earth
5 Yellow earth
But this seems wholly artificial given that all the information I
required for identification was available in the original
propositions, and that did not require some artificial id. A [shudder]
non 1NF variation such as:
Id Colour Type
is clearly hideous as it denies the fundamental mathematical principle
that that one attribute should take one value from one domain,
nevermind the fact that it introduces query bias.
I could of course introduce nested relations, but I am uncertain as to
1 Brown live
2 Red live
3 Black neutral
4 Blue neutral
5 Green, earth
Yellow
Regards, Jim. Received on Tue Aug 28 2007 - 14:26:21 CEST