SQLite is a management system for relational databases support ACID (atomicity, consistency, isolation and durability), contained in a relatively small (~ 275 kB) library written in C.
SQLite is a public domain project created by D. Richard Hipp.
On contrary to management system database client-server, the SQLite engine is not a separate process with the main program communicates. Instead, the SQLite library is linked with the program becoming an integral part thereof. The program uses SQLite’s functionality through simple calls to subroutines and functions. This reduces the latency in accessing the database, because the function calls that are more efficient than process communication.
The entire database (definitions, tables, indices, and the data itself) is stored as a single file on the host machine standard. This simple design is achieved by blocking the entire database file at the beginning of each transaction. In version 3, enables SQLite databases up to 2 terabytes in size, and also allows the inclusion of BLOB fields.
The author of SQLite provides training, technical support contracts and additional features like compression and encryption.
The library implements most of SQL-92 standard, including transactions atomic database, database consistency, isolation, and durability (ACID), triggers and most of complex queries.
SQLite uses an unusual type system. Instead of assigning a type to a column as in most systems SQL databases, the types are assigned to the individual values. For example, you can insert a string in an integer column (although SQLite in the first instance try to convert the string to an integer). Some users consider this as an innovation that makes the database is much more useful, especially when used from a scripting language for dynamic types. Others see it as a major drawback, due to the technique is not portable to other SQL databases. SQLite was not to transform the data type of the column until version 3.
Multiple processes or threads can access the same database without problems. Several read accesses can be served in parallel. A write access can only be served if there is no other access is serving concurrently. Otherwise, write access fails returning an error code (or can automatically retried until a timeout expires configurable). This concurrent access could change when working with temporary tables. However, there could be a deadlock due to multithread. This point was addressed in version 3.3.4, developed on February 11, 2006.
There is a separate program from sqlite name that can be used to check and manage files SQLite database. It also serves as an example for writing applications using the SQLite library.
To request a quote click here and send us a message asking what you need.