嵌入式資料庫是
① 嵌入式系統與嵌入式資料庫有什麼區別和聯系
嵌入式資料庫是指運行在本機上、不用啟動服務端的輕型資料庫,它與應用程序緊密集成,被應用程序所啟動,並伴隨應用程序的退出而終止。
② 嵌入式sql和JDBC、ODBC什麼區別呢
初次接觸嵌入式資料庫(Embedded Database)可能對這個概念總不是很清楚,它究竟與資料庫伺服器(Database Server)有什麼區別,它們又分別適用於那些應用場景呢,這是需要解決的問題。
在談區別之前,先來個感性認識。像Oracle、Sybase、MySQL和SQL Server這些大家熟知的資料庫都屬於資料庫伺服器(當然不排除某些也提供嵌入式版本),而像SQLite、Berkeley DB等屬於嵌入式資料庫。
嵌入式資料庫跟資料庫伺服器最大的區別在於它們運行的地址空間不同。通常,資料庫伺服器獨立地運行一個守護進程(daemon),而嵌入式資料庫與應用程序運行在同一個進程。
資料庫伺服器的架構如下:
圖中的資料庫客戶端通常通過資料庫驅動程序如JDBC、ODBC等訪問資料庫伺服器,資料庫伺服器再操作資料庫文件。
資料庫服務是一種客戶端伺服器模式,客戶端和伺服器是完全兩個獨立的進程。它們可以分別位於在不同的計算機甚至網路中。客戶端和伺服器通過TCP/IP進行通訊。這種模式將數據與應用程序分離,便於對數據訪問的控制和管理。
嵌入式資料庫架構如下:
嵌入式資料庫不需要資料庫驅動程序,直接將資料庫的庫文件鏈接到應用程序中。應用程序通過API訪問資料庫,而不是TCP/IP。因此,嵌入式資料庫的部署是與應用程序在一起的。比如常見的版本控制器SubVersion,它所用的嵌入式資料庫就是跟應用程序放在一起的。
資料庫伺服器和嵌入式對比如下:
(1)資料庫伺服器通常允許非開發人員(DBA,資料庫庫管理員)對資料庫進行操作,而在嵌入式數據中通常只允許應用程序對其進行訪問和控制。
(2)資料庫伺服器將數據與程序分離,便於對資料庫訪問的控制。而嵌入式資料庫則將數據的訪問控制完全交給應用程序,由應用程序來進行控制。
(3)資料庫伺服器需要獨立的安裝、部署和管理,而嵌入式數據通常和應用程序一起發布,不需要單獨地部署一個資料庫伺服器,具有程序攜帶性的特點。
從上面的對比可以看出,資料庫伺服器和嵌入式資料庫各自具有自己的特點,它們分別適用於不同的應用場景。
如果你要存儲的數據的訪問比較復雜,比如跨網路、復雜的訪問控制策略,又需要資料庫管理員經常進行管理和維護,那麼資料庫伺服器就非常適合你。
如果你要存儲的數據的訪問之需要應用程序控制即可,並且基本不需要人工干預,而且需要對數據的訪問簡單、快速有效,那麼嵌入式資料庫適合你。
另外,你是否有過這樣的情況:存儲的數據量不是很大,如果搞個一般的資料庫來感覺太浪費了,而且如果發布這個程序還非常麻煩,這時那些微小的嵌入式資料庫可能非常適合你(如某些電子郵件客戶端就採用的是嵌入式資料庫)。
③ 嵌入式資料庫的可用於移動開發的嵌入式資料庫簡介
嵌入式資料庫是輕量級的,獨立的庫,沒有伺服器組件,無需管理,一個小的代碼尺寸,以及有限的資源需求。目前有幾種嵌入式資料庫,你可以在移動應用程序中使用。讓我們來看看這些最流行的資料庫。 資料庫數據類型存儲 License支持平台BerkeleyDBrelational, objects, key-value pairs, documentsAGPL 3.0Android, iOSCouchbase LitedocumentsApache 2.0Android, iOSLevelDBkey-value pairsNew BSDAndroid, iOSSQLiterelationalPublic DomainAndroid, iOS, Windows Phone, BlackberryUnQLitekey-value pairs, documentsBSD 2-ClauseAndroid, iOS, Windows Phone
④ 常用嵌入式資料庫有哪些
嵌入式資料庫還是有很多的,這里舉幾個吧:
1.Berkeley DB常用嵌入式資料庫有哪些
Berkeley
DB(BDB)是一個高效的嵌入式資料庫編程庫,C語言、C++、Java、Perl、Python、Tcl以及其他很多語言都有其對應的API。
Berkeley DB可以保存任意類型的鍵/值對(Key/Value Pair),而且可以為一個鍵保存多個數據。Berkeley
DB支持讓數千的並發線程同時操作資料庫,支持最大256TB的數據,廣泛用於各種操作系統,其中包括大多數類Unix操作系統、Windows操作系統
以及實時操作系統。
2.Couchbase Lite
Couchbase Lite
是一個為滿足在線和離線的移動應用所開發的超輕量的,可靠的,並且安全的JSON資料庫。即使在最不確定的網路條件下,亦可以給您的移動應用提供富有成效
的和可靠的信譽。除此之外,』同步門戶』功能亦可以提供協作, 社交互動或者是用戶的更新。
3.LevelDB
LevelDB是Google開源出的一個Key/Value存儲引擎,它採用C++編寫的,支持高並發訪問和寫入,特別適合對於高寫入業務環境。
4. SQLite
SQLite 是一個開源的嵌入式關系資料庫,實現自包容、零配置、支持事務的SQL資料庫引擎。
其特點是高度便攜、使用方便、結構緊湊、高效、可靠。 與其他資料庫管理系統不同,SQLite 的安裝和運行非常簡單,在大多數情況下 -
只要確保SQLite的二進制文件存在即可開始創建、連接和使用資料庫。
5.UnQLite
UnQLite是,由Symisc
Systems公司出品的一個嵌入式C語言軟體庫,它實現了一個自包含、無伺服器、零配置、事務化的NoSQL資料庫引擎。UnQLite是一個文檔存儲
資料庫,類似於MongoDB、Redis、CouchDB等。同時,也是一個標準的Key/Value存儲,與BerkeleyDB和LevelDB等
類似。