SQLite |
SQLite is an ACID-compliant relational database management system contained in a relatively small C programming language library (computer science). It is a public domain project created by D. Richard Hipp.
Unlike the usual Client-server paradigm, the SQLite engine is not a standalone process with which the program communicates, but is linked in and thus becomes an integral part of the program. Therefore the primary communication protocol are direct API calls within the programming language. This can have a positive impact on the amount of overhead, latency times and overall simplicity. The entire database (definitions, tables, indices, and the data itself) is stored as a single standard file on the host machine. Its simple design is achieved by locking the entire database file at beginning of a transaction.
=Features=
The library implements most of SQL-92 standard, including database transactions that are atomicity (computer science), database consistency, isolation (computer science), and durability (computer science) (ACID), database trigger and most of the complex queries. No type-checking is done. You can insert a string (computer science) into an integer column, for example. Some users see this is an innovation that makes the database much more useful, especially when bound to a typeless scripting language. Other users see it as a major drawback.
Several computer process or thread (computer science)s may access the same database without problems. Several read accesses can be satisfied in parallel. A write access can only be satisfied if no other accesses are currently being serviced; otherwise the write access fails with an error code (or can automatically be retried until a configurable timeout expires).
A standalone program called sqlite is provided which can be used to query and manage SQLite database files. It also serves as an example for writing applications that use the SQLite library.
=Language bindings=
The library can be used from C/C++ programs, but bindings for Tcl and several other scripting programming languages are also available.
There is a DBI/DBD module for Perl available on CPAN, DBD::SQLite , that is not an interface to SQLite, but rather includes the entire SQLite database engine in itself and doesn t need any additional software.
There is also a Python programming language module for it called PySQLite, which implements the [http://www.python.org/peps/pep-0249.html Python DB API version 2.0 (PEP 249)].
PHP comes with SQLite included, starting with PHP 5. SQLite also works with PHP 4 but was not included with it.
Since Lazarus (software) 0.9.8 and Free Pascal 2.0.0, SQLite is available for pascal programmers. There is a tutorial [http://wiki.lazarus.freepascal.org/index.php/Lazarus_Database_Tutorial here].
Mac_OS_X_v10.4 ships with SQLite built in. SQLite is one of the data store options in Apple s CoreData API.
=See also=
*List of relational database management systems *Comparison of relational database management systems
=External links=
*[http://www.sqlite.org/ SQLite home page] *[http://www.pysqlite.org/ pysqlite] - A Python Wrapper. *[http://search.cpan.org/search%3fmodule=DBD::SQLite DBD::SQLite] - A Perl module on CPAN. *[http://rubyforge.org/projects/sqlite-ruby/ Sqlite-ruby] - A Ruby Interface. *[http://sqlitemanager.sourceforge.net/ SQLiteManager] - A PHP4 multilingual web based tool to manage SQLite database *[http://sqlitebrowser.sourceforge.net/ SQLiteBrowser] - SQLite visual database browser *[http://www.ch-werner.de/sqliteodbc/ SQLite ODBC Driver] *[http://cmk.navorski.com/index.phpwiki=Changelog SQLite C++ Wrapper] *[http://www.visualsqlite.com/ Visual SQLite] - SQLite GUI interface for Windows *[http://www.yunqa.de/delphi/sqlitespy/ SQLite Spy] - Another SQLite GUI interface for Windows|
|