One day I'll gather my strengths and eradicate the "SQL" part from sqlite. I really like the "application file format" idea of sqlite. We need a generic way of implementing persistence in applications that provides us out of the box with all these consistency guarantees, and even better with concurrency support. And we need to make it easy to exploit the structure of data (which we simply neglect when we use key-value and bunch-of-unsynced-files naivette). And relational model, when considered in a broader sense, is actually OK for this purpose. It's SQL that's not OK. The unnecessary constraints on domain types, the non-sensical idea of writing queries as strings in place of plain data structures, all of it. We need relational model implemented in language, supporting interchangeably both in-memory containers and on-disk storage.