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.
Pustaka SQLite mengimplementasikan hampir seluruh elemen-elemen standar yang berlaku pada SQL-92, 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.
Sumber: Wikipedia-SQLite
Tidak ada komentar:
Posting Komentar