Results 1 -
4 of
4
Structural Recursion as a Query Language
- In Proceedings of 3rd International Workshop on Database Programming Languages
, 1991
"... 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 calcu ..."
Abstract
-
Cited by 100 (9 self)
- Add to MetaCart
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...
Comprehensions, a Query Notation for DBPLs
- Proceedings of the 3rd International Workshop on Database Programming Languages
, 1991
"... This paper argues that comprehensions, a construct found in some programming languages, are a good query notation for DBPLs. It is shown that, like many other query notations, comprehensions can be smoothly integrated into DBPLs and allow queries to be expressed clearly, concisely and efficiently. M ..."
Abstract
-
Cited by 55 (4 self)
- Add to MetaCart
This paper argues that comprehensions, a construct found in some programming languages, are a good query notation for DBPLs. It is shown that, like many other query notations, comprehensions can be smoothly integrated into DBPLs and allow queries to be expressed clearly, concisely and efficiently. More significantly, two advantages of comprehensions are demonstrated. The first advantage is that, unlike conventional notations, comprehension queries combine computational power with ease of optimisation. That is, not only can comprehension queries express both recursion and computation, but equivalent comprehension transformations exist for all of the major conventional optimisations. The second advantage is that comprehensions provide a uniform notation for expressing and performing some optimisation on queries over several bulk data types. The bulk types that comprehensions can be defined over include sets, relations, bags and lists. A DBPL can also be automatically extended to provide and partially optimise comprehension queries over new bulk types constructed by the application programmer, providing that the new type has some well-defined properties. 1
A Functional Database
, 1989
"... A Functional Database Phil Trinder D.Phil. Thesis Wolfson College Michaelmas Term, 1989 This thesis explores the use of functional languages to implement, manipulate and query databases. Implementing databases. A functional language is used to construct a database manager that allows efficient and c ..."
Abstract
-
Cited by 21 (3 self)
- Add to MetaCart
A Functional Database Phil Trinder D.Phil. Thesis Wolfson College Michaelmas Term, 1989 This thesis explores the use of functional languages to implement, manipulate and query databases. Implementing databases. A functional language is used to construct a database manager that allows efficient and concurrent access to shared data. In contrast to the locking mechanism found in conventional databases, the functional database uses data dependency to provide exclusion. Results obtained from a prototype database demonstrate that data dependency permits an unusual degree of concurrency between operations on the data. The prototype database is used to exhibit some problems that seriously restrict concurrency and also to demonstrate the resolution of these problems using a new primitive. The design of a more realistic database is outlined. Some restrictions on the data structures that can be used in a functional database are also uncovered. Manipulating databases. Functions over the database a...
‘I’hc evolution of Data Base Programming Languages
"... This paper presents an experiment in nsing n fnrmnl techniqne for static prngrnm nnnlyais, hnsod an abstract intarpre t.ntion, in the context of persistent progrnmming Inngnngw. The nim of thn annlysis is to dntoct npportnnities for snfe parallelism fnr trnnsnetinn nperatinn sehadnling. Tmnsnctinn a ..."
Abstract
- Add to MetaCart
This paper presents an experiment in nsing n fnrmnl techniqne for static prngrnm nnnlyais, hnsod an abstract intarpre t.ntion, in the context of persistent progrnmming Inngnngw. The nim of thn annlysis is to dntoct npportnnities for snfe parallelism fnr trnnsnetinn nperatinn sehadnling. Tmnsnctinn apcratinns cnn he snfely intarlanved when there is no nverlnpping among their rends & nnd writ-b. A non-atnndnrd interpreter perfnrmcl the nnnlysis. This interpreter, given the text of n trnns.actinn nnd n reprascntntinn nf the dntn stored in the dntnh.m, oufnmnfica//y derivea in n finite time n11 npprnxirnntinn of the randset and writ-t nf the nnnlysed lrnnsnclinn. lnfnrmntian ahtnined from the non-atnndnrd interpret,ntinn is provided to the schodnler hefnra haginning the cxrcntion of trnnsactinn operations. In this way, we ohtnin A schrdnler thnt renlism n cnnservntive two-phase lacking protocol fnr persistent programming Inngnaga trnnsactinncl. We npply the nnalysis to n Iangnage thnt is n signiticnnt snhset of Gnlilan. The gnnl of the nnnlyh i.s tn &.teet the nccems xnlely to shnrc\nhle nnd mnclitinhle persistent dntn.

