Imperative mood "normalize" assumes that you had something not-normalized before you received that instruction. It's not useful when your table design strategy is already normalization-preserving, such as the most basic textbook strategy (a table per anchor, a column per attribute or 1:N link, a 2-column table per M:N link).
And this is basically the main point of my critique of 4NF and 5NF. They both traditionally present an unexplained table that is supposed to be normalized. But it's not clear where does this original structure come from. Why are its own authors not aware about the (arguably, quite simple) concept of normalization?
It's like saying that to in order to implement an algorithm you have to remove bugs from its original implementation — where does this implementation come from?
The other side of this coin is that lots of real-world design have a lot of denormalized representations that are often reasonably-well engineered.
Because of that if you, as a novice, look at a typical production schema, and you have this "thou shalt normalize" instruction, you'll be confused.
> But it's not clear where does this original structure come from. Why are its own authors not aware about the (arguably, quite simple) concept of normalization?
I find the bafflement expressed in the article as well as the one linked extremely attractive. It made both a joy to read.
Were I to hazard a guess: Might it be a consequence of lack of disk space in those early decades, resulting into developers being cautious about defining new tables and failing to rationalise that the duplication in their tragic designs would result in more space wasted?
> The other side of this coin is that lots of real-world design have a lot of denormalized representations that are often reasonably-well engineered.
Agreed, but as the OP comment stated they usually started out normalised and then pushed out denormalised representations for nice contiguous reads.
As a victim of maintaining a stack on top of an EAV schema once upon a time, I have great appreciation for contiguous reads.
> Normalization-as-process makes sense in a specific scenario: When converting a hierarchical database model into a relational model.
That makes much more sense as reasoning.
If I can also offer a second hazard of guess. I used to work in embedded in the 2000's and it was absolutely insane how almost all of the eldy architects and developers would readily accept some fixed width file format for data storage over a sensible solution that offered out of the box transactionality and relational modelling like Sqlite. This creates a mindset where each datastore is effectively siloed and must contain all the information to perform the operation, potentially leading to these denormalised designs.
Bit weird, given that was from the waterfall era, implying that the "Big Design Up Front" wasn't actually doing any real thinking about modelling up front. But I've been in that room and I think a lot of it was cargo cult. To deal with the insanity of simple file I/O as data, I had to write a rudimentary atomicity system from scratch in order to fix the dumb corruption issues of their design when I would have got that for free with Sqlite.
Thanks for the clarification, I guess my memory is very bad after all! :)
Do you remember if that was a recent addition?
Full disclosure: I was quite the newbie back then and most of what I "new" about SQL Server was what the more experienced coworkers told me. This was a very IBM-biased place so I'm not surprised they would have stuck to some old shortcoming, like people who still talk about bad MySQL defaults that have been changed for at least 10 years.
Up until that job (which was my second Actual Formal Job), all my DB experience had been with either dBase (I think III plus or IV) and access, so this was a whole new world with me.
It was through MS SQL Server that a colleague taught me about backups and recovery, after I ran an update in prod but forgot to include the where clause ... :)
I listed some hard drives on Friday on eBay.. most of them refurbished... within 5 minutes got a message from a person who wanted them all... shipped them an hour later
Yep, it doubled in the last 4 months https://www.youtube.com/watch?v=o5Zc-FsUDCM
I upgraded my PC by adding 64GB.. two Fridays ago I sold the 32 GB I took out for the same amount of what I paid for the 64 GB in July... insane
I bought a refurbished laptop with 64gb ddr4 (so-dimm) last week. It was just slightly more expensive than the 32gb variant with same specs. I guess the seller was not yet aware of the high memory prices.
In a week or two I might be able to make a profit by just selling the memory.
There's cheap adapters that allow you to use SO-DIMM memory in desktop DIMM slots. Of course performance will suffer compared to native DIMM sticks, but if you happen to have SO-DIMM laying around that you aren't currently using, this might be a nice use for it.
This conjures up vivid memories of being in the middle 1990s, with my first Pentium build on a Triton (FX) chipset board. The motherboard only accepted 72-pin SIMMs, but those were still pretty rare and expensive for me.
Instead of buying new expensive RAM, I used memory adapters I used to get that going. IIRC, they were branded SimmVerter.
Each adapter allowed a person to install four 30-pin SIMMs (which were very cheap and common) into one 72-pin SIMM socket on a motherboard.
I had four such adapters, and they were each of different shape: One for each variation of tall-vs-short, and also for left-vs-right. These shapes allowed for all four of the adapters to be used concurrently on a motherboard with 4 72-pin slots without them physically interfering with eachother.
It was so much fun back then to try to get all sixteen 30-pin SIMMs to function reliably.
Things became even more fun when I decided to mix in some 72-pin EDO SIMMs, and get each of them working with their respective features enabled.
(And I said all of that with a lot of sarcasm, but: I did eventually get it all to work reliably-enough for my purposes back then. I also learned a ton of stuff about cleaning electrical contacts, maintaining fast mechanical alignment, conclusively identifying problematic modules through testing, and optimizing physical layouts. These are skills that I've been able to get out and productively use on occasion during the 30-ish years that have subsequently passed.
While I can look back on that with a bit of positivity, I'm not sure that people are ready for that kind of thing today. A lot of folks weren't ready for it back then, either -- adapters like that, while being a [mostly] electrically-sound concept, were popularly considered to be cursed.)
Bought a 64gb upgrade kit in September for my wife's new PC for $205. The same kit right now on Newegg is $570. That's not even double in 4 months; thats almost triple in 2 months.
If I can get that right now $389 retail is there an arb opportunity (not in US, but maybe you are getting fucked on tariffs? Could that be the difference?)
reply