[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)