PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Minimum and maximum predicates in logic programming
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
The well-founded semantics of aggregation
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
Shortest path by approximation in logic programs
ACM Letters on Programming Languages and Systems (LOPLAS)
Hy+: a Hygraph-based query and visualization system
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Dynamic Programming in Datalog with Aggregates
IEEE Transactions on Knowledge and Data Engineering
Time in multidimensional databases
Multidimensional databases
Visualizing and querying software structures
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
Using Hy+ for network management and distributed debugging
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Hi-index | 0.00 |
We present facilities for computing aggregate functions over sets of tuples and along paths in a database graph.We show how Datalog can be extended to compute a large class of queries with aggregates without incurring the large expense of a language with general set manipulation capabilities. In particular, we aim for queries that can be executed efficiently in parallel, using the class NC and its various subclasses as formal models of low parallel complexity.Our approach retains the standard relational notion of relations as sets of tuples, not requiring the introduction of multisets. For the case where no rules are recursive, the language is exactly as expressive as Klug's first order language with aggregates. We show that this class of non-recursive programs cannot express transitive closure (unless LOGSPACE=NLOGSPACE), thus providing evidence for a widely believed but never proven folk result. We also study the expressive power and complexity of languages that support aggregation over recursion.We then describe how these facilities, as well as manipulating the length of paths in database graphs, are incorporated into our visual query language GraphLog. While GraphLog could easily be extended to handle all the queries described above, we prefer to restrict the language in a natural way to avoid explicit recursion; all recursion is expressed as transitive closure. We show that this guarantees all expressible queries are in NC. We analyze other proposals and show that they can express queries that are logspace-complete for P and thus unlikely to be parallelizable efficiently.