## Structural Recursion as a Query Language (1991)

Venue: | In Proceedings of 3rd International Workshop on Database Programming Languages |

Citations: | 109 - 11 self |

### BibTeX

@INPROCEEDINGS{Breazu-tannen91structuralrecursion,

author = {Val Breazu-tannen and Peter Buneman and Shamim Naqvi},

title = {Structural Recursion as a Query Language},

booktitle = {In Proceedings of 3rd International Workshop on Database Programming Languages},

year = {1991},

pages = {9--19},

publisher = {Morgan Kaufmann}

}

### Years of Citing Articles

### OpenURL

### Abstract

We propose a programming paradigm that tries to get close to both the semantic simplicity of relational algebra, and the expressive power of unrestricted programming languages. Its main computational engine is structural recursion on sets. All programming is done within a "nicely" typed lambda calculus, as in Machiavelli [OBB89]. A guiding principle is that how queries are implemented is as important as whether they can be implemented. As in relational algebra, the meaning of any relation transformer is guaranteed to be a total map taking finite relations to finite relations. A naturally restricted class of programs written with structural recursion has precisely the expressive power of the relational algebra. The same programming paradigm scales up, yielding query languages for the complex-object model [AB89]. Beyond that, there are, for example, efficient programs for transitive closure and we are also able to write programs that move out of sets, and then perhaps back to sets, as l...

### Citations

150 |
A Logical Language for Data and Knowledge Bases
- Naqvi, Tsur
- 1989
(Show Context)
Citation Context ...diagrams in any industrial catalog, points to the ever present need for such an operation. All practical query languages introduce a grouping operation, and this operation plays a central role in LDL =-=[NT89]-=-, which is based on a complex object model. As in the case of transitive closure we give a direct implementation of grouping, which avoids the use of powerset. To do so, first we define fun g D (;) = ... |

124 | Beeri: On the Power of Languages for the Manipulation of Complex Objects INRIA Rapports de Recherche No. 846
- Abiteboul, C
- 1988
(Show Context)
Citation Context ...programs written with structural recursion has precisely the expressive power of the relational algebra. The same programming paradigm scales up, yielding query languages for the complex-object model =-=[AB89]-=-. Beyond that, there are, for example, efficient programs for transitive closure and we are also able to write programs that move out of sets, and then perhaps back to sets, as long as we stay within ... |

90 | Database Programming in Machiavelli – a Polymorphic Language with Static Type Inference
- Ohori, Buneman, et al.
- 1989
(Show Context)
Citation Context ...pressive power of unrestricted programming languages. Its main computational engine is structural recursion on sets. All programming is done within a "nicely" typed lambda calculus, as in Ma=-=chiavelli [OBB89]-=-. A guiding principle is that how queries are implemented is as important as whether they can be implemented. As in relational algebra, the meaning of any relation transformer is guaranteed to be a to... |

82 | A calculus for complex objects - Bancilhon, Khoshafian - 1986 |

66 | Using powerdomains to generalize relational databases - Buneman, Jung, et al. - 1991 |

45 | On the Expressive Power of Database Queries with Intermediate Types - Hull, Su - 1991 |

41 |
Set constructors in a logic database language
- Beeri, Naqvi, et al.
- 1991
(Show Context)
Citation Context ...on is correct (that is, the commutativity and idempotence conditions are satisfied), since the range of g D here consists only of graphs of functions D \Gamma! fff 2 g;. In connection with other work =-=[BNST87]-=-, we remark that the grouping operator along with the empty-insert presentation of sets gives interesting expressions for negation, difference and union ofsets. 5 Pump, partition, and hom FAD [BBKV88]... |

4 | Galileo: A Strongly Typed Interactive Conceptual Language - R - 1985 |

3 |
Incomplete objects---a data model for design and planning applications.In
- Imielinski, Naqvi, et al.
- 1991
(Show Context)
Citation Context ...) while this is quite restricted in the other languages mentioned. 6 Further research We expect that the linguistic techniques proposed here will also be applicable in dealing with incomplete objects =-=[INK91]-=-, a data model that captures the ideas of incomplete specifications. In particular, we are interested in studying the semantic properties of or-objects as sets of possible worlds. The transitive closu... |

2 |
Logical and computational aspects of programming with lists/bags/sets
- Breazu-Tannen, Subrahmanyam
- 1991
(Show Context)
Citation Context ... implemented. To summarize the main advantages: ffl As in relational algebra, the meaning of any relation transformer is guaranteed to be a total map taking finite relations to finite relations. (see =-=[BS91]-=- for the denotational, and operational semantics of such languages, and for reasoning about such programs). ffl Relational queries have a natural representation using structural recursion. In fact, as... |

1 |
of data retrieval languages.In
- Aho, Universality
- 1979
(Show Context)
Citation Context ...) collection of operations is equivalent to a powerful higherorder logical calculus of nested tuples and sets. Interestingly, they also show that transitive closure (which, as shown by Aho and Ullman =-=[AU79]-=-, cannot be implemented in relational algebra), can, in fact, be specified as a query in this calculus: it is the least transitive relation containing the given one among all subsets of the (cartesian... |

1 |
FAD, a powerful and simple database language.In
- Bancilhon, Briggs, et al.
- 1988
(Show Context)
Citation Context ...[BNST87], we remark that the grouping operator along with the empty-insert presentation of sets gives interesting expressions for negation, difference and union ofsets. 5 Pump, partition, and hom FAD =-=[BBKV88]-=-, LDL [NT89] and Machiavelli [OBB89] all have a construct related to structural recursion on sets. FAD and Machiavelli come closest with the operators pump, respectively hom, which are equivalent to t... |

1 |
Buneman.Type inference in a database programming language.In
- Ohori, P
- 1988
(Show Context)
Citation Context ...ions. A more subtle problem is whether our primitives can be typed in a polymorphic manner (thus leaving the type decorations off). This is particularly challenging in the case of tuples/records (see =-=[OB88]-=- and references therein). One example of a rich polymorphic type system for relational databases is to be found in Machiavelli [OBB89], and its ideas can be equally successfully applied to the languag... |

1 | high level language constructs for data of type relation - Some - 1977 |