What you Always Wanted to Know About Datalog (And Never Dared to Ask)

Datalog, a database query language based on the logic programming paradigm, is described. The syntax and semantics of Datalog and its use for querying a relational database are presented. Optimization methods for achieving efficient evaluations of Datalog queries are classified, and the most relevant methods are presented. Various improvements of Datalog currently under study are discussed, and what is still needed in order to extend Datalog's applicability to the solution of real-life problems is indicated. >

[1]  Leopold Löwenheim Über Möglichkeiten im Relativkalkül , 1915 .

[2]  D. Hilbert Axiomatisches Denken , 1917 .

[3]  K. Gödel Die Vollständigkeit der Axiome des logischen Funktionenkalküls , 1930 .

[4]  K. Gödel Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I , 1931 .

[5]  G. Gentzen Die Widerspruchsfreiheit der reinen Zahlentheorie , 1936 .

[6]  Stephen Warshall,et al.  A Theorem on Boolean Matrices , 1962, JACM.

[7]  Chen C. Chang,et al.  Model Theory: Third Edition (Dover Books On Mathematics) By C.C. Chang;H. Jerome Keisler;Mathematics , 1966 .

[8]  Richard C. T. Lee,et al.  Symbolic logic and mechanical theorem proving , 1973, Computer science classics.

[9]  Henry S. Warren,et al.  A modification of Warshall's algorithm for the transitive closure of binary relations , 1975, Commun. ACM.

[10]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[11]  Peter Aczel,et al.  An Introduction to Inductive Definitions , 1977 .

[12]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[13]  Donald W. Loveland,et al.  Automated theorem proving: a logical basis , 1978, Fundamental studies in computer science.

[14]  Jack Minker,et al.  Logic and Data Bases , 1978, Springer US.

[15]  Claus-Peter Schnorr,et al.  An Algorithm for Transitive Closure with Linear Expected Time , 1978, SIAM J. Comput..

[16]  Alfred V. Aho,et al.  Universality of data retrieval languages , 1979, POPL.

[17]  Stuart C. Shapiro,et al.  Using Active Connection Graphs for Reasoning with Recursive Rules , 1981, IJCAI.

[18]  Mark E. Stickel,et al.  A Unification Algorithm for Associative-Commutative Functions , 1981, JACM.

[19]  Jonathan J. King QUIST: A System for Semantic Query Optimization in Relational Databases , 1981, VLDB.

[20]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[21]  Hans-Jörg Schek,et al.  Remarks on the algebra of non first normal form relations , 1982, PODS.

[22]  G. Jomier,et al.  Interfacing Prolog and Relational Data Base Management Systems , 1984, ICOD-2 Workshop on New Applications of Data Bases.

[23]  Haruo Yokota,et al.  A relational data base machine: First step to knowledge base machine , 1983, ISCA '83.

[24]  Lawrence J. Henschen,et al.  On compiling queries in recursive first-order databases , 1984, JACM.

[25]  Adrian Walker,et al.  PROSQL: A Prolog Programming Interface with SQL/DS , 1984, Expert Database Workshop.

[26]  Antonin Guttman,et al.  New Features for Relational Database Systems to Support CAD Applications , 1984 .

[27]  Kazuhiro Fuchi Revisiting Original Philosophy of Fifth Generation Computer Systems Project , 1984, FGCS.

[28]  Antonin Guttman New features for a relational database system to support computer aided design , 1984 .

[29]  Jeffrey D. Ullman,et al.  Implementation of logical query languages for databases , 1985, TODS.

[30]  Melvin Fitting,et al.  A Kripke-Kleene Semantics for Logic Programs , 1985, J. Log. Program..

[31]  John C. Shepherdson,et al.  Negation as Failure II , 1985, J. Log. Program..

[32]  Carlo Zaniolo,et al.  On the implementation of a simple class of logic queries for databases , 1985, PODS.

[33]  François Bancilhon,et al.  Naive Evaluation of Recursively Defined Relations , 1986, On Knowledge Base Management Systems.

[34]  Eliezer L. Lozinskii,et al.  Evaluating Queries in Deductive Databases by Generating , 1985, IJCAI.

[35]  David Maier,et al.  Magic sets and other strange ways to implement logic programs (extended abstract) , 1985, PODS '86.

[36]  Setrag Khoshafian,et al.  A calculus for complex objects , 1985, PODS '86.

[37]  David Harel,et al.  Horn Clauses Queries and Generalizations , 1985, J. Log. Program..

[38]  Carlo Zaniolo The Representation and Deductive Retrieval of Complex Objects , 1985, VLDB.

[39]  Don Batory,et al.  Query Processing in Database Systems , 2011, Topics in Information Systems.

[40]  Georges Gardarin,et al.  Evaluation of database recursive logic programs as recurrent function series , 1986, SIGMOD '86.

[41]  Jorge B. Bocca On the evaluation strategy of EDUCE , 1986, SIGMOD '86.

[42]  Carlo Zaniolo,et al.  LDL: A Logic-Based Data Language , 1986, VLDB.

[43]  An Amateur's Introduction to Recursive Query Processing Strategies , 1986, SIGMOD Conference.

[44]  Georg Gottlob,et al.  Translation and Optimization of Logic Queries: The Algebraic Approach , 1986, VLDB.

[45]  Patrick Valduriez,et al.  Evaluation of Recursive Queries Using Join Indices , 1986, Expert Database Conf..

[46]  Hidenori Itoh,et al.  Research and Development on Knowledge Bases Systems at ICOT , 1986, VLDB.

[47]  Umeshwar Dayal,et al.  Traversal recursion: a practical approach to supporting recursive applications , 1986, SIGMOD '86.

[48]  Yannis E. Ioannidis,et al.  On the Computation of the Transitive Closure of Relational Operators , 1986, VLDB.

[49]  Hendrik Decker,et al.  Some Steps Towards a DBMS-based KBMS , 1986, IFIP Congress.

[50]  Jeffrey D. Ullman,et al.  Design Overview of the NAIL! System , 1986, ICLP.

[51]  R. Ramakrishnan,et al.  An amateur's introduction to recursive query processing strategies , 1986, SIGMOD '86.

[52]  Michael Kifer,et al.  Filtering Data Flow in Deductive Databases , 1986, ICDT.

[53]  Laurent Vieille,et al.  Recursive Axioms in Deductive Databases: The Query/Subquery Approach , 1986, Expert Database Conf..

[54]  David E. Smith,et al.  Controlling Recursive Inference , 1986, Artif. Intell..

[55]  Eugene Wong,et al.  An Algebraic Approach to Recursive Inference , 1986, Expert Database Conf..

[56]  John Grant,et al.  Semantic Query Optimization: Additional Constraints and Control Strategies , 1986, Expert Database Conf..

[57]  Yehoshua Sagiv,et al.  Optimizing datalog programs , 1987, Foundations of Deductive Databases and Logic Programming..

[58]  Michael Stonebraker,et al.  The POSTGRES Papers , 1987 .

[59]  Wolfgang Nejdl,et al.  Recursive Strategies for Answering Recursive Queries - The RQA/FQI Strategy , 1987, VLDB.

[60]  Carlo Zaniolo,et al.  Magic counting methods , 1987, SIGMOD '87.

[61]  The Advanced Database Environment of the KIWI System , 1987, IEEE Data Eng. Bull..

[62]  Gabriel M. Kuper,et al.  Logic programming with sets , 1987, J. Comput. Syst. Sci..

[63]  Catriel Beeri,et al.  On the power of magic , 1987, J. Log. Program..

[64]  G. Gardarin,et al.  Les systèmes de gestion de bases de données déductives , 1987 .

[65]  Werner Kießling,et al.  On the Evaluation of Recursion in (Deductive) Database Systems by Efficient Differential Fixpoint Iteration , 1987, ICDE.

[66]  Letizia Tanca,et al.  Optimization of Systems of Algebraic Equations for Evaluating Datalog Queries , 1987, VLDB.

[67]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[68]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

[69]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

[70]  Laurent Vieille,et al.  A Database-Complete Proof Procedure Based on SLD-Resolution , 1987, ICLP.

[71]  Patrick Valduriez,et al.  FAD, a Powerful and Simple Database Language , 1987, VLDB.

[72]  Catriel Beeri,et al.  On the power of languages for manipulation of complex objects , 1987, VLDB 1987.

[73]  Rakesh Agrawal Alpha: An extension of relational algebra to express a class of recursive queries , 1987, 1987 IEEE Third International Conference on Data Engineering.

[74]  Shamim A. Naqvi,et al.  Set Grouping and Layering in Horn Clause Programs , 1987, ICLP.

[75]  H. V. Jagadish,et al.  Direct Algorithms for Computing the Transitive Closure of Database Relations , 1987, VLDB.

[76]  Georges Gardarin,et al.  Magic Functions: A Technique to Optimize Extended Datalog Recursive Programs , 1987, VLDB.

[77]  Sartaj Sahni,et al.  All Pairs Shortest Paths on a Hypercube Multiprocessor , 1987, ICPP.

[78]  C. Zaniolo,et al.  An Overview of the LDL System , 1987, IEEE Data Eng. Bull..

[79]  Catriel Beeri,et al.  Sets and negation in a logic data base language (LDL1) , 1987, PODS.

[80]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[81]  William F. Clocksin,et al.  Programming in Prolog , 1987, Springer Berlin Heidelberg.

[82]  Yatin P. Saraiya,et al.  YAWN! (Yet Another Window on NAIL!) , 1987, IEEE Data Eng. Bull..

[83]  Serge Abiteboul,et al.  Data functions, datalog and negation , 1988, SIGMOD '88.

[84]  Michael L. Brodie Future Intelligent Information Systems: AI and Database Technologies Working Together , 1988, AAAI.

[85]  Katherine A. Morris,et al.  An algorithm for ordering subgoals in NAIL? , 1988, PODS.

[86]  Raghu Ramakrishnan,et al.  Performance Evaluation of Data Intensive Logic Programs , 1988, Foundations of Deductive Databases and Logic Programming..

[87]  John C. Shepherdson,et al.  Negation in Logic Programming , 1988, Foundations of Deductive Databases and Logic Programming..

[88]  Eugene Wong,et al.  Transforming Nonlinear Recursion into Linear Recursion , 1988, Expert Database Conf..

[89]  John Grant,et al.  Foundations of Semantic Query Optimization for Deductive Databases , 1988, Foundations of Deductive Databases and Logic Programming..

[90]  Ashok K. Chandra Theory of database queries , 1988, PODS '88.

[91]  Letizia Tanca,et al.  MilAnt : an extension of Datalog with complex objects, functions and negation , 1988 .

[92]  H. V. Jagadish,et al.  Multiprocessor Transitive Closure Algorithms , 1988, Proceedings [1988] International Symposium on Databases in Parallel and Distributed Systems.

[93]  Laurent Vieille From QSQ towards QoSaQ: Global Optimization of Recursive Queries , 1988, Expert Database Conf..

[94]  Yannis E. Ioannidis,et al.  Bermuda - An Architectural Perspective on Interfacing Prolog to a Database Machine , 1988, Expert Database Conf..

[95]  Carlo Zaniolo,et al.  Optimization in a Logic Based Language for Knowledge and Data Intensive Applications , 1988, EDBT.

[96]  Serge Abiteboul,et al.  Procedural and declarative database update languages , 1988, PODS '88.

[97]  Letizia Tanca,et al.  The Algres Project , 1988, EDBT.

[98]  Catriel Beeri,et al.  Data Models and Languages for Databases , 1988, ICDT.

[99]  Jeffrey D. Ullman,et al.  Principles of database and knowledge-base systems, Vol. I , 1988 .

[100]  Frédéric Cuppens,et al.  A Prolog-Relational DBMS Interface Using Delayed Evaluation , 1988, JCDKB.

[101]  Michael V. Mannino,et al.  Statistical profile estimation in database systems , 1988, CSUR.

[102]  Christos H. Papadimitriou,et al.  Why not negation by fixpoint? , 1988, PODS '88.

[103]  Rakesh Agrawal Alpha: An Extension of Relational Algebra to Express a Class of Recursive Queries , 1988, IEEE Trans. Software Eng..

[104]  Kenneth A. Ross,et al.  Unfounded sets and well-founded semantics for general logic programs , 1988, PODS.

[105]  Catriel Beeri,et al.  Optimizing existential datalog queries , 1988, PODS.

[106]  David Maier,et al.  Computing with logic , 1988 .

[107]  Adrian Walker,et al.  Towards a Theory of Declarative Knowledge , 1988, Foundations of Deductive Databases and Logic Programming..

[108]  Serge Abiteboul,et al.  Object identity as a query language primitive , 1989, SIGMOD '89.

[109]  Allen Van Gelder,et al.  The Alternating Fixpoint of Logic Programs with Negation , 1993, J. Comput. Syst. Sci..

[110]  Teodor C. Przymusinski Every logic program has a natural stratification and an iterated least fixed point model , 1989, PODS.

[111]  François Bry,et al.  Logic programming as constructivism: a formalization and its application to databases , 1989, PODS.

[112]  Kenneth A. Ross,et al.  A procedural semantics for well founded negation in logic programs , 1989, J. Log. Program..

[113]  Michael Stonebraker,et al.  Future Directions in DBMS Research , 1989 .

[114]  Georg Gottlob,et al.  Efficient Database Access from Prolog , 1989, IEEE Trans. Software Eng..

[115]  Letizia Tanca,et al.  Integration of Functions in the Fixpoint Semantics of Rule-Based Systems , 1989, MFDBS.

[116]  Shamim A. Naqvi,et al.  A Logical Language for Data and Knowledge Bases , 1989 .

[117]  Letizia Tanca,et al.  Logic Programming and Databases , 1990, Surveys in Computer Science.

[118]  Gianfranco Lamperti,et al.  Algres: An Advanced System for Complex Applications , 1990, IEEE Softw..

[119]  Kenneth A. Ross,et al.  The well-founded semantics for general logic programs , 1991, JACM.