A multi-tenant database system for Software as a Service
(SaaS) should oﬀer schemas that are ﬂexible in that they
can be extended for diﬀerent versions of the application and
dynamically modiﬁed while the system is on-line. This pa-
per presents an experimental comparison of ﬁve techniques
for implementing ﬂexible schemas for SaaS. In three of these
techniques, the database “owns” the schema in that its struc-
ture is explicitly deﬁned in DDL. Included here is the com-
monly-used mapping where each tenant is given their own
private tables, which we take as the baseline, and a map-
ping that employs Sparse Columns in Microsoft SQL Server.
These techniques perform well, however they oﬀer only lim-
ited support for schema evolution in the presence of existing
data. Moreover they do not scale beyond a certain level. In
the other two techniques, the application “owns” the schema
in that it is mapped into generic structures in the database.
Included here are XML in DB2 and Pivot Tables in HBase.
These techniques give the application complete control over
schema evolution, however they can produce a signiﬁcant
decrease in performance. We conclude that the ideal data-
base for SaaS has not yet been developed and oﬀer some
suggestions as to how it should be designed.