A database is treated as a sequence of attributed source files. This accommodates incremental compilation, because database entries map one-to-one to compilation units. This also makes merging databases trivial, as the bytes of two databases can be simply concatenated to produce a new database.