in reply to OT: benefits of database normalization

A mantra heard frequently in the database world is:

The data depends on the key, the whole key, and nothing but the key.

In turn, this leads to frequently complex normalization; however, that can be a good thing in terms of isolating functionality, relationships, and even implementation.

How normal is normal? It depends. Many's the time I see data stored very normalized for complex OLAP manipulation; whereas, I see it flattened out for performance reasons. It's a trade-off. Only you can decide.

Hope that helped,
-v
"Perl. There is no substitute."
  • Comment on Re: OT: benefits of database normalization

Replies are listed 'Best First'.
Re^2: OT: benefits of database normalization
by pg (Canon) on Oct 03, 2004 at 03:11 UTC

    My take is:

    • To fully normalize your opeartional database.
    • To denormalize your data warehouses, for mainly performance reason. (the chance that data go out of sync is much lower, as most likely you only add data to data warehouse, but don't update.)

    I am everyday dealing with a not normalized operational database, the biggest problem we facing is "out of sync'd data". From time to time, when my users complaining some data is wrong, I go check database, some of the data is stored in 4 or 5 different tables, and they simply have different values, which one is right? which one is wrong? That's a living hell. You have to do database design right at the beginning, don't expect to fix anything later, that is just not possible.

Re^2: OT: benefits of database normalization
by revdiablo (Prior) on Oct 03, 2004 at 03:11 UTC
    How normal is normal? It depends.

    True, not everything needs to be normalized to 5NF, but there are benefits to each level of normalization. I was wondering if there were any convincing benefits of Design 2 over Design 1. I like Design 2 much better, but convincing someone else why proved difficult for me.

    Basically, I'm curious about the justification for that particular type of normalization. It would probably help greatly if I knew what type of normalization I was talking about, but I don't. That's why I posted the examples. Based on some of the responses, though, they may not have been as helpful as I hoped they would.