SQLite

Although it is a lightweight embedded database, SQLite implements most of the SQL standard and the relational model, including transactions and ACID guarantees.

[10] However, it omits many features implemented by other databases, such as materialized views and complete support for triggers and ALTER TABLE statements.

[11] D. Richard Hipp designed SQLite in the spring of 2000 while working for General Dynamics on contract with the United States Navy.

[13] In August 2000, version 1.0 of SQLite was released, with storage based on gdbm (GNU Database Manager).

In September 2001, SQLite 2.0 replaced gdbm with a custom B-tree implementation, adding transaction capability.

In June 2004, SQLite 3.0 added internationalization, manifest typing, and other major improvements, partially funded by America Online.

Unlike client–server database management systems, the SQLite engine has no standalone processes with which the application program communicates.

SQLite is called zero-configuration[21] because configuration tasks such as service management, startup scripts, and password- or GRANT-based access control are unnecessary.

SQLite read operations can be multitasked, though due to the serverless design, writes can only be performed sequentially.

[12] In 2021, support for static typing was added through STRICT tables, which enforce datatype constraints for columns.

[30] If a table includes an INTEGER PRIMARY KEY column, SQLite will typically optimize it by treating it as an alias for the rowid, causing the contents to be stored as a strictly typed 64-bit signed integer and changing its behavior to be somewhat like an auto-incrementing column.

SQLite includes an option to create a table without a rowid column, which can save disk space and improve lookup speed.

[31] SQLite supports foreign key constraints,[32][33] although they are disabled by default and must be manually enabled with a PRAGMA statement.

Using JSONB allows applications to avoid having to parse the JSON text each time it is processed and saves a small amount of disk space.