SQLite

**SQLite** merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.

Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi *overhead*, *latency times*, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai.

## Fitur-fitur
Pustaka SQLite mengimplementasikan hampir seluruh elemen-elemen standar yang berlaku pada SQL-93, termasuk transaksi yang bersifat *atomic*, konsistensi basisdata, isolasi, dan durabilitas (dalam bahasa Inggris lebih sering disebut ACID), trigger, dan kueri-kueri yang kompleks. Tidak ada pengecekan tipe sehingga data bisa dientrikan dalam bentuk string untuk sebuah kolom bertipe integer. Beberapa kalangan melihat hal ini sebagai sebuah inovasi yang menambah nilai guna dari sebuah basisdata, utamanya ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl), sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan.

Beberapa proses ataupun thread dapat berjalan secara bersamaan dan mengakses basisdata yang sama tanpa mengalami masalah. Hal ini disebabkan karena akes baca data dilakukan secara paralel. Sementara itu akses tulis data hanya bisa dilakukan jika tidak ada proses tulis lain yang sedang dilakukan; jika tidak, proses tulis tersebut akan gagal dan mengembalikan kode kesalahan (atau bisa juga secara otomatis akan mencobanya kembali sampai sejumlah nilai waktu yang ditentukan habis). Hanya saja ketika sebuah tabel temporer dibuat, mekanisme penguncian pada proses multithread akan menyebabkan masalah http://www.emailbattles.com/archive/battles/group_aacihgadjd_aa/ . Update yang terkini (versi 3.3.4) dikatakan telah memperbaiki masalah ini.

Sebuah program yang mandiri dinamakan `sqlite` disediakan dan bisa digunakan untuk mengeksekusi kueri dan memanajemen file-file basisdata SQLite. Program tersebut juga merupakan contoh implementasi penulisan aplikasi yang menggunakan pustaka SQLite.

## Integrasi dengan bahasa lain

** SpatiaLite
** Comparison of relational database management systems
** List of relational database management systems
** Flat file database
** SQL Server Compact
** H2 (DBMS)
** Berkeley DB

## Lihat pula
* Daftar sistem manajemen database relasional
* Perbandingan sistem manajemen database relasional

## Referensi

## Pranala luar
* Website SQLite
* pysqlite - A Python Wrapper.
* DBD::SQLite  - A Perl module on CPAN.
* Sqlite-ruby  - A Ruby Interface.
* SQLiteManager - A PHP4 multilingual web based tool to manage SQLite database
* SQLite Developer - SQLite visual database manager
* SQLiteBrowser - SQLite visual database browser
* SQLite ODBC Driver
* Visual SQLite - SQLite GUI interface for Windows
* SQLiteSpy  - Very fast Unicode SQLite GUI with grid editing for Win32.
* SQLite.NET 2.0  - An ADO.NET 2.0 provider for SQLite
* Using SQLite Database with OpenOffice.org (via ODBC or sqlite-sdbc-driver)
* A tutorial to SQLite3 
* DISQLite3  - High-performance, embedded SQLite port and object-wrapper for Delphi.
* Aducom  - Delphi SQLite component
* Zeos - Delphi SQLite component