Maintaining database integrity with refinement types

9Citations
Citations of this article
22Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Taking advantage of recent advances in automated theorem proving, we present a new method for determining whether database transactions preserve integrity constraints. We consider check constraints and referential-integrity constraints-extracted from SQL table declarations-and application-level invariants expressed as formulas of first-order logic. Our motivation is to use static analysis of database transactions at development time, to catch bugs early, or during deployment, to allow only integrity-preserving stored procedures to be accepted. We work in the setting of a functional multi-tier language, where functional code is compiled to SQL that queries and updates a relational database. We use refinement types to track constraints on data and the underlying database. Our analysis uses a refinement-type checker, which relies on recent highly efficient SMT algorithms to check proof obligations. Our method is based on a list-processing semantics for an SQL fragment within the functional language, and is illustrated by a series of examples. © 2011 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

Baltopoulos, I. G., Borgström, J., & Gordon, A. D. (2011). Maintaining database integrity with refinement types. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 6813 LNCS, pp. 484–509). https://doi.org/10.1007/978-3-642-22655-7_23

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free