Re: confused about normalisation

From: David Cressey <David_at_DCressey.com>
Date: 2000/01/17
Message-ID: <2TGg4.1887$x4.219255_at_petpeeve.ziplink.net>#1/1


Normalization is an organizing principle that permits you to make and evaluate design decisions concerning which columns go in which tables. In this forum, Joe Celko can give you the definitive answers with regard to normalization. I could write a book on the subject, but Joe already has! (And Joe's books are probably better than mine would be)

If you want an thumbnail sketch of normalization, here's a URL for a web page:

http://www.gslis.utexas.edu/~l384k11w/normover.html

Do you need to know it? IMO, yes, if you want to design databases. But knowing how to use normalization is much more straightforward than deciding when to use it.

The best words I've seen in this regard in this regard come from a description of the DBA job
in a pamphlet put out in an Oracle User group. I've lost the source, so a I can't give credit where credit is due. Here it is:

   You use normalization to understand your data. You use denormalization for performance.

I agree with the first part. In part, I also agree with the second part. But there are other design principles
that can be used in physical design to get dramatic performance improvements without incurring the same down side as denormalization. One particular physical design principle is sometimes called "co-location".

Colocation puts data in the same data block, but not in the same row, or even in the same table. The engine still has to do the join to get the data together, but it incurs fewer IOs to get the job done. Physical design is highly dependent on the particular database product, and even on the version of the product.

Hope this helps a little.

crossfade wrote in message ...
>I'm new to databasing and I've just recently been getting my head around
>mySQL. After talking to some people about databasing, they all seem to
>mention normalisation. From what I have gathered it is essential to do
 this
>when designing any database for optimizational purposes. I have purchased
 a
>couple books on mySQL, neither of which describe normalisation at all. Is
>there anywhere I can go to find out more about this? Possibly any books
>that would help? Do I even need to know what normalisation is? Thanks.
>
>
Received on Mon Jan 17 2000 - 00:00:00 CET

Original text of this message