Normalization Dependencies

I'm just trying to make sure that I think about it correctly.

1) full dependencies - this is when one or more primary keys define another attribute

2) partial dependencies - this is when one of the primary keys defines another attribute or attributes

3) transient dependencies - this is when the nonkey attribute defines another attribute

I think about it right?

+4
source share
3 answers

This answer is directly from my CS course and is derived from a Connolly and Begg textbook.

enter image description here

Full functional dependencies

Define the candidate keys (here, property No, iDate, and pAddress) . This is because any combination of these 3 can allow you to find what other attributes are for a given tuple (I can find staffNo who did the inspection, given these three things, I can find carReg staffNo using these 3 things, etc. .d ..). But note: you need all three of these to find other attributes, not just a subset. Full dependencies always refer to keys other than the candidate, depending on the candidate keys, either depending on all, or on some.

Partial dependencies

Given these three candidate keys, find the candidate keys. Is there a subset of the candidate key that depends on another? Yes, this is pAddress. Given property No, you can figure out what the property address is. Then look outside the candidate keys. Are there any of these keys that depend only on the parts of the candidate key, and not on all components? In this case, no. Thus, partial dependencies always depend on candidate keys or non-candidate dependencies on keys only for individual candidate keys, and not for all components

Transitive dependencies

Now let's look at non-candidate keys (staffNo, comments, iTime (check time), sName, carReg). Is there something inside them that is functionally dependent on another? Yes, this is sName - statewide. No, you can find out the name of the employee. But staffNo is functionally dependent on 3 possible keys. Thus, transitivity, property No + iDate + pAddress β†’ staffNo β†’ sName, so sName is transitively dependent on staffNo . Transitive dependencies always refer to attributes outside of the candidate keys.

+5
source

Not really. This will help more precisely in your terminology: when you say things like β€œone or more primary keys,” do you (presumably) really mean β€œone or more columns of the primary key”?

The difference between full and partial dependence arises only when the key consists of more than one column (composite key):

1) Full dependencies - this is when a full key is required (all columns of the key) to determine another attribute.

2) Partial dependencies - this is when the key is composite, and some, but not all columns of the key define a different attribute. (This can be more than one column.)

3) Transit dependencies, as you said.

+3
source

Completely dependent tools, depending on all the attributes in question, usually mean all the attributes of the candidate key. This should not be a key designated as "primary", because primary keys do not play a special role in the theory and normalization of dependencies.

Partially dependent means, depending on the correct subset of these attributes, usually mean the correct subset of some candidate key.

Depending on the context, a transitive dependency can mean either one of the following:

(1) dependence of the form A-> B, B-> C

(2) the dependence of the form A-> B, B-> C, where B is not a superkey

Almost always, the term transitive dependence is used to refer to the situation described in (2), and in fact becomes a synonym for this meaning, although (1) is a more formally correct meaning.

+2
source

All Articles