3 ms·
"Performance is good" is I think something everyone could agree with just hearing it for the first time. There's no reason to prefer worse performance if you ca
by pc86 4y ago
"Performance is good" is I think something everyone could agree with just hearing it for the first time. There's no reason to prefer worse performance if you can have better performance for no additional cost. Is the same true for normalization? Why is just the state of being more normalized inherently better?
- bsedlm 4y agobecause a normalized database repeats less things and is much easier to understand than a messy one. oh, and also, the entire point is that neither is "inherently better"... both have pros and cons
- pc86 4y agoI think my point was "performance" in the sense of faster response time is inherently good. All things being equal, if you have a more performant option you'll choose that. The only time you accept worse performance is in pursuit of some other metric. On the flip side, "normalization" doesn't have that same inherent good-ness. All things being equal (including performance) there isn't any inherent drive toward more normalization, maybe because a faster performing page will have clear impact to the user while a more normalized data structure would be completely transparent to the user?
- bsedlm 4y agosure, from the perspective of the final user it doesn't matter much at all. with my point about normalization being easier to understand I meant to say that it is easier for a developer learning about the schema. if I recall ok, I think there's also something about data de-duplication in a normalized database. without this normalization, you could get a lot of repetition, which would actually require to update the same data in multiple places or find some other way to deal with different data about the same entity (some sort of de-synchronization is more likely without normalized schemas). in any case, I'll grant you that normalization should never be 'the' goal for a database.
- jeremyjh 4y agoDenormalized means it has multiple copies of the same pieces of data. The application is responsible for keeping those copies in sync with each other. This is a messy process that is easy to get wrong now and then. Then your app starts saying things that are absurd. No one cares much if Reddit does that every now and then.
- vbezhenar 4y agoSome levels of normalisation don't allow nulls. This is absurd. Normalisation alone is theoretical concept which should not be blindly pursued in practice, even without performance requirements.
- mabbo 4y agoNormalized schemas are less prone to certain kinds of hard-to-solve issues. Example: When you have the same data in two places, which is authoritative? If they disagree, which one is right? And querying data reliably is much easier when you've got good relations that can be relied on to be accurate. SQL is almost a masterpiece (though imho it should have been FROM, WHERE, SELECT).