Answering recursive queries using views
PODS '97 Proceedings of the sixteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Data integration: a theoretical perspective
Proceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
An algorithm for answering queries efficiently using views
ADC '01 Proceedings of the 12th Australasian database conference
ICDE '96 Proceedings of the Twelfth International Conference on Data Engineering
Information Integration Using Logical Views
ICDT '97 Proceedings of the 6th International Conference on Database Theory
A Scalable Algorithm for Answering Queries Using Views
VLDB '00 Proceedings of the 26th International Conference on Very Large Data Bases
Answering queries using views: A survey
The VLDB Journal — The International Journal on Very Large Data Bases
A logic-based approach to data integration
Theory and Practice of Logic Programming
Hi-index | 0.00 |
There are several algorithms for the problem of query rewriting using views, including the bucket-based algorithms and the inverse rule-based algorithms. The inverse rule-based algorithms have considered the problem in the presence of functional dependencies. However, there are few papers that consider the influences of functional dependencies from the point of view of the bucket-based algorithms. In this paper, we discuss this issue in the bucket-based framework. We mainly consider how to use conditions weaker than the ones in the previous algorithms when forming a set of buckets. The novelty of our approach is that we can enforce additional constraints on the non-exported attributes in a view through functional dependencies. As a result, more valid buckets can be formed. We can then generate additional rewritings which cannot be generated by the previous algorithms. We prove that our algorithm is sound and complete, i.e., the union of the obtained rewriting is a maximally-contained rewriting relative to functional dependencies under certain assumptions. In addition, we also discuss how to construct a recursive rewriting by making use of functional dependencies.