  In the current paper, we propose to fuse together stored data (tables) and
their functional dependencies (FDs) inside a DBMS. We aim to make FDs
first-class citizens: objects which can be queried and used to query data. Our
idea is to allow analysts to explore both data and functional dependencies
using the database interface. For example, an analyst may be interested in such
tasks as: "find all rows which prevent a given functional dependency from
holding", "for a given table, find all functional dependencies that involve a
given attribute", "project all attributes that functionally determine a
specified attribute".
  For this purpose, we propose: (1) an SQL-based query language for querying a
collection of functional dependencies (2) an extension of the SQL SELECT clause
for supporting FD-based predicates, including approximate ones (3) a special
data structure intended for containing mined FDs and acting as a mediator
between user queries and underlying data. We describe the proposed extensions,
demonstrate their use-cases, and finally, discuss implementation details and
their impact on query processing.
