[HN Gopher] Historically, 4NF explanations are needlessly confusing
       ___________________________________________________________________
        
       Historically, 4NF explanations are needlessly confusing
        
       Author : thunderbong
       Score  : 29 points
       Date   : 2024-12-07 15:36 UTC (7 hours ago)
        
 (HTM) web link (minimalmodeling.substack.com)
 (TXT) w3m dump (minimalmodeling.substack.com)
        
       | mgkimsal wrote:
       | "The existence of the theory implies that the "composed" design
       | somehow arises, naively(?) or naturally."
       | 
       | Given how many first timers come up with really weird schema
       | designs, I'm not necessarily surprised, although I agree
       | presenting it as perhaps a default-but-wrong approach doesn't
       | help much.
        
       | jcrawfordor wrote:
       | I think the typical presentation of 4NF makes more sense when you
       | consider the ergonomics of data processing systems when
       | relational modeling emerged. Predating computing, data processing
       | was all centered around "records." Relational databases are often
       | also described in terms of "records," relational modeling emerged
       | out of an attempt to formalize data processing practices, the
       | practitioners of the era were learning relational modeling from a
       | data processing background, so it's no surprise that relational
       | concepts are often presented "as opposed to" the way things were
       | done in data processing.
       | 
       | In traditional data processing systems, a "record" was far more
       | independent than we think of in a relational database. Records
       | were hand-punched onto cards or keyed onto magnetic tape to be
       | sorted, summarized, or whatever operation you cared about by a
       | data processing machine. In this environment, joins were
       | extremely expensive operations, often requiring that the operator
       | feed the card stack over and over again (a rather literal
       | O(n^2)). So, the "weird composed" schema is absolutely what you
       | would do. And a lot of computer software was built around the
       | exact same concepts, which made sense anyway as computers often
       | continued to use sequential-access storage devices with similar
       | (but less severe) problems around joins. This era famously
       | persisted for a long time, with relational modeling as an
       | academic concept well predating successful implementations of
       | relational databases.
       | 
       | One could argue that all of the normal forms are pretty much
       | "stop doing it the old sequential access (card-stack) way and use
       | random access concepts (keys and joins) instead."
       | 
       | Of course that leaves the question of whether or not we should
       | teach it that way... we don't tend to tell students about how
       | memory is now random access, so perhaps by the same turn the
       | historical approach isn't useful for teaching here. But it would
       | undoubtedly be more effective if you give a little of the
       | history.
        
         | pessimizer wrote:
         | What might be needless is the "4" in "4NF," because the first
         | three (and a half) are obsolete. Or rather, as you mention,
         | were only relevant when things were read sequentially.
         | "Normalization" is really fine on its own.
         | 
         | Things that aren't normalized are "ad hoc," or really just
         | "input."
        
       ___________________________________________________________________
       (page generated 2024-12-07 23:00 UTC)