Re: Define "flatten database" ?

From: Jan Hidders <jan.hidders_at_REMOVETHIS.pandora.be>
Date: Sun, 30 Jan 2005 01:33:42 GMT
Message-ID: <WPWKd.8976$tX7.741404_at_phobos.telenet-ops.be>


Dawn M. Wolthuis wrote:
> "Alan" <alan_at_erols.com> wrote in message
> news:35vdofF4rvh8nU1_at_individual.net...

>>"Dawn M. Wolthuis" <dwolt_at_tincat-group.comREMOVE> wrote in message
>>news:ctdn9o$7sq$1_at_news.netins.net...
>>>"DA Morgan" <damorgan_at_x.washington.edu> wrote in message
>>>news:1106859773.807419_at_yasure...
>>>>silversw2000_at_yahoo.com wrote:
>>>>>
>>>>>Can someone define "flatten database" for me, in 100 words or less (OK
>>>>>500 words is fine).
>>>>
>>>>Denormalize.
>>>
>>>I would guess "normalize" is more likely. [...]
>>
>>Flattening is DEnormalizing. Period.

>
> OK, I'd vote for both terms being incorrect. It is not denormalizing
> because it is starting with non-1NF data -- agreed? And it is not
> normalizing because, well, it clearly isn't (the key, the whole keyu and
> nothing but the key ...).

Can I try to bring some light here?

Some database texts actually do treat the step from NFNF (or UNF or non-1NF or whatever you want to call it) to 1NF as the first step of the normalization process which makes it valid to call this step "normalization". Note that normalization means in general that you are transforming something such that it afterwards adheres to a certain normal form, i.e., a form in which it satisfies certain criteria, and that is of course exactly what is happening in this step. So the term "normalization" is certainly justified and correct.

However, it is also defendable to classify it as denormalization since one of the goals of normalization was to remove redundancy, but flattening the database may actually introduce redundancy, which sets it somewhat apart from the other steps. Since in industry the term normalization is often loosely used synonymously with any form of restructuring of the schema that removes redundancy, it then makes sense to see it as denormalization. But, from an academic point of view that is not strictly correct. Obviously, *defining* flattening as denormalization is clearly wrong, even under the latter interpretation, since not all denormalization is flattening.

To close off a small test question for those who really understand the subject: Introductory database texts sometimes differ in how to get to 1NF: in some cases they tell you to immedeately split off the nested columns into separate relations (thus avoiding redundancy) and in others the relation is merely flattened and the splitting off is postponed to the later normalization steps. So the question is this. Can we always use both approaches and if we can does it matter for the end result which one we take?

  • Jan Hidders
Received on Sun Jan 30 2005 - 02:33:42 CET

Original text of this message