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. 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
Keunggulan SQLite
Ada banyak keunggulan yang dimiliki oleh SQLite dibanding database lainnya. Apa saja? Ini dia 5 keunggulan SQLite.
Mudah Dikelola
SQLite mudah dikelola karena SQLite merupakan file tunggal (atau beberapa file saja dengan tambahan log transaksi). Bila dibandingkan dengan database lainnya, SQLite juga tidak membutuhkan konfigurasi banyak.
Selain itu, format filenya juga stabil di versi utama. Jadi, jika punya file database SQLite dari versi 3.0.0, pembaca tetap bisa membacanya dengan menggunakan SQLite terbaru 3.10.0. Jika pembaca ingin mengambil file database pada thumb drive, pembaca hanya perlu menyalin filenya saja.
Sangat Stabil
SQLite secara aktif dikembangkan oleh beberapa software engineer yang handal. Dalam waktu beberapa bulan, SQLite sering dirilis. Banyak fitur yang telah ditambahkan. Salah satunya fitur dukungan untuk data JSON melalui ekstensi json1. Selain itu, SQLite juga merilis versi perbaikan dari pencarian teks lengkap, yang meliputi hasil pemeringkatan dengan menggunakan algoritma BM25.
Selain menambahkan fitur baru, pengembang SQLite juga terus bekerja untuk meningkatkan performa SQLite. Dalam versi 3.8.11, SQLite menjadi dua kali lebih cepat dibanding versi 3.8.0 dan tiga kali lebih cepat dibanding versi 3.3.9
Meskipun banyak fitur yang sering ditambahkan, SQLite jarang menemukan bug didalamnya. Karena sebelum dirilis, SQLite di uji dengan pengujian yang cukup ketat.
Bisa Diperluas
SQLite juga bisa diperluas dengan ekstensi dan diintegrasikan dengan API. Salah satu contohnya adalah modul Python Pysqlite yang menjadi driver untuk SQLite. Ada juga modul Python Apsw yang menjadi driver alternatif SQLite. Modul Apsw menyediakan banyak API yang berguna untuk mendefinisikan fungsi kustom SQL, fungsi agregat, dan kolaborasi.
Sangat Cepat
SQLite sangat cepat jika berjalan pada lingkup yang sama sehingga tidak ada sumber daya tambahan seperti jaringan ketika menjalankan query maupun mengambil data. SQLite benar-benar fleksibel sehingga tidak membutuhkan protokol, serialisasi ataupun komunikasi melalui socket. SQLite juga bisa berjalan pada perangkat mobile, yang kini banyak dipakai di berbagai aplikasi Android.
Mode WAL
Mode WAL pertama kali diperkenalkan pada SQLite 3.7.0. Fitur ini berguna untuk mengatasi kongkurensi dimana aktivitas membaca dan menulis data bisa dilakukan secara bersamaan. Tanpa mode WAL, akan sangat sulit jika banyak menggunakan proses yang berkaitan dengan database.
SQLite merupakan mesin database yang unik, fleksibel dan mudah dikelola. SQLite juga bisa menjadi alternatif yang bagus untuk database dalam pengembangan perangkat lunak. Itulah dia SQLite dengan berbagai keunggulannya dan sebenarnya masih banyak keunggulan SQLite yang belum diulas. Apabila ada keunggulan SQLite lain, jangan sungkan untuk menambahkannya di kolom komentar dibawah ini. Selamat mencoba SQLite.
Sumber: codepolitan, wikipedia