Extending Scala with Database Query Capability.

Miguel García, Anastasia Izmaylova, Sibylle Schupp · The Journal of Object Technology · 2010

The integration of database and programming languages is difficult due to the different data models and type systems prevalent in each field.We present a solution where the developer may express queries encompassing program and database data.The notation used for queries is based on comprehensions, a declarative style that does not impose any specific execution strategy.In our approach, the type safety of languageintegrated queries is analyzed at compile-time, followed by a translation that optimizes for database evaluation.We show the translation total and semantics preserving, and introduce a language-independent classification.According to this classification, our approach compares favorably with Microsoft's LINQ, today's best-known representative.We provide an implementation in terms of Scala compiler plugins, accepting two notations for queries: LINQ and the native Scala syntax for comprehensions.The prototype relies on Ferry, a query language that already supports comprehensions yet targets SQL:1999.The reported techniques pave the way for further progress in bridging the programming and the database worlds.

Read the paper · More papers on PaperTik