# Functional Dependency Inference Problem (Dependency Inference Problem)

## Description

The functional dependency inference problem is to find a cover for the set of functional dependencies that hold in a given relation.

A functional dependency (abbr. FD), $f$, is a statement $f: X \rightarrow Y$ where $X$ and $Y$ are sets of attributes. If $R(X, Y, \ldots)$ is a relation on a set of attributes that contains $X$ and $Y$, then $R$ obeys the FD $f$ if every two tuples of $R$ which have the same projection on $X$ also have the same projection on $Y$. Given $f: X \rightarrow Y$, we say that $f$ is a functional dependency from $X$ to $Y$, that $Y$ is functionally dependent on $X$ or that $X$ functionally determines $Y$. From the definition it follows that for each pair of sets $X$ and $Y$ there is at most one functional dependency from $X$ to $Y$. Therefore, we usually omit the name of the FD and write $X \rightarrow Y$.

## Related Problems

Related: Multivalued Dependency Inference Problem

## Parameters

$n$: number of attributes

$p$: number of tuples/rows/data points

## Table of Algorithms

Name | Year | Time | Space | Approximation Factor | Model | Reference |
---|---|---|---|---|---|---|

Brute force algorithm | 1967 | $O(n^{2} {2}^n p \log p)$ | $O(n2^n)$? | Exact | Deterministic | Time |

Schlimmer | 1993 | $O(n {2}^n p)$ | $O({2}^n)$ | Exact | Deterministic | Time |

## Time Complexity Graph

## References/Citation

https://www.sciencedirect.com/science/article/pii/0166218X92900315