Scuba’s data model differs from the standard relational model
in two key ways. First, there is no create table statement; a table is
created on each leaf node whenever the leaf first receives data for it.
Since the leaves receive data at different times, the table may exist
only on some leaves and may have a different schema on each leaf.
Scuba presents a single table image to its users, however, despite
the different schemas, by treating any missing columns as null values. Second, the columns within the table’s rows may be sparsely
populated; it is common for there to be 2 or 3 different row schemas
within a table or for a column to change its type over time (usually
to achieve better compression). Together, these two differences let
Scuba adapt tables to the needs of its users without any complex
schema evolution commands or workflows. Such adaptation is one
of Scuba’s strengths.