Post

SQLite database management system

In Uncategorized on January 3, 2010 by

SQLite is a database management system relational database compatible with ACID, and is contained in a relatively small (~ 225 KB1) library in C. SQLite is a public domain project created by D. Richard Hipp.

Unlike management systems database client-server, the SQLite engine is not a separate process with which the program communicates. Instead, the SQLite library is linked to 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 function calls are more efficient than communication between processes. The entire database (definitions, tables, indexes, and the data itself) is stored as a single file on a host machine. This simple design is achieved by locking the entire database file at the beginning of each transaction.
In version 3, SQLite databases allows 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 such as compression and encryption.

The library implements most of SQL-92 standard, including transactions atomic database, database consistency, isolation, and durability (ACID), triggers and most 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 individual values. For example, you can insert a string in an integer column (although SQLite will try in the first instance to convert the string into an integer). Some users see this as an innovation that makes the database much more useful, especially when used from a scripting language for dynamic types. Other users see it as a drawback, since the technique is not portable to other SQL databases. SQLite was not trying 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 used if you are not serving any other accesses. Otherwise, the write access fails with an error code (or can automatically be retried until a timeout expires configurable). This concurrent access situation would change when working with temporary tables. However, a deadlock could occur due to multithread. This point was addressed in version 3.3.4, developed on February 11, 2006.
There is a separate program called sqlite that can be used to query and manage files SQLite database. It also serves as an example for writing applications using the SQLite library.

Leave a Reply