Abstract
This paper’s revisit of infinite relational databases, a model traditionally perceived as purely theoretical, was sparked by a concrete implementation setting, and the results obtained here were used in a practical database problem. In the course of implementing a database system for querying Java software, we found that the universe of Java code can be effectively modeled as an infinite database. This modeling makes it possible to distinguish between queries which are “open-ended,” that is, whose result may grow as software components are added into the system, and queries which are “closed,” in that their result does not change as the software base grows. Further, closed queries can be implemented much more efficiently than open queries. Achievements include an algorithm for distinguishing between these two kinds of queries (we assume that queries are written in Datalog), and an algorithm to generate an efficient evaluation scheme of closed queries, which is a generalization of Vieille’s famous QSQR algorithm for top-down evaluation of Datalog programs. A by-product of this work is a rather terse and elegant representation of QSQR.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Beeri, C., Bernstein, P.A.: Computational problems related to the design of normal form relational schemas. ACM Trans. Database Syst. 4(1), 30–59 (1979)
Ceri, S., Gottlob, G., Tanca, L.: Logic programming and databases. Springer, New York (1990)
Cohen, T., Gil, J.Y., Maman, I.: JTL—the Java tools language. In: OOPSLA 2006 (2006)
Deutsch, A., Ludäscher, B., Nash, A.: Rewriting queries using views with access patterns under integrity constraints. Theoretical Comp. Sci. 371(3), 200–226 (2007)
Florescu, D., Levy, A.Y., Manolescu, I., Suciu, D.: Query optimization in the presence of limited access patterns. In: SIGMOD 1999 (1999)
Kifer, M., Ramakrishnan, R., Silberschatz, A.: An axiomatic approach to deciding query safety in deductive databases. In: PODS 1988 (1988)
Kifer, M.: On the decidability and axiomatization of query finiteness in deductive databases. J. ACM 45(4), 588–633 (1998)
Krishnamurthy, R., Ramakrishnan, R., Shmueli, O.: A framework for testing safety and effective computability of extended datalog. In: ICMD 1988 (1988)
Li, C., Chang, E.Y.: On answering queries in the presence of limited access patterns. In: Van den Bussche, J., Vianu, V. (eds.) ICDT 2001. LNCS, vol. 1973, Springer, Heidelberg (2000)
Maier, D., Ullman, J.D., Vardi, M.Y.: On the foundations of the universal relation model. ACM Trans. Database Syst. 9(2), 283–308 (1984)
Paola, R.D.: The recursive unsolvability of the decision problem for the class of definite formulas. J. ACM 16(2), 324–327 (1969)
Ramakrishnan, R., et al.: Safety of recursive Horn clauses with infinite relations. In: PODS 1987 (1987)
Sagiv, Y., Vardi, M.Y.: Safety of Datalog queries over infinite databases. In: PODS 1988 (1988)
Shmueli, O.: Decidability and expressiveness aspects of logic queries. In: PODS 1987 (1987)
Vardi, M.: The decision problem for database dependencies. Inf. Process. Lett. 12(5), 251–254 (1981)
Vieille, L.: Recursive axioms in deductive databases: The Query/Subquery approach. In: 1st Int. Conf. on Expert Database Syst. (1986)
Vieille, L.: Recursive query processing: The power of logic. Theoretical Comp. Sci. 69(1), 1–53 (1989)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cohen, S., Gil, J.(., Zarivach, E. (2007). Datalog Programs over Infinite Databases, Revisited. In: Arenas, M., Schwartzbach, M.I. (eds) Database Programming Languages. DBPL 2007. Lecture Notes in Computer Science, vol 4797. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75987-4_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-75987-4_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-75986-7
Online ISBN: 978-3-540-75987-4
eBook Packages: Computer ScienceComputer Science (R0)