SQLite

SQLite

數據庫管理系統
SQLite,是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目标是嵌入式的,而且目前已經在很多嵌入式産品中使用了它,它占用資源非常的低,在嵌入式設備中,可能隻需要幾百K的内存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。至今已經有12個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。
    中文名:輕型數據庫 外文名:SQLite 别名: 軟件大小:5.1M 發 音:[seklait]

概述

SQLite 一個輕量級别數據庫, 具有很多不錯的特點。 支持事件 不需要配置,不需要安裝,也不需要管理員 支持大部分。

作用

SQL92 一個完整的數據庫保存在磁盤上面一個文件 同一個數據庫文件可以在不同機器上面使用 最大支持數據庫到2T 字符和BLOB的支持僅限制于可用内存 整個系統少于3萬行代碼,少于250KB的内存占用(gcc) 大部分應用比目前常見的 客戶端/服務端 的數據庫快 沒有其它依賴 源代碼開放, 代碼95%有較好的注釋 簡單易用的API. 官方帶有TCL的編譯版本。其它的單獨提供。

曆史版本

從某種程度上說,SQLite最初的構思是在一條軍艦上進行的。當時在通用動力工作的SQLite的作者 [1] D. Richard Hipp正在為美國海軍編制一種使用在導彈驅逐艦上的程序。那個程序最初運行在Hewlett-Packard UNIX(HPUX)上,後台使用Informix數據庫。對那個具體應用而言,Informix有點兒太強大了。一個有經驗的數據庫管理員(DBA)安裝或升級Informix可能需要一整天,如果是沒經驗的程序員,這個工作可能永遠也做不完。真正需要的隻是一個自我包含的數據庫,它易使用并能由程序控制傳導,另外,不管其他軟件是否安裝,它都可以運行。

2000年1月,Hipp開始和一個同事讨論關于創建一個簡單的嵌入式SQL數據庫的想法,這個數據庫将使用GNU DBM哈希庫(gdbm)做後台,同時這個數據庫将不需要安裝和管理支持。後來,一有空閑時間,Hipp就開始實施這項工作,2000年8月,SQLite 1.0版發布了。

按照原定計劃,SQLite 1.0用gdbm作為存儲管理器。然而,Hipp不久就用自己實現的能支持事務和記錄按主鍵存儲的B-tree替換了gdbm。随着第一次重要升級的進行,SQLite有了穩定的發展,功能和用戶也在增長。2001年中期,很多項目--開源的或商業的--都開始使用SQLite。在随後的幾年中,開源社區的其他成員開始為他們喜歡的腳本語言和程序庫編寫SQLite擴展。一個接着一個,既Perl、Python、Ruby、Java和其他主流的程序設計語言的擴展之後,新的擴展如SQLite的ODBC接口出現并證明了SQLite的廣泛應用和實用功能。n2004年,SQLite從版本2升級到版本3,這是一次重大升級。n以下是之後的版本更新曆史,可以在官網查詢到。n2004-06-09 - Version 2.8.14n2004-06-18 - Version 3.0.0n2007-09-04 - Version 3.5.0n2008-07-16 - Version 3.6.0n2008-11-19 - Version 3.6.6n2009-11-04 - Version 3.6.20n2010-03-09 - Version 3.6.23n2010-07-22 - Version 3.7.0n2010-08-24 - Version 3.7.2n2011-02-01 - Version 3.7.5n2012-06-11 - Release 3.7.13n2012-09-03 - Release 3.7.14n2012-12-12 - Release 3.7.15n2013-03-18 - Release 3.7.16n2013-05-20 - Release 3.7.17n2013-08-26 - Release 3.8.0n2013-10-17 - Release 3.8.1n2013-12-06 - Release 3.8.2n2014-02-03 - Release 3.8.3n2014-03-10 - Release 3.8.4n2014-06-04 - release 3.8.5n2014-08-15 - Release 3.8.6n2014-10-08 - Release 3.8.7 n2015-01-16 - Release 3.8.8

注意事項

在确定是否在應用程序中使用 SQLite 之前,應該考慮以下幾種情況:

目前沒有可用于 SQLite 的網絡服務器。從應用程序運行位于其他計算機上的 SQLite 的惟一方法是從網絡共享運行。這樣會導緻一些問題,像 UNIX® 和 Windows® 網絡共享都存在文件鎖定問題。還有由于與訪問網絡共享相關的延遲而帶來的性能下降問題。

SQLite 隻提供數據庫級的鎖定。雖然有一些增加并發的技巧,但是,如果應用程序需要的是表級别或行級别的鎖定,那麼 DBMS 能夠更好地滿足您的需求。

正如前面提到的,SQLite 可以支持每天大約 100,00 次點擊率的 Web 站點 —— 并且,在某些情況下,可以處理 10 倍于此的通信量。對于具有高通信量或需要支持龐大浏覽人數的 Web 站點來說,應該考慮使用 DBMS。

SQLite 沒有用戶帳戶概念,而是根據文件系統确定所有數據庫的權限。這會使強制執行存儲配額發生困難,強制執行用戶許可變得不可能。

SQLite 支持多數(但不是全部)的 SQL92 标準。不受支持的一些功能包括完全觸發器支持和可寫視圖。

如果您感到其中的任何限制會影響您的應用程序,那麼您應該考慮使用完善的 DBMS。如果您可以解除這些限制問題,并且對快速靈活的嵌入式開源數據庫引擎很感興趣,則應重點考慮使用 SQLite。

一些能夠真正表現 SQLite 優越性能的領域是 Web 站點,可以使用 SQLite 管理應用程序數據、快速應用程序原型制造和培訓工具。

由于資源占用少、性能良好和零管理成本,嵌入式數據庫有了它的用武之地,它将為那些以前無法提供用作持久數據的後端的數據庫的應用程序提供了高效的性能。現在,沒有必要使用文本文件來實現持久存儲。SQLite 之類的嵌入式數據庫的易于使用性可以加快應用程序的開發,并使得小型應用程序能夠完全支持複雜的 SQL。這一點對于對于小型設備空間的應用程序來說尤其重要。

嵌入式數據庫對于加快應用程序開發也很重要,尤其是在用于數據庫抽象層(例如PEAR::DB或ezSQL)時。最後,SQLite 正在積極開發中,未來一定會有新的功能,會對開源社區更有用。

上一篇:魅族m8

下一篇:心髒支架

相關詞條

相關搜索

其它詞條