Functional dependency: Difference between revisions

Content deleted Content added
Adding local short description: "Relational database theory concept", overriding Wikidata description "in relational database theory, a constraint between two sets of attributes in a relation from a database"
Example: Made it more concise and clear
Line 116:
:''X'' → ''Y'' and ''X'' → ''Z'' [[if and only if]] ''X'' → ''YZ''
 
== Closure ==

=== Closure of functional dependency ===
The closure is essentially the full set of values that can be determined from a set of known values for a given relationship using its functional dependencies. One uses [[Armstrong's axioms]] to provide a proof - i.e. reflexivity, augmentation, transitivity.
 
Line 123 ⟶ 125:
 
=== Closure of a set of attributes ===
Closure of a set of attributes X with respect to <math>F</math> is the set X<sup>+</sup> of all attributes that are functionally determined by X using <math>F</math><sup>+</sup>.
attributes that are functionally determined by X using <math>F</math><sup>+</sup>.
 
==== Example ====
Imagine the following list of FDs. We are going to calculate a closure for A (written as A<sup>+</sup>) from this relationship.
 
# ''A'' → ''B''
Line 140 ⟶ 141:
| A → ABCD (by (c), and 2)
}}
Therefore, A<sup>+</sup>= ABCD. Because A<sup>+</sup> includes every attribute in the relationship, it is a [[superkey]].
The closure is therefore A → ABCD. By calculating the closure of A, we have validated that A is also a good candidate key as its closure is every single data value in the relationship.
 
== Covers and equivalence ==