Magic Sets and Other Strange Ways to Implement Logic Programs

François Bancilhon, David Maier, Yehoshua Sagiv, Jeffrey D. Ullman. Magic Sets and Other Strange Ways to Implement Logic Programs. In Proceedings of the Fifth ACM SIGACT-SIGMOD Symposium on Principles of Database Systems, March 24-26, 1986, Cambridge, Massachusetts. pages 1-15, ACM, 1986. [doi]

Abstract

Several methods for implementing database queries expressed as logical rules are given and they are compared for efficiency. One method, called “magic sets,” is a general algorithm for rewriting logical rules so that they may be implemented bottom- UP (= forward chaining) in a way that cuts down on the irrelevant facts that are generated. The advantage of this scheme is that by working bottom-up, we can take advantage of efficient methods for doing massive joins. Two other methods are ad hoc ways of implementing “linear” rules, i.e., rules where at most one predicate in any body is recursive. These methods are introduced not only because they could be the right way to implement certain queries, but because they illustrate the difficulty of proving anything concrete about optimal ways to evaluate queries.