數據庫服務器 SQLite 介紹
SQLite是遵守ACID的關聯式數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。
不像常見的客戶-服務器范例,SQLite引擎不是個程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協議是在編程語言內的直接API調用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數據庫(定義、表、索引和數據本身)都在宿主主機上存儲在一個單一的文件中。它的簡單的設計是通過在開始一個事務的時候鎖定整個數據文件而完成的。
特征
庫實現了多數的SQL-92標準,包括事務,就是代表原子性、一致性、隔離性和持久性的(ACID),觸發器和多數的復雜查詢。不進行類型檢查。你可以把字符串插入到整數列中。例如,某些用戶發現這是使數據庫更加有用的創新,特別是與無類型的腳本語言一起使用的時候。其他用戶認為這是主要的缺點。
多個進程或線程可以訪問同一個數據而沒有問題。可以并行的滿足多個讀訪問。只有在其他訪問當前不被服務的時候才能滿足寫訪問;否則寫訪問失敗并帶有一個錯誤代碼(也可以在可配置的超時過期之后自動的重試)。
提供了叫做sqlite的一個獨立程序用來查詢和管理SQLite數據庫文件。 它也充當寫使用SQLite庫的應用的一個例子。
語言綁定
可以從C/C++程序中使用這個庫,還可以獲得對Tcl和一些其他腳本語言的綁定。
在CPAN的DBD::SQLite上有一個Perl的DBI/DBD模塊,它不是到SQLite的接口,而是包括整個SQLite數據庫引擎在其中并不需要任何額外的軟件。
還有一個Python模塊叫做PySQLite。
PHP從PHP5.0開始包含了SQLite,但是自5.1版之后開始成為一個延伸函式庫。SQLite能與PHP4一起工作但不包含在其中。
Rails2.0.3將缺省的數據庫配置改為了SQLite 3
SQLite管理客戶端
SQLite亦可以作為桌面數據庫使用,以下為第三方SQLite的GUI軟件。例如,
- SQLiteMan,使用QT開發的一個SQLite客戶端,支持多語言、跨平臺。SQLiteMan
- SQLite Manager, 以 火狐瀏覽器的擴展形式提供的SQLite客戶端。
- SQLite Database Browser, a graphical client to access SQLite databases
- SqlPro SQL Client, another graphical client to work with SQLite databases