Re: Newbie question about db normalization theory: redundant keys OK?

From: mAsterdam <mAsterdam_at_vrijdag.org>
Date: Thu, 13 Dec 2007 20:10:53 +0100
Message-ID: <47618375$0$85796$e4fe514c_at_news.xs4all.nl>


raylopez99 schreef:

> With a few hours of theory under my belt, I'd like to ask if there's
> ever a time that you don't want a completely normalized dB, that is, a
> normalized database being a dB that has no redundant information (my
> understanding of what a normalized database is).

This question is very well put.

First, about your understanding.
The goal of normalizing is not to get rid of redundancies but to get rid of update anomalies. If, when in the real world your database is modeling one thing changes and you have to change several pieces of data in your database to keep it up to date, this means you have an update anomaly.

Several (mostly increasingly strict) normal forms exist to check if your set of relations suffers from some anomaly with recepies of changes to it to make it comply. Just google for normal form if you didn't already.

Now I'll make a distinction between a normalized model and a normalized database. I have seen several teams of people perfectly happy with heavily denormalized databases, such as the (heavily biased to some types of query) star schemas David talks about. My feeling is that they could only succeed because of the normalized models they had to begin with.

> Or, is there ever a time that you want redundant keys (that is, the
> same keys in many different tables, that obviously are not linked (in
> a relationship) between two tables?). Having redundant attributes and/
> or keys seems to me a very lazy way of designing a database that
> doesn't require lots of initial thought, but of course you have to pay
> for it by meticulously "synching" all redundant keys to one another
> everytime there is a change in one of the redundant keys, so the keys
> don't drift and have different values.

I do not completely understand what you are saying, but your understanding does not seem very off-track to me.

> But is there ever a time you want to do this?

In short: if you are relieved of the burdon to keep your database up to date, and your main interest is in only a subset of what your database contains, you don't worry about normalization.

--
What you see depends on where you stand.
Received on Thu Dec 13 2007 - 20:10:53 CET

Original text of this message