Re: We claim that delete anomality is due to table not being in 3NF, but...

From: Hugo Kornelis <hugo_at_perFact.REMOVETHIS.info.INVALID>
Date: Wed, 29 Oct 2008 22:07:22 +0100
Message-ID: <3qjhg4pg94sjulnpi76i6tab59ltlcblup_at_4ax.com>


On Tue, 28 Oct 2008 17:32:49 -0700 (PDT), Srubys_at_gmail.com wrote:

>greetings
>
>Sorry for not replying sooner
>
>> > But is C always dependent on A simply because B is dependent on A or…
>> > I mean, B will be dependent on A regardless of whether we have C
>> > attribute, but I assume that is not the case with C?
>> I'm afraid I don't understand the question. Could you give an example?
>
>I can’t think of any examples and I’m also not quite sure how to ask
>differently, but I’ll try. In most transitive dependencies C is
>dependent on A simply because B is dependent on A. Meaning if we
>removed B from the relation then C would no longer be dependent on A.
>
>But can there be transitive dependencies where C would still be
>dependent on A even if we removed B from the relation ( BTW - I
>realize that if we removed B from the relation that we wouldn’t have
>transitive dependency anymore)?

Hi Srubys,

Functional dependencies stem from reality. Whether or not you choose to include B in your model does not change the situation where, apparently, C depends on A through some intermediary B (that is not in the DB).

In a DB that stores PersonID and EyeColour, one might argue that the actual dependency goes back to the parents of the person and their genetic patterns - but those will typically not be stored, and yet the EyeColour still depends on PersonID.

>> Delete anomalies can surface in more than one normal form. I haven't
>> thought about the sepcific case you raise. It seems like a different kind
>> of delete anomaly. In one case, the data that's lost is a relationship
>> (e.g. Jane Smith always teaches in classroom 13).
>
>But existence is also lost here.

Existence was never properly represented. If existence of a teacher is worth storing in your DB, then you need a table of teachers. Otherwise, you may be implying existence of a teacher as a side effect of storing attributes of other entities, but yoy fail to actively and explicitly store it.

(snipped the rest - I think the above addresses your questions)

Best, Hugo Received on Wed Oct 29 2008 - 22:07:22 CET

Original text of this message