  We propose a novel database model whose basic structure is a labeled,
directed, acyclic graph with a single root, in which the nodes represent the
data sets of an application and the edges represent functional relationships
among the data sets. We call such a graph an application context or simply
context. The query language of a context consists of two types of queries,
traversal queries and analytic queries. Both types of queries are defined using
a simple functional algebra whose operations are functional restriction,
composition of functions, pairing of functions and Cartesian product of sets.
Roughly speaking, traversal queries parallel relational algebra queries,
whereas analytic queries parallel SQL Group-by queries. In other words, in our
model, traversal queries and analytic queries, are both defined within the same
formal framework - in contrast to the relational model, where analytic queries
are defined outside the relational algebra. Therefore a distinctive feature of
our model is that it supports data management and data analytics within the
same formal framework.
  We demonstrate the expressive power of our model by showing: (a) how a
relational database can be defined as a view over a context, with the context
playing the role of an underlying semantic layer; (b) how an analytic query
over a context can be rewritten at two orthogonal levels: at the level of the
traversal queries that do the grouping and measuring, and at the level of the
analytic query itself; and (c) how a context can be used as a user-friendly
interface for querying relations and analysing relational data.
