A query language for multidimensional arrays
- 1 June 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGMOD Record
- Vol. 25 (2) , 228-239
- https://doi.org/10.1145/235968.233335
Abstract
While much recent research has focussed on extending databases beyond the traditional relational model, relatively little has been done to develop database tools for querying data organized in (multidimensional) arrays. The scientific computing community has made little use of available database technology. Instead, multidimensional scientific data is typically stored in local files conforming to various data exchange formats and queried via specialized access libraries tied in to general purpose programming languages.To allow such data to be queried using known database techniques, we design and implement a query language for multidimensional arrays. Our main design decision is to treat arrays as functions from index sets to values rather than as collection types. This leads to clean syntax and semantics as well as simple but powerful optimization rules.We present a calculus for arrays that extends standard calculi for complex objects. We derive a higher-level comprehension style query language based on this calculus and describe its implementation, including a data driver for the NetCDF data exchange format. Next, we explore some optimization rules obtained from the equational laws of our core calculus. Finally, we study the expressiveness of our calculus and prove that it essentially corresponds to adding ranking to a query language for complex objects.Keywords
This publication has 16 references indexed in Scilit:
- Principles of programming with complex objects and collection typesTheoretical Computer Science, 1995
- Towards an effective calculus for object query languagesPublished by Association for Computing Machinery (ACM) ,1995
- Sequence query processingPublished by Association for Computing Machinery (ACM) ,1994
- Conservativity of nested relational calculi with internal generic functionsInformation Processing Letters, 1994
- Comprehension syntaxACM SIGMOD Record, 1994
- On the relation between functional and data parallel programming languagesPublished by Association for Computing Machinery (ACM) ,1993
- Comprehending monadsMathematical Structures in Computer Science, 1992
- Report on the programming language HaskellACM SIGPLAN Notices, 1992
- Algebraic support for complex objects with arrays, identity, and inheritancePublished by Association for Computing Machinery (ACM) ,1991
- I-structures: data structures for parallel computingACM Transactions on Programming Languages and Systems, 1989