# Functional dependency

**functional dependenciesfunctionally dependentinspired from relational database theory**

In relational database theory, a functional dependency is a constraint between two set of attributes in a relation from a database.wikipedia

55 Related Articles

### Candidate key

**candidatekey candidateskeys**

(Unions of attribute sets are customarily denoted by mere juxtapositions in database theory.) An important notion in this context is a candidate key, defined as a minimal set of attributes that functionally determine all of the attributes in a relation.

e.g. from the set of functional dependencies.

### Database normalization

**normalizationnormalizednormal form**

The determination of functional dependencies is an important part of designing databases in the relational model, and in database normalization and denormalization.

Genre ID and Genre Name both depend upon the primary key {Title}, but they are not independent of one another.

### Armstrong's axioms

**axiom of transitivityArmstrong rulesinference**

One uses Armstrong's axioms to provide a proof - i.e. reflexivity, augmentation, transitivity.

Armstrong's axioms are a set of axioms (or, more precisely, inference rules) used to infer all the functional dependencies on a relational database.

### Superkey

The latter expresses the fact that the set {StudentID, Lecture} is a superkey of the relation.

It can be defined as a set of attributes of a relation schema upon which all attributes of the schema are functionally dependent.

### Relational model

**relationalrelational data modelrelationships**

The determination of functional dependencies is an important part of designing databases in the relational model, and in database normalization and denormalization.

### Lossless-Join Decomposition

A simple application of functional dependencies is Heath's theorem; it says that a relation R over an attribute set U and satisfying a functional dependency X → Y can be safely split in two relations having the lossless-join decomposition property, namely into where Z = U − XY are the rest of the attributes.

Let F be a set of functional dependencies on R.

### Canonical cover

Every set of functional dependencies has a canonical cover.

A canonical cover F_c for F (a set of functional dependencies on a relation scheme) is a set of dependencies such that F logically implies all dependencies in F_c, and F_c logically implies all dependencies in F.

### Referential integrity

**Declarative Referential Integrityreferential integrity constraintforeign-key candidates**

Functional dependencies however should not be confused with inclusion dependencies, which are the formalism for foreign keys; even though they are used for normalization, functional dependencies express constraints over one relation (schema), whereas inclusion dependencies express constraints between relation schemas in a database schema.

However, logical implication between dependencies that can be inclusion dependencies or functional dependencies is undecidable by reduction from the word problem for monoids.

### Third normal form

**3NF3NF databasesthird**

Generally, the third normal form is considered to be a "good" standard for a relational database.

A non-prime attribute of R is an attribute that does not belong to any candidate key of R. A transitive dependency is a functional dependency in which X → Z (X determines Z) indirectly, by virtue of X → Y and Y → Z (where it is not the case that Y → X).

### Multivalued dependency

**multivalued dependenciesembedded multi-valued dependencies (EMVD s)**

In contrast to the functional dependency, the multivalued dependency requires that certain tuples be present in a relation.

### Chase (algorithm)

**the chasechase**

In its simplest application the chase is used for testing whether the projection of a relation schema constrained by some functional dependencies onto a given decomposition can be recovered by rejoining the projections.

### Join dependency

**lossless-join decompositionrecovered by rejoining the projections**

Intuitively, if a functional dependency X → Y holds in R, then the relation can be safely split in two relations alongside the column X (which is a key for ) ensuring that when the two parts are joined back no data is lost, i.e. a functional dependency provides a simple way to construct a lossless-join decomposition of R in two smaller relations.

Unlike in the case of functional dependencies, there is no sound and complete axiomatization for join dependencies, though axiomatization exist for more expressive dependency languages such as full typed dependencies.

### Equality-generating dependency

**equality-generating dependencies**

Furthermore, the two notions do not even intersect in the classification of dependencies: functional dependencies are equality-generating dependencies whereas inclusion dependencies are tuple-generating dependencies.

An important subclass of equality-generating dependencies are functional dependencies.

### Relational database

**relational database management systemRDBMSrelational databases**

In relational database theory, a functional dependency is a constraint between two set of attributes in a relation from a database.

### Relation (database)

**relationrelation schemarelations**

In relational database theory, a functional dependency is a constraint between two set of attributes in a relation from a database.

### Projection (relational algebra)

**projectionprojectionsproject**

Equivalently, the projection \Pi_{X,Y}R is a function, i.e. Y is a function of X.

### Function (mathematics)

**functionfunctionsmathematical function**

Equivalently, the projection \Pi_{X,Y}R is a function, i.e. Y is a function of X.

### Tuple

**tuplesn-tuple5-tuple**

In simple words, if the values for the X attributes are known (say they are x), then the values for the Y attributes corresponding to x can be determined by looking them up in any tuple of R containing x.

### Subset

**supersetproper subsetsubsets**

A functional dependency FD: X → Y is called trivial if Y is a subset of X.

### Denormalization

**denormalizeddatabase denormalization**

The determination of functional dependencies is an important part of designing databases in the relational model, and in database normalization and denormalization.

### Union (set theory)

**unionset unionunions**

(Unions of attribute sets are customarily denoted by mere juxtapositions in database theory.) An important notion in this context is a candidate key, defined as a minimal set of attributes that functionally determine all of the attributes in a relation.

### Attribute domain

The functional dependencies, along with the attribute domains, are selected so as to generate constraints that would exclude as much data inappropriate to the user domain from the system as possible.

### Logical consequence

**entailmententailsfollows from**

A notion of logical implication is defined for functional dependencies in the following way: a set of functional dependencies \Sigma logically implies another set of dependencies \Gamma, if any relation R satisfying all dependencies from \Sigma also satisfies all dependencies from \Gamma; this is usually written.

### Soundness

**soundunsoundSoundness theorem**

The notion of logical implication for functional dependencies admits a sound and complete finite axiomatization, known as Armstrong's axioms.

### Completeness (logic)

**completecompletenessincompleteness**

The notion of logical implication for functional dependencies admits a sound and complete finite axiomatization, known as Armstrong's axioms.