  Data processing systems impose multiple views on data as it is processed by
the system. These views include spreadsheets, databases, matrices, and graphs.
The common theme amongst these views is the need to store and operate on data
as whole sets instead of as individual data elements. This work describes a
common mathematical representation of these data sets (associative arrays) that
applies across a wide range of applications and technologies. Associative
arrays unify and simplify these different approaches for representing and
manipulating data into common two-dimensional view of data. Specifically,
associative arrays (1) reduce the effort required to pass data between steps in
a data processing system, (2) allow steps to be interchanged with full
confidence that the results will be unchanged, and (3) make it possible to
recognize when steps can be simplified or eliminated. Most database system
naturally support associative arrays via their tabular interfaces. The D4M
implementation of associative arrays uses this feature to provide a common
interface across SQL, NoSQL, and NewSQL databases.
