Mark Whitehorn's recent article on multivalue data types in Access (here) sure attracted some comments. No, multivalue fields (non-atomic fields or repeating groups as I think I remember them) are not new. I didn't like them when I was an IMS DBA back in the eighties - and I met most of the arguments in favour of them back then …
Yes and no
I will say that I have rarely violated 1NF, or even BCNF, without eventually regretting it.
However, Date and Darwen, who are about as committed to the relational model as anyone, do quite clearly say that an attribute of a relation may itself be a relation--my copy of Date ed. 7 is at home, but the concession is made clearly in RM Prescription 7 of _The Third Manifesto_.
Well, I'm hindered by only having the 2nd and 4th Eds to hand, but I think this is to do with relation-valued, as opposed to composite, domains. A mathematical relation need not be normalised, of course; but the relational data model deals with that subset of relations which are - in the interests of mathematical simplicity.
If Codd relaxed his rules to allow relations of relations (which then can themselves contain relations) this appears to make things more complex (I was saddened when his 12 (13) rules increased in number). But it doesn't make them arbitrary, so I suppose it could be handled...
In theory I'm not too religious about this - as long as you accept the consequences, then relaxing normalisation is fine. In practice, I'm afraid that I think that maximising simplicity results in more resiliant systems - as you say, when you don't normalise eventually you mostly regret it - pace Pick, of course.
30 years ago I felt much the same way about GOTOs: you could use them sensibly and safely but hardly anybody did (or rather, even if they did, this was blown to hell after a little maintenance). I don't think IT's reputation for quality, resiliance and efficient delivery of working systems is such as to justify any of us taking risks, but YMMV.
If one wants to use unnormalised data, one can always use Intersystems Cache - or U2, ADABAS etc. I still suspect it places higher demands on the skill of the programmers involved - although I expect many will disagree with this.
Nice to hear such sound sense -
otoh Why not bring back OCCURS DEPENDING ON
Occurs depending on?
Gibber. May the Hounds of Hell...
I actually rather like COBOL but there are things even I can't stomach - or, perhaps, understand. As another example, somebody once showed me how to do bit manipulation in COBOL with multiple REDEFINES - not something that has stuck in my mind :)
- Does Apple's iOS 7 make you physically SICK? Try swallowing version 7.1
- Pics Indestructible Death Stars blow up planets with glowing KILL RAY
- Hands on Satisfy my scroll: El Reg gets claws on Windows 8.1 spring update
- Video Snowden: You can't trust SPOOKS with your DATA
- 166 days later: Space Station astronauts return to Earth