![]() ![]() ![]() |
![]() |
|
|
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Return to Aggregation, Prediction & Constraints (Session B8) We present the BHUNT scheme for automatically discovering algebraic constraints between pairs of columns in relational data. The constraints may be "fuzzy" in that they hold for most, but not all, of the records, and the columns may be in the same table or different tables. Such constraints are of interest in the context of both data mining and query optimization, and the BHUNT methodology can potentially be adapted to discover fuzzy functional dependencies and other use- ful relationships. BHUNT first identifies candidate sets of column value pairs that are likely to satisfy an alge- braic constraint. This discovery process exploits both system catalog information and data samples, and em- ploys pruning heuristics to control processing costs. For each candidate, BHUNT constructs algebraic con- straints by applying statistical histogramming, segmen- tation, or clustering techniques to samples of column values. Using results from the theory of tolerance inter- vals, the sample sizes can be chosen to control the num- ber of "exception" records that fail to satisfy the discov- ered constraints. In query-optimization mode, BHUNT can automatically partition the data into normal and ex- ception records. During subsequent query processing, queries can be modified to incorporate the constraints; the optimizer uses the constraints to identify new, more efficient access paths. The results are then combined with the results of executing the original query against the (small) set of exception records. Experiments on a very large database using a prototype implementation of BHUNT show reductions in table accesses of up to two orders of magnitude, leading to speedups in query processing by up to a factor of 6.8. ![]() ©2004 Association for Computing Machinery |