Re: Which normal form is this violating?
Date: Mon, 6 May 2002 19:08:21 +0200
On Mon, 6 May 2002, Daniel Guntermann wrote:
> Jan Hidders wrote:
> > It is indeed true that a schema should not describe two tables
> > that are logically the same, i.e., represent the same predicate,
> > because then one table would be redundant.
> This statement seems to imply any horizontal partitioning,
> snapshots, materialized views, or several other types of conventions
> used in databases are now invalidated.
If you partition a table horizontally you get tables that represent different predicates (if the original predicate was P(x) then the new predicates are "P(x) AND x.city = 'Paris'" and "P(x) AND x.city = 'New-York'" et cetera). If you take a snapshot you also get a predicate different from P(x) : "P(x) holds at moment t". So you see that it is not so obvious that this will give you (in a useful way) two tables that represent exactly the same predicate.
> Also, it seems that most textbooks I've come across, stress the fact
> that the relational model does a great deal to "reduce" redundancy
> (Maybe it says differently in Celko's book). They have never
> claimed to say that redundany is entirely eliminated, nor do they
> say that this is always desirable.
Indeed. But what would be the point of having two tables in your schema that are always exactly the same?
- Jan Hidders