Abstract

Query languages provide the users of a database the ability to extract information from stored data. It is desirable that a query language be declarative. While the relational query languages are declarative, they have been found to have inadequate expressive power. The query language Datalog extends the querying abilities of the relational languages. Bottom-up evaluation techniques have been developed to compute datalog queries. During bottom-up evaluation of a datalog query, stored tuples as well as tuples generated during the evaluation of the query, are accessed. However, in the course of the evaluation, many tuples become redundant, i.e., they are no longer needed for the remainder of the evaluation. The detection of redundant tuples can be useful for enhancing concurrency and memory utilization. In this thesis, we provide a framework for detecting redundant tuples during bottom-up evaluation of datalog queries. We show that by a set of auxiliary runtime tests that extend a bottom-up evaluation, we can detect redundant tuples at runtime. We also discover that by a compile-time analysis, we can determine the datalog queries for which detecting redundant tuples is attractive. We present a formal definition of redundant tuples that is appropriate for bottom-up model of evaluation. We propose a set of auxiliary runtime tests. We define two properties, emptiness and used-at-most-once, of datalog queries. For the queries that satisfy either of these compile-time properties, the detection of redundant tuples is attractive. We present algorithms and complexity results for the problem to decide whether a datalog program satisfies either of the two properties. We have shown a relationship between the complexity of deciding these properties and that of deciding the equivalence of a recursive and a nonrecursive datalog program. We provide the complexity results for the equivalence problem as well.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.