  Variability inherently exists in databases in various contexts which creates
database variants. For example, variants of a database could have different
schemas/content (database evolution problem), variants of a database could root
from different sources (data integration problem), variants of a database could
be deployed differently for specific application domain (deploying a database
for different configurations of a software system), etc. Unfortunately, while
there are specific solutions to each of the problems arising in these contexts,
there is no general solution that accounts for variability in databases and
addresses managing variability within a database. In this paper, we formally
define variational databases (VDBs) and statically-typed variational relational
algebra (VRA) to query VDBs---both database and queries explicitly account for
variation. We also design and implement variational database management system
(VDBMS) to run variational queries over a VDB effectively and efficiently. To
assess this, we generate two VDBs from real-world databases in the context of
software development and database evolution with a set of experimental queries
for each.
