<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Ph.D. Workshop, August</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Workload-Aware Discovery of Integrity Constraints for Data Cleaning</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Federal University of Parana ́</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>27</volume>
      <issue>2018</issue>
      <abstract>
        <p>Violations of integrity constraints (ICs) usually indicate that data are not consistent with a valid representation of realworld entities, and therefore data are dirty. Recent studies present facilities to make dirty databases consistent with a given set of ICs. Yet their evaluation scenarios assume humans-in-the-loop to feed ICs to their facilities. Manually designing ICs is burdensome, and it is doomed to fail if we consider the dynamic changes of data and applications. An attractive alternative is the automatic discovery of ICs, but the discovery results are mostly accidental. Our research proposal sticks to the automatic discovery approach, but it leverages information found in the application workload to mining semantically valuable ICs. This paper overviews our research on discovering ICs that are particularly suitable for data cleaning, i.e., ICs that are resilient to data and application evolutions.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Data pro ling is a complex task that helps to uncover
relevant metadata for datasets. Typical examples of metadata
include basic statistics (e.g., value distributions), patterns of
data values, and integrity constraints (ICs). These kind of
information provide valuable insights on large datasets by
serving various use-cases, such as data exploration, query
optimization, and data cleaning [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Our research program
is built upon data pro ling for data cleaning.
      </p>
      <p>
        Dirty data remain ubiquitous in enterprises. Industry and
academia constantly report the severe impact that low data
quality have on businesses [
        <xref ref-type="bibr" rid="ref11 ref6">6, 11</xref>
        ]. The key question, what
are dirty data? has been extensively studied [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], with many
studies revisiting ICs to ensure business rules over data [
        <xref ref-type="bibr" rid="ref11 ref7 ref8">7,
8, 11</xref>
        ]. In this context, violation of ICs usually indicates
that data are not consistent with a valid representation of
real-world entities, and therefore data are dirty. Many
approaches follow the idea of detecting and repairing IC
violations for data cleaning. The development of such research
trend has brought many contributions: reasoning about
various ICs, other than functional dependencies (FDs) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ];
practical techniques for ICs violation detection [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]; and methods
to repair database errors by enforcing ICs [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]; to name but
a few.
      </p>
      <p>
        It is crucial that there be e ective methods to discover ICs
from data. Manually designing ICs is a cost-prohibitive and,
worse yet, error-prone task. To do so, domain experts would
need to keep up with the ever-evolving semantics of data and
application. Moreover, the set of IC candidates is usually
too large for human validation, even for small datasets.
Indeed, many algorithms for automatic discovering of ICs have
been developed [
        <xref ref-type="bibr" rid="ref14 ref5">14, 5</xref>
        ]. In theory, data cleaning pipelines
could use IC discover algorithms to mine ICs from sample
data, and then use those ICs as data quality rules to detect
and repair errors in the database. However, the recent
evaluations of IC-based cleaning tools have only used a manual
de nition of ICs. Therefore, we believe there are still
challenges to overcome before a fully automated IC-based data
cleaning pipeline can operate.
      </p>
      <p>
        Discovering ICs from data might return non-reliable
results sets. If the discovery is carried out on dirty data, the
discovered ICs are likely dirty themselves. Even if the
discovery is carried out on cleaned samples of data, which is
hard and expensive to get, most of the discovered ICs are
likely accidental. The number of discovered ICs radically
increases as the number of attributes in the dataset goes up.
For example, datasets with dozens of attributes and a few
thousands of records produce result sets with thousands of
functional dependencies (FDs) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Although some classes
of IC allow for implication analysis to discard redundant
ICs (e.g., canonical covers of functional dependencies), the
number of discovered ICs which shows no semantic
meaning remains huge. Furthermore, the e ectiveness of current
methods for data repairing is highly in uenced by the
number of ICs the methods consider. Our goal is mining ICs for
data cleaning. If these ICs are compliant with the most
current semantics of data and application, they should help to
repair the database and spot erroneous data in future loads.
      </p>
      <p>We propose an initial approach to discovering ICs that
are relevant for data cleaning. We stick to the automatic IC
discovery approach, but to support environments in which
both data and application evolve we focus on ICs matching
the current queries in the pipe. The intuition here is to use
the query workload in the application to identify data spots
and structural fragments (e.g., set of attributes and
predicates) that are important to users. These assets generate a
workload characterization that is semantically relevant for
the current application. Our approach uses this
characterization to guide the IC discovery process. From the workload
characterization, our approach estimates a set of features for
ICs. Our vision is a classi er that leverages these features
to classify a set of ICs based on their applicability for data
cleaning. In this thesis, we aim to answer the following
research questions:</p>
      <sec id="sec-1-1">
        <title>How can database workloads bene t IC discovery?</title>
        <p>How automatic ICs discovery can serve data cleaning?</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>
        Most of the recent approaches to IC-based data cleaning
manually de ne the sets of ICs to evaluate their solutions
[
        <xref ref-type="bibr" rid="ref17 ref19">19, 17</xref>
        ]. Much of these approaches assume that ICs and
data do not change very often, and use a set of xed ICs
to repair the database through modi cation and deletions
of inconsistent tuples. A few approaches consider evolving
ICs. In this case, the database is repaired after modi cations
to both records and ICs [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. More recently, the authors
of [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] leverage automatic IC discovery for detecting data
errors. However, they use the discovered ICs (they focus on
FDs) only to generate questions that guide an interaction
with experts. The goal of this interaction is to discover as
many FD-related errors in data as possible on a budget of
questions.
      </p>
      <p>
        Most works on IC discovery have focused on attribute
dependencies. Liu et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] present a comprehensive review
of the topic. Papenbrock et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] have looked into
implementation details, experimental evaluation, and comparison
of various FD discovery algorithms. The studies on IC
discovery usually focus on the algorithmic issues of the process,
leaving the applicability of the discovered results aside. To
handle the large number of discovered ICs, some approaches
score ICs on instance-driven metrics for user validation [
        <xref ref-type="bibr" rid="ref12 ref5">12,
5</xref>
        ]. Unfortunately, these scoring schemes do not consider the
dynamic changes in data and application.
      </p>
    </sec>
    <sec id="sec-3">
      <title>MINING RELEVANT ICs</title>
      <p>This section describes the main steps we are taking
towards answering our research questions.
3.1</p>
    </sec>
    <sec id="sec-4">
      <title>Denial Constraints</title>
      <p>
        In the context of this thesis, a database is clean if it is
consistent with a given set of ICs. Some types of ICs can express
semantic rules that others ICs cannot, or vice versa. Denial
constraints (DCs) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] are known to be a response to this
expressiveness issue because they generalize important types
of ICs, such as functional dependencies (FDs), conditional
FDs, and check constraints. Recent works have introduced
methods that automatically repair the violations of DCs in
the database [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]; hence, our proposal is also based on DCs.
      </p>
      <p>
        DCs de ne sets of predicates that databases must
satisfy to prevent attributes from taking combinations of values
considered semantically inconsistent. Consider a relational
database schema R and a set of operators W : f=; 6=; &lt;;
; &gt;; g. A DC [
        <xref ref-type="bibr" rid="ref2 ref5">2, 5</xref>
        ] has the form ' : 8tx; ty; ::: 2 r, :(P1 ^
:::^Pm), where tx; ty; ::: are tuples of an instance of relation r
of R, and R 2 R. A predicate Pi is a comparison atom with
either the form v1wov2 or v1woc: v1; v2 are variables tid:Aj ,
Aj 2 R, id 2 fx; y; :::g, c is a constant from Aj 's domain,
and wo 2 W. For example, consider a schema of relation
      </p>
      <p>Employees(N ame; M anager; Salary; Bonus), Employees 2
R. A DC ' can express the constraint \if two employees
are managed by the same person, the one earning a higher
salary has a higher bonus" as follows: :(tx:M anager =
ty:M anager^tx:Salary &gt; ty:Salary^tx:Bonus &lt; ty:Bonus).</p>
      <p>An instance of relation r satis es a DC ' if at least one
predicate of ' is false, for every pair of tuples of r, i.e., the
predicates of ' cannot be all true at the same time.
3.2</p>
    </sec>
    <sec id="sec-5">
      <title>Proposed Approach</title>
      <p>We envision an automated data cleaning system. Figure
1 shows an overview of the expected system's architecture.
The system regularly collects query logs from the database
server to build workloads W. The characterization for
workload W takes into account query structures and tuples that
are selected to produce the query results. The outputs of the
workload characterization are data samples and attribute
clusters.</p>
      <p>
        The DC pro ler takes as input data samples, attribute
clusters, and, optionally, user-de ned DCs templates. The
pro ler sets the predicate space (from which DCs are mined)
according to the attribute clusters. By relying on this
predicate space, our DC discovery algorithm discovers
approximate DCs from the samples. The next step is to discard the
super uous DCs and select the relevant ones. It is
important to discard super uous DCs so that data repairing only
has to consider DCs that capture the current semantics of
the data and applications. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], we have studied the use
of query workload for automatic selection of FDs. We have
developed ranking strategies to select FDs that match the
current workload. The results have shown that it is possible
to select FDs that are semantically close to the query
workload, and with reasonably similar statistical distributions to
those general FDs produced by the exhaustive FD
discovery. However, selecting DCs is more complex and requires
further investigation. We have been evaluating decision tree
ensembles for this task. The general idea is to estimate
di erent features for DCs, and then use a classi er to
decide whether or not DCs are reliable. Feature extraction
is based on structural properties of DCs (e.g., how many
predicates they have); and metrics that correlate DCs with
the database and query workload. The DCs that are
classied as reliable are expected to hold in the database as long
as the database manipulations produce semantically clean
data. Our implementation of the DC classi er is still under
way.
      </p>
      <p>
        The last task is nding and repairing the tuples that
violate at least one constraint from the DC pro ling results.
We have been using HoloClean [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] for this task. Our
current setup only uses the DC-based error detection and error
repairing modules of the tool. However, we believe that our
system could be adjusted to produce di erent signals to feed
the probabilistic graphical model of HoloClean. For
example, deriving features from attribute clusters and samples
for the graphical model. We postpone this kind of
investigation because we have been currently focusing on the data
pro ling aspects of the system.
3.3
      </p>
    </sec>
    <sec id="sec-6">
      <title>Discovering DCs</title>
      <p>
        We have rst worked on the algorithmic issues of
discovering DCs from data. At the beginning of our research
program, the only known algorithm for DC discovery was
FASTDC [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], for which there was no publicly available
imQuery Workload 
plementation. We have implemented FASTDC from scratch,
and our results agree with those of the original publication.
Next, we brie y describe FASTDC, and the overall
improvements we have developed for the algorithm.
      </p>
      <p>
        The rst step to discover DCs is to set the predicate space
P from which DCs are derived. Experts may de ne
predicates for attributes based on the database structure or use
specialized tools for the task, e.g., [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The satis ed
predicate set Qt ;t of an arbitrary pair of tuples (t ; t ) 2 r
is a subset Q P such that for every P 2 Q, P (t ; t ) is
true. The set of satis ed predicate sets of r is the evidence
set Er = fQt ;t j 8(t ; t ) 2 rg. Di erent tuple pairs
may return the same predicate set, hence, each Q 2 Er is
associated with an occurrence counter.
      </p>
      <p>
        A cover for Er is a set of predicates that intersects with
every satis ed predicate set of Er, and it is minimal if none
of its subsets equally intersects with Er. The authors of
FASTDC demonstrate that minimal covers of Er represent
the predicates of minimal DCs [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. FASTDC uses a
depthrst search (DFS) strategy to nd minimal covers for Er.
      </p>
      <p>
        FASTDC builds the evidence set by evaluating every
predicates of the predicate space P on every pair of tuples of
relation instance r. Our improved version of the algorithm,
BFASTDC [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], is a bitwise version of FASTDC that
exploits bit-level operations to avoid unnecessary tuple
comparisons. BFASTDC builds associations between attribute
values and lists of tuple identi ers so that di erent
combinations of these associations indicate which tuple pairs
satisfy predicates. To frame evidence sets, BFASTDC operates
over auxiliary bit structures that store predicate satisfaction
data. This allows our algorithm to use simple logical
operations (e.g., conjunctions and disjunctions) to imply the
satisfaction of remaining predicates. In addition, BFASTDC
can use two modi cations described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] to discover
approximate and constant DCs. These DCs variants let the
discovery process to work with data containing errors (e.g.,
integrated data from multiple sources).
      </p>
      <p>
        In our experiments, BFASTDC produced considerable
improvements on DC discovery performance (up to 24-fold
compared to FASTDC). Unfortunately, the number of
discovered DCs were unmanageably large, even after selecting
only the DCs with high scores for the interestingness
dimension described by the authors of FASTDC [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Discovering DCs handles large search spaces. Thus,
running times for DC discovery increase when more tuples are
considered, and dramatically increase when the discovery is
set for large predicate spaces. Instead of running BFASTDC
over the entire dataset and large predicate spaces, our
system focuses the discovery e orts on areas that are relevant
for the application workload.
3.4</p>
    </sec>
    <sec id="sec-7">
      <title>Workload Characterization</title>
      <p>We hypothesize that the information from the application
workload (e.g., selection lters in SQL statements) is a
powerful asset to narrow the large number of DCs discovered.
Query workloads present strong access patterns which,
either in horizontal level (individual tuples) or vertical level
(individual attributes), points out to speci c database
regions that are more frequently accessed than others.</p>
      <p>Consider a set of user queries Q = fq1; :::; qmg, which is
expected to run on the database. For simplicity, we assume
there is only one relation in the database. For each query qi,
our system associates the attributes in the operators of the
query qi (e.g., projection and selection) to the attributes of
the relation R(A1; :::; An) to de ne an attribute occurrence
matrix (AOM) O as follows:
oij =</p>
      <sec id="sec-7-1">
        <title>1 if qi uses attribute Aj ;</title>
        <p>0 othewise:
Each entry oij indicates which attributes of relation R is
required to answer query qi.</p>
        <p>
          The AOM model is straightforward but can be enhanced
to support dynamic workloads in which the incoming queries
are not necessarily identical to each other. We use the
approach described in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], which models workloads as sets of
pairs of queries and their weights W = fhq1; w1i; :::; hqn; wnig.
Each weight wi is associated with a query qi, and measures
the signi cance of query qi in the workload. Thus, AOMs
are weighted according to the importance of their queries.
The AOMs for each application are straightforward to model
if the domain experts are aware of the applications that
will run on the database. Furthermore, modern DBMSs
commonly provide tools to help with this kind of workload
modeling [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          The authors of [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] describe a probabilistic distribution
method to measure the similarity of incoming queries and
workload W. Our system uses this method to identify
substantial changes in the workload so that it knows when
to start pro ling DCs again. For each di erent workload,
our system estimates data samples and predicate spaces for
which the DC discovery run.
        </p>
        <p>
          The data samples are expected to represent the data that
is most accessed by applications and, therefore, spot data
that likely produce most errors. We have been testing three
strategies to build samples from queries. The baseline (naive)
strategy is building a single sample with every tuple that is
used to answer the queries in the workload. The second
strategy is building a sample for each fundamental region
[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. They partition the tuples of the relation instance such
that each region intersects with the tuples selected by a
maximum number of queries. The third strategy is based on a
self-pruning splay tree (SPST) index [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The SPST keeps
the most accessed tuple references near the root of the tree.
Thus, our system uses the strategy of [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] to prune the tree
and to build samples from the remaining partitions.
        </p>
        <p>
          Predicate spaces come from AOMs, and restrict the search
space of DC discovery for predicates having a high a nity to
each other. Our system uses the frequency of attributes in
the queries to transform AOMs into attribute a nity
matrices (AAMs), in which each entry represents the sum of
access frequencies of all queries for that attribute. Further,
it uses the graph-based algorithm described in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] to build
a spanning tree from which attribute clusters are derived.
These clusters form the predicate spaces as follows. The
system de nes single and two-tuple predicates on
categorical attributes using operators f=; 6=g; and on numerical
attributes using operators f=; 6=; &lt;; &gt;; ; g. It de nes
predicates involving two di erent attributes provided that the
values of the two attributes are in the same order of
magnitude.
        </p>
        <p>BFASTDC runs for every pair of predicate space and
data sample. The output of this phase are sets of
approximate DCs (i.e., DCs approximately satis ed by the whole
dataset). In preliminary experiments, we noticed that many
of these DCs were, in fact, exact, or at least had similar
structures to many DCs found in exhaustive discovery.
3.5</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Features for DCs</title>
      <p>Among the discovered DCs, how to choose those that are
relevant for data cleaning? To answer that question, we are
building a classi er that simulates the experts judging. The
main challenge is to form descriptions of \good" DCs. We
have included the workload characterization in the discovery
process so that our system can estimate features regarding
DC's application adherence, and not only estimate features
regarding data support.</p>
      <p>
        So far, we have considered the following features for DCs:
statistical signi cance of DCs for the input dataset, as in
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]; the number of predicates [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]; similarity between pairs of
DCs, an adaptation of the method described in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ];
similarity between DCs and AAMs, also an adaptation of [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]; and
number of DC-related errors in samples and entire dataset.
      </p>
      <p>
        We have been developing ensembles [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] to combine di
erent decision trees, which are trained upon the above features.
For now, the training sets for the learning decision trees are
user-de ned DCs templates. One could also use the set of
DCs currently de ned in the database, or manually de ne
acceptable values for the features of the DCs.
      </p>
    </sec>
    <sec id="sec-9">
      <title>RESEARCH PLAN</title>
      <p>
        This research program is currently in its second year. The
research challenges we will have to face to answer our
research questions are as follows. First, we will establish an
evaluation scenario in which data, DCs and applications are
evolving. So far, we have been running preliminary
experiments on datasets that have already been used to evaluate
DC discovery [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We plan to adapt the evaluation
protocols of [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for our workload-aware scenario. Then,
we will de ne and detail the metrics that classify DCs as
suitable for data cleaning. With these metrics in place, we
should be able to devise rules to know when a DC is no
longer valid. Such metrics will also help to evaluate the
overall system accuracy. Finally, we plan to compare the
accuracy and scalability of our system against traditional
cleaning solutions.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Abedjan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Golab</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          .
          <article-title>Pro ling relational data: A survey</article-title>
          .
          <source>The VLDB Journal</source>
          ,
          <volume>24</volume>
          (
          <issue>4</issue>
          ):
          <volume>557</volume>
          {
          <fpage>581</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bertossi</surname>
          </string-name>
          .
          <article-title>Database Repairing and Consistent Query Answering</article-title>
          . Morgan &amp; Claypool Publishers,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          , G. Das, and
          <string-name>
            <given-names>V.</given-names>
            <surname>Narasayya</surname>
          </string-name>
          .
          <article-title>Optimized strati ed sampling for approximate query processing</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>32</volume>
          (
          <issue>2</issue>
          ),
          <year>June 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Narasayya</surname>
          </string-name>
          .
          <article-title>Self-tuning database systems: A decade of progress</article-title>
          .
          <source>In VLDB</source>
          , pages
          <volume>3</volume>
          {
          <fpage>14</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>X.</given-names>
            <surname>Chu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. F.</given-names>
            <surname>Ilyas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Papotti</surname>
          </string-name>
          .
          <article-title>Discovering denial constraints</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>6</volume>
          (
          <issue>13</issue>
          ):
          <volume>1498</volume>
          {
          <fpage>1509</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>W. W.</given-names>
            <surname>Eckerson</surname>
          </string-name>
          .
          <article-title>Data quality and the bottom line: achieving business success through a commitment to high quality data</article-title>
          .
          <source>Technical report, Data Warehousing Institute</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          .
          <article-title>Data quality: From theory to practice</article-title>
          .
          <source>SIGMOD Rec</source>
          .,
          <volume>44</volume>
          (
          <issue>3</issue>
          ):7{
          <fpage>18</fpage>
          ,
          <string-name>
            <surname>Dec</surname>
          </string-name>
          .
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Geerts</surname>
          </string-name>
          .
          <article-title>Foundations of Data Quality Management</article-title>
          . Morgan &amp; Claypool Publishers,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Geerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Kementsietsidis</surname>
          </string-name>
          .
          <article-title>Conditional functional dependencies for capturing data inconsistencies</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>33</volume>
          (
          <issue>2</issue>
          ):6:
          <issue>1</issue>
          {6:
          <fpage>48</fpage>
          ,
          <year>June 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Holanda</surname>
          </string-name>
          and E. C. de Almeida.
          <article-title>Spst-index: A self-pruning splay tree index for caching database cracking</article-title>
          .
          <source>In EDBT</source>
          , pages
          <volume>458</volume>
          {
          <fpage>461</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>I. F.</given-names>
            <surname>Ilyas</surname>
          </string-name>
          and
          <string-name>
            <given-names>X.</given-names>
            <surname>Chu</surname>
          </string-name>
          .
          <article-title>Trends in cleaning relational data: Consistency and deduplication</article-title>
          .
          <source>Foundations and Trends in Databases</source>
          ,
          <volume>5</volume>
          (
          <issue>4</issue>
          ):
          <volume>281</volume>
          {
          <fpage>393</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Liu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          .
          <article-title>Discover dependencies from data - a review</article-title>
          .
          <source>IEEE TKDE</source>
          ,
          <volume>24</volume>
          (
          <issue>2</issue>
          ):
          <volume>251</volume>
          {
          <fpage>264</fpage>
          ,
          <string-name>
            <surname>Feb</surname>
          </string-name>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Navathe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Karlapalem</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ra</surname>
          </string-name>
          .
          <article-title>A mixed partitioning methodology for distributed database design</article-title>
          .
          <source>Journal of Computer and Software Engineering</source>
          ,
          <volume>3</volume>
          (
          <issue>4</issue>
          ),
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Papenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ehrlich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Marten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Neubert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Rudolph</surname>
          </string-name>
          , M. Schonberg, J. Zwiener, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          .
          <article-title>Functional dependency discovery: An experimental evaluation of seven algorithms</article-title>
          .
          <source>PVLDB.</source>
          ,
          <volume>8</volume>
          (
          <issue>10</issue>
          ):
          <volume>1082</volume>
          {
          <fpage>1093</fpage>
          ,
          <year>June 2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>E. H. M.</given-names>
            <surname>Pena</surname>
          </string-name>
          and E. C. de Almeida. Uso de insta^ncias de dados e carga de trabalho para mineraca~o de restric~oes de integridade.
          <source>In SBBD</source>
          , pages
          <volume>312</volume>
          {
          <fpage>317</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>E. H. M.</given-names>
            <surname>Pena</surname>
          </string-name>
          and E. C. de Almeida.
          <article-title>Bfastdc: a bitwise algorithm for mining denial constraints</article-title>
          .
          <source>In DEXA</source>
          <year>2018</year>
          , to appear.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Rekatsinas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. F.</given-names>
            <surname>Ilyas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Re</surname>
          </string-name>
          . Holoclean:
          <article-title>Holistic data repairs with probabilistic inference</article-title>
          .
          <source>PVLDB Endow</source>
          .,
          <volume>10</volume>
          (
          <issue>11</issue>
          ):
          <volume>1190</volume>
          {
          <fpage>1201</fpage>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Thirumuruganathan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Berti-Equille</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ouzzani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-A.</given-names>
            <surname>Quiane-Ruiz</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>N.</given-names>
            <surname>Tang</surname>
          </string-name>
          .
          <article-title>Uguide: User-guided discovery of fd-detectable errors</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <volume>1385</volume>
          {
          <fpage>1397</fpage>
          , New York, NY, USA,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Volkovs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Chiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Szlichta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Miller</surname>
          </string-name>
          .
          <article-title>Continuous data cleaning</article-title>
          .
          <source>In ICDE</source>
          , pages
          <volume>244</volume>
          {
          <fpage>255</fpage>
          ,
          <string-name>
            <surname>March</surname>
          </string-name>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hadjieleftheriou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Ooi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Procopiuc</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          .
          <article-title>On multi-column foreign key discovery</article-title>
          .
          <source>PVLDB.</source>
          ,
          <volume>3</volume>
          (
          <issue>1-2</issue>
          ), Sept.
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>Z.-H.</given-names>
            <surname>Zhou</surname>
          </string-name>
          . Ensemble Methods:
          <article-title>Foundations and Algorithms</article-title>
          . Chapman &amp; Hall/CRC, 1st edition,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>