Re: A Normalization Question

From: Neo <neo55592_at_hotmail.com>
Date: 13 Jul 2004 11:07:55 -0700
Message-ID: <4b45d3ad.0407131007.6a3f6531_at_posting.google.com>


> > The three 'brown'strings stored in a relational database are logically
> > redundant and are subject to update anomalies.
>
> Could you give an example of such an update anomaly?

ID Person Color Street
1 brown brown brown

While there are three different things (person, color, street), each of them is named by the same string 'brown' and that string is redundant. To create an update anomaly, we need to perform an update. This is unusual with strings, because strings typically don't change and if they change we consider them to be a completely different string. I realize the following are unusual examples, however a general data model can't (application above it can) have prejudices as to what updates are unusual. Suppose, the world is taken oven by Islam and they desire every string in a computer to be spelled backwards, thus 'brown' needs to be updated to 'nworb'. Or suppose, the French take over and want every string to end in an additional 't'. In the above tuple, updating one and not the others, creates an update anomaly. Below is approximately how XDb2 normalizes the three strings and updating it from 'brown' to 'nworb' or 'brownt' does not create an update anomaly.

Thing Person Color Street
1 ->2 ->3 ->4

Person Name
2 ->5

Color Name
3 ->5

Street Name
4 ->5

String Sym1 Sym2 Sym3 Sym4 Sym5 ....
5 ->6, ->7, ->8, ->9, ->10

Symbol

6      b
7      r
8      o
9      w
10     n
Received on Tue Jul 13 2004 - 20:07:55 CEST

Original text of this message