Results 1 - 10
of
16
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
Algebraic Query Optimisation for Database Programming Languages
- The VLDB Journal
, 1996
"... A major challenge still facing the designers and implementors of database programming languages (DBPLs) is that of query optimisation. We investigate algebraic query optimisation for DBPLs in the context of a purely declarative functional language that supports sets as first-class objects. Since the ..."
Abstract
-
Cited by 11 (4 self)
- Add to MetaCart
A major challenge still facing the designers and implementors of database programming languages (DBPLs) is that of query optimisation. We investigate algebraic query optimisation for DBPLs in the context of a purely declarative functional language that supports sets as first-class objects. Since the language is computationally complete issues such as non-termination of expressions and construction of infinite data structures can be investigated, whilst its declarative nature allows the issue of side effects to be avoided and a rich set of equivalences to be developed. The language has a well-defined semantics which permits us to reason formally about the properties of expressions, such as their equivalence with other expressions and their termination. The support of a set bulk data type enables much prior work on the optimisation of relational languages to be utilised. In the paper we first give the syntax of an archetypal DBPL and briefly discuss its semantics. We then de...
Real-time Garbage Collection of a Functional Persistent Heap
, 1999
"... Traditional database management systems perform updates-in-place and use logs and periodic checkpointing to efficiently achieve atomicity and durability. In this Thesis we shall present a different method, Shades, for achieving atomicity and durability using a copy-on-write policy instead of updates ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Traditional database management systems perform updates-in-place and use logs and periodic checkpointing to efficiently achieve atomicity and durability. In this Thesis we shall present a different method, Shades, for achieving atomicity and durability using a copy-on-write policy instead of updates-in-place. We shall also present index structures and the implementation of Shines, a persistent functional programming language, built on top of Shades. Shades includes real-time generational garbage collection. Real-timeness is achieved by collecting only a small part, a generation, of the database at a time. Contrary to previously presented persistent garbage collection algorithms, Shades has no need to maintain metadata (remembered sets) of intra-generation pointers on disk since the metadata can be reconstructed during recovery. This considerably reduces the amount of disk writing. In conjunction with aggressive commit grouping, efficient index structures, a design specialized to a main memory environment, and a carefully crafted implementation of Shines, we have achieved surprisingly high performance, handsomely beating commercial database management systems.
Towards a Scalable Parallel Object Database - The Bulk Synchronous Parallel Approach
, 1996
"... Parallel computers have been successfully deployed in many scientific and numerical application areas, although their use in non-numerical and database applications has been scarce. In this report, we first survey the architectural advancements beginning to make general-purpose parallel computing co ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Parallel computers have been successfully deployed in many scientific and numerical application areas, although their use in non-numerical and database applications has been scarce. In this report, we first survey the architectural advancements beginning to make general-purpose parallel computing cost-effective, the requirements for non-numerical (or symbolic) applications, and the previous attempts to develop parallel databases. The central theme of the Bulk Synchronous Parallel model is to provide a high level abstraction of parallel computing hardware whilst providing a realisation of a parallel programming model that enables architecture independent programs to deliver scalable performance on diverse hardware platforms. Therefore, the primary objective of this report is to investigate the feasibility of developing a portable, scalable, parallel object database, based on the Bulk Synchronous Parallel model of computation. In particular, we devise a way of providing high-level abstra...
Deterministic Concurrency
- In Proceedings of the 1993 Glasgow Workshop on Functional Programming
, 1993
"... Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism.
Towards a Theory of Bulk Types
, 1991
"... A database programming language can model application domains most naturally if it supports several bulk types, e.g., lists, sets, and relations. Indeed some persistent programming languages permit the programmer to define new bulk types that are appropriate to the application domain. Such a richly ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
A database programming language can model application domains most naturally if it supports several bulk types, e.g., lists, sets, and relations. Indeed some persistent programming languages permit the programmer to define new bulk types that are appropriate to the application domain. Such a richly typed language tends to be complex, since constructs must be provided to declare, construct, inspect, and update instances of every bulk type. The collection theory presented here controls the complexity of such richly typed languages by exploiting operations and properties common to a variety of bulk types. The theory is based on four operations -- three constructor operations and one iterator -- that obey certain algebraic laws. In addition, a rich set of additional operations can be defined in terms of the basic operations. Sets, bags, lists, certain trees, relations, and finite mappings are all encompassed by the collection theory. Conversely, types that we would not intuitively classify...
Investigation of Algebraic Query Optimisation for Database Programming Languages
- In Proceedings of the 20th Int'l Conference on Very Large Databases (VLDB
, 1994
"... alexQdcs.kcl.ac.uk A major challenge still facing the designers and implementors of database programming languages (DBPLs) is that of query optimisa-tion. We investigate algebraic query optimi-sation techniques for DBPLs in the context of a purely declarative functional language that supports sets a ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
alexQdcs.kcl.ac.uk A major challenge still facing the designers and implementors of database programming languages (DBPLs) is that of query optimisa-tion. We investigate algebraic query optimi-sation techniques for DBPLs in the context of a purely declarative functional language that supports sets as first-class objects. Since the language is computationally complete issues such as non-termination of expressions and construction of infinite data structures can be investigated, whilst its declarative nature al-lows the issue of side effects to be avoided and a richer set of equivalences to be developed. The support of a set bulk data type enables much prior work on the optimisation of rela-tional languages to be utilised. Finally, the language has a well-defined semantics which permits us to reason formally about the prop erties of expressions, such as their equivalence with other expressions and their termination. 1
Using Concurrent Haskell to Develop User Interfaces over an Active Repository
- In IFL'97, Implementation of Functional Languages 97
, 1997
"... . Views to the underlying repository of software objects within a Software Development Environment are, by nature, very dynamic. While one user is viewing a version graph, another user may change it by creating or pruning versions. Within the Universal Formal Methods WorkBench (UniForM), which us ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
. Views to the underlying repository of software objects within a Software Development Environment are, by nature, very dynamic. While one user is viewing a version graph, another user may change it by creating or pruning versions. Within the Universal Formal Methods WorkBench (UniForM), which uses Haskell as its central integration language, we have solved the problem by representing all kind of events as first class composable event values in the style of CML. Such events amount to user interactions from the user interaction manager, change notifications from the active repository, individual tool events or internal channel events. Agents, called interactors, can then be set up to maintain consistency between a view and its underlying repository by coordinating database change notifications and user interactions. 1 Introduction The UniForM WorkBench [KPO+96] is a an integration framework currently under development for setting up integrated Software Development Environmen...

