Journal Article10.1145/2034574.2034815
Making standard ML a practical database programming language
Atsushi Ohori,Katsuhiro Ueno +1 more
- 19 Sep 2011
- Vol. 46, Iss: 9, pp 307-319
TL;DR: This paper reports on seamless integration of SQL into SML# - an extension of Standard ML, which makes SQL queries first-class citizens, which can be freely combined with any other language constructs definable in Standard ML.
read more
Abstract: Integrating a database query language into a programming language is becoming increasingly important in recently emerging high-level cloud computing and other applications, where efficient and sophisticated data manipulation is required during computation. This paper reports on seamless integration of SQL into SML# - an extension of Standard ML. In the integrated language, the type system always infers a principal type for any type consistent SQL expression. This makes SQL queries first-class citizens, which can be freely combined with any other language constructs definable in Standard ML. For a program involving SQL queries, the compiler separates SQL queries and delegates their evaluation to a database server, e.g. PostgreSQL or MySQL in the currently implemented version.The type system of our language is largely based on Machiavelli, which demonstrates that ML with record polymorphism can represent type structure of SQL. In order to develop a practical language, however, a number of technical challenges have to be overcome, including static enforcement of server connection consistency, proper treatment of overloaded SQL primitives, query compilation, and runtime connection management. This paper describes the necessary extensions to the type system and compilation, and reports on the details of its implementation.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Finally, safely-extensible and efficient language-integrated query
Kenichi Suzuki,Oleg Kiselyov,Yukiyoshi Kameyama +2 more
- 11 Jan 2016
TL;DR: A new technique of integrating database queries into a typed functional programming language, so to write well-typed, composable queries and execute them efficiently on any SQL back-end as well as on an in-memory noSQL store.
Language-integrated provenance
Stefan Fehrenbach,James Cheney +1 more
TL;DR: Extensions to the Links programming language are presented that build on its support for language-integrated query to support provenance queries by rewriting and normalizing monadic comprehensions and extending the type system to distinguish provenance metadata from normal data.
19
Sound and Efficient Language-Integrated Query
Oleg Kiselyov,Tatsuya Katsushima +1 more
- 27 Nov 2017
TL;DR: As SQL moved from the English-like language for ad hoc queries by business users to its present status as the universal relational database access, the lack of abstractions and compositionality in the original design is felt more and more acute as mentioned in this paper.
11
Language-integrated provenance
Stefan Fehrenbach,James Cheney +1 more
TL;DR: In this article, the authors present extensions to the Links programming language that support provenance queries by rewriting and normalizing monadic comprehensions and extending the type system to distinguish provenance metadata from normal data.
Reorganizing queries with grouping
Rui Okura,Yukiyoshi Kameyama +1 more
- 16 Nov 2020
TL;DR: While the previous work decomposes grouping into finer primitives before transformation, the new algorithm fuses nested control structures after transformation, while keeping the absence of nested data structures.
4
References
MapReduce: simplified data processing on large clusters
Jeffrey Dean,Sanjay Ghemawat +1 more
- 06 Dec 2004
TL;DR: This paper presents the implementation of MapReduce, a programming model and an associated implementation for processing and generating large data sets that runs on a large cluster of commodity machines and is highly scalable.
MapReduce: simplified data processing on large clusters
Jeffrey Dean,Sanjay Ghemawat +1 more
TL;DR: This presentation explains how the underlying runtime system automatically parallelizes the computation across large-scale clusters of machines, handles machine failures, and schedules inter-machine communication to make efficient use of the network and disks.
A relational model of data for large shared data banks
TL;DR: In this article, a model based on n-ary relations, a normal form for data base relations, and the concept of a universal data sublanguage are introduced, and certain operations on relations are discussed and applied to the problems of redundancy and consistency in the user's model.
A Relational Model of Data Large Shared Data Banks
E. F. Codd
- 01 Jan 1970
TL;DR: In this paper, a model based on n-ary relations, a normal form for data base relations, and the concept of a universal data sublanguage are introduced, and certain operations on relations are discussed and applied to the problems of redundancy and consistency in the user's model.
•Journal Article
A relational model of data for large shared data banks. 1970
TL;DR: A model based on n-ary relations, a normal form for data base relations, and the concept of a universal data sublanguage are introduced and certain operations on relations are discussed and applied to the problems of redundancy and consistency in the user's model.
3.3K
Related Papers (5)
Torsten Grust,Jan Rittinger,Tom Schreiber +2 more
- 01 Sep 2010
Sam Lindley,James Cheney +1 more
- 28 Jan 2012