Re: A Normalization Question

From: Neo <neo55592_at_hotmail.com>
Date: 20 Jul 2004 15:45:27 -0700
Message-ID: <4b45d3ad.0407201445.dd97f13_at_posting.google.com>


> (123, "brown", "brown", "brown")
>
> Suppose Ms. Brown gets married and her last name is now "Smith."
> If you change the value representing the last name from brown to
> Smith, you have created no update anomaly.

True, after changing the person's name to 'smith', one still has two instead of three equivalent things (string 'brown') one which names a color and one which names a street. One of the remaining two string 'brown', one is redundant as the second represents the same thing, the string 'brown'.

> The facts that the street name is brown and the house color is brown
> were not inadvertently changed by this update.

True, and neither would the color or street's relationship to 'brown' be inadverently updated in XDb1 or XDb2, because changing a person's name, via the person, causes the person to be unrelated from string 'brown', creates new string 'smith' if necessary and re-relates just the person to string 'smith', leaving the color and street's relationship to 'brown' unchanged. This is easy to verify, and has been verified by others, by downloading XDb1, entering the above things and changing the person's name. On can also understand this by studying the images shown at www.xdb2.com/Example/ThingsNamedBrown.asp which shows how a single string 'brown' is related as the names of mulitple things.

> But with your schema when you change brown to Smith,
> you've inadvertently changed all three facts represented by this
> tuple. That's an update anomaly.

If one's intent is to only rename the person, one should not change the string 'brown' which is related as the name of many things. Instead, when changing what appears to be the person's name, the GUI automatically unrelated person from 'brown' and re-related to 'smith'. One might change the string 'brown' directly if one converted to Islam and wanted all strings to be reversed including 'brown'.

> The fact that you can work around the anomaly isn't the point.

The was never an anomaly in XDb1 as the string 'brown' never existed more than once in db. There were three differnt relationships to that one and only string 'brown'. Unrelating the person from 'brown' and rerelating to 'smith' is not an update anomaly.

A possible reason you are having difficulty understanding the above is because in RM, in many case, in the relation 'aRb', R is implied, as is the case 'john name brown' where as in XDb1/TM, it is explicit. I advise you to look over www.xdb2.com/Example/ThingsNamedBrown.asp Received on Wed Jul 21 2004 - 00:45:27 CEST

Original text of this message