An alternative high-level approach to interaction with databases

  • Authors:
  • António Porto

  • Affiliations:
  • LIACC, DCC, Faculdade de Ciências, Universidade do Porto

  • Venue:
  • INAP'09 Proceedings of the 18th international conference on Applications of declarative programming and knowledge management
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most applications rely on relational databases for persistence, interacting through SQL embedded in the host programming language. Such code being error-prone and hard to maintain, many proposals have been made to raise its level, mostly in the direction of deductive and/or object-oriented databases. We have put forward an alternative approach, inspired by natural language, that packs a lot of power in very concise and readable code, while relying on standard database technology. This is achieved using the flexible term syntax and deductive capabilities of logic programming, both to compile a database scheme from a high-level description, and to interpret high-level queries and commands. In this paper we review the basic ideas of the novel approach and concentrate on the interaction language of queries and commands, formalizing its semantics on the basis of characterizing canonical database schemes. These rely on uniform notions of concept, attribute and reference, rather than the dichotomous entity-relationship model. Query and command expressions are variable-free terms, reading very naturally when appropriate nouns (rather than verbs) are chosen for all concept and attribute names. Attribute inheritance and chaining avoid many explicit joins, which are automatically derived as inner or outer joins. Scheme-derived multi-valued global parameters can flexibly be used for implicit current values. The abstraction power is further raised by having manifold attributes, whose values may actually vary along a parametric domain, the main examples being the handling of temporal validity and multi-lingual data. Commands can also be very high-level, with simple statements possibly resulting in large transactions.