The authors describe a scheme to utilize semantic knowledge in optimizing a user-specified query. The semantics is represented as function-free clauses in predicate logic. The scheme uses a graph-theoretic approach to identify redundant joins and restrictions present in a given query while adding additional profitable specifications to it. Dynamic and heuristic interaction of three entities-schema, semantics, and query-forms the basis of the algorithm. The implementation architecture of the algorithm and test results on a representative set of data are presented. Issues associated with updating of semantic constraints are addressed, and an algorithm for semantic maintenance is introduced.
展开▼