论文标题

语言集成的时间数据查询(扩展版本)

Language-Integrated Query for Temporal Data (Extended version)

论文作者

Fowler, Simon, Galpin, Vashti, Cheney, James

论文摘要

现代应用程序通常管理时变数据。尽管对时间数据库进行了数十年的研究,但在SQL:2011标准中添加时间数据操作的最终导致了时间数据查询和操作操作,但在大多数主流数据库管理系统中都无法使用,从而使开发人员承担了从划痕实施此类功能的令人难以置信的任务。在本文中,我们将\ emph {语言集成查询}扩展为支持写入时间查询和以统一的主机语言的更新,而语言执行所需的重写以自动模仿任何标准关系数据库的时间功能。我们介绍两种核心语言,$λ_ {\ Mathsf {tlinq}} $和$λ_ {\ Mathsf {vlinq}} $,分别以交易时间和有效的时间数据进行正式化正式化,并通过提供正式的现有实施策略,以正式化正式化的实现策略$λ_ {\ Mathsf {linq}} $。我们展示了在查询归一化方面的现有工作如何支持\ emph {序列加入}的令人惊讶的简单实现策略​​。我们在链接编程语言中实施了我们的方法,并根据策划Covid-19统计数据来描述一个非平凡的案例研究。

Modern applications often manage time-varying data. Despite decades of research on temporal databases, which culminated in the addition of temporal data operations into the SQL:2011 standard, temporal data query and manipulation operations are unavailable in most mainstream database management systems, leaving developers with the unenviable task of implementing such functionality from scratch. In this paper, we extend \emph{language-integrated query} to support writing temporal queries and updates in a uniform host language, with the language performing the required rewriting to emulate temporal capabilities automatically on any standard relational database. We introduce two core languages, $λ_{\mathsf{TLINQ}}$ and $λ_{\mathsf{VLINQ}}$, for manipulating transaction time and valid time data respectively, and formalise existing implementation strategies by giving provably correct semantics-preserving translations into a non-temporal core language, $λ_{\mathsf{LINQ}}$. We show how existing work on query normalisation supports a surprisingly simple implementation strategy for \emph{sequenced joins}. We implement our approach in the Links programming language, and describe a non-trivial case study based on curating COVID-19 statistics.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源