Abstract Conceptual data models describe information systems without the burden of implementation details, and are increasingly used to generate code. They could also be analyzed for consistency and to generate test data except that the expressive constraints supported by popular modeling notations make such analysis intractable. In an earlier empirical study of conceptual models created at LogicBlox Inc., Smaragdakis, Csallner, and Subramanian found that a restricted subset of ORM, called ORM-, includes the vast majority of constraints used in practice and, moreover, allows scalable analysis. After that study, however, LogicBlox Inc. obtained a new ORM modeling tool, which supports discovery and specification of more complex constraints than the previous tool. We report findings of a follow-up study of models constructed using the more powerful tool. Our study finds that LogicBlox developers increasingly rely on a small number of features not in the ORM- subset. We extend ORM- with support for two of them: objectification and a restricted class of external uniqueness constraints. The extensions significantly improve our ability to analyze the ORM models created by developers using the new tool. We also show that a recent change to ORM has rendered the original ORM- algorithms unsound, in general; but that an efficient test suffices to show that these algorithms are in fact sound for the ORM-constraints appearing in any of the models currently in use at LogicBlox.
Scalable Analysis of Conceptual Data Models
-
Strictly Declarative Specification of Sophisticated Points-to Analyses
Shan Shan Huang, , Publications, 0
Congratulations to LogicBlox team member Martin Bravenboer and academic collaborator Yannis Smaragdakis on their recent publication in OOPSLA 2009....
-
Win-move is Coordination Free… Sometimes
Shan Shan Huang, , Publications, 0
Coordination barriers are a major source of inefficiency in distributed query evaluation. Identifying queries that can be evaluated in...
-
Morphing: Structurally Shaping a Class by Reflecting on Others
Shan Shan Huang, , Publications, 0
The ability to write reusable code is important for all programming languages. LogicBlox is keen to support research in...
-
LogicBlox, Platform and Language: a Tutorial
Shan Shan Huang, , Publications, 0
Datalog is the mathematical foundation to LogiQL, the LogicBlox query language. We here take a keen interest in fostering...
-
Querying Data Provenance
Shan Shan Huang, , Publications, 0
Data provenance has important applications in databases, from optimization, to verifying trustworthiness of answers, to helping programmers with debugging....
-
Design and Implementation of the LogicBlox System
Shan Shan Huang, , Publications, 0
An overview of the design considerations, novel implementation techniques, and applications of the LogicBlox system has been published in...
-
Rewriting Guarded Negation Queries
Shan Shan Huang, , Publications, 0
Query optimizations are notoriously difficult for queries involving negation. Together with academic collaborator Professor Michael Benedikt of University of...
-
In LogiQL: Relating Constraint Handling Rules to Datalog
Shan Shan Huang, , Publications, 0
One of the advantages of using LogiQL is the unification of programming model such that prescriptive rules of computation...