數(shù)據(jù)庫問題

      了解數(shù)據(jù)庫服務(wù)器和嵌入式數(shù)據(jù)庫的差異|云計算與數(shù)據(jù)庫

      2021-09-03
      0

      嵌入式數(shù)據(jù)庫實際上是輕量級的,運行時需要的內(nèi)存更少。它們是用簡化的代碼編寫的,這對于嵌入式設(shè)備來說更快、更有效。嵌入式運行模式允許嵌入式數(shù)據(jù)庫通過SQL輕松管理應(yīng)用程序數(shù)據(jù),而不是依賴原始文本文件。嵌入式數(shù)據(jù)庫和數(shù)據(jù)庫服務(wù)器最大的區(qū)別是運行在不同的地址空間。通常,數(shù)據(jù)庫服務(wù)器獨立運行一個守護(hù)進(jìn)程,而嵌入式數(shù)據(jù)庫與應(yīng)用程序在同一進(jìn)程中運行。

      數(shù)據(jù)庫的架構(gòu)如下:圖中的數(shù)據(jù)庫客戶端通常通過JDBC、ODBC等數(shù)據(jù)庫驅(qū)動訪問數(shù)據(jù)庫服務(wù)器,然后數(shù)據(jù)庫服務(wù)器對數(shù)據(jù)庫文件進(jìn)行操作。數(shù)據(jù)庫服務(wù)是客戶端-服務(wù)器模式,客戶端和服務(wù)器完全是兩個獨立的進(jìn)程。它們可以位于不同的計算機(jī)甚至網(wǎng)絡(luò)中。客戶端和服務(wù)器通過TCP/IP進(jìn)行通信。這種模式將數(shù)據(jù)與應(yīng)用程序分開,便于控制和管理數(shù)據(jù)訪問。

      了解數(shù)據(jù)庫服務(wù)器和嵌入式數(shù)據(jù)庫的差異|云計算與數(shù)據(jù)庫

      嵌入式數(shù)據(jù)庫架構(gòu)如下:嵌入式數(shù)據(jù)庫不需要數(shù)據(jù)庫驅(qū)動,直接將數(shù)據(jù)庫的庫文件鏈接到應(yīng)用程序。應(yīng)用程序通過API而不是TCP/IP訪問數(shù)據(jù)庫。因此,嵌入式數(shù)據(jù)庫的部署是與應(yīng)用程序一起進(jìn)行的。例如,一個常見的版本控制器SubVersion將嵌入式數(shù)據(jù)庫與應(yīng)用程序結(jié)合使用。

      數(shù)據(jù)庫和嵌入式的比較如下:

      (1)數(shù)據(jù)庫服務(wù)器通常允許非開發(fā)人員(DBA、數(shù)據(jù)庫庫管理員)操作數(shù)據(jù)庫,而在嵌入式數(shù)據(jù)中,通常只允許應(yīng)用程序訪問和控制。(2)數(shù)據(jù)庫服務(wù)器將數(shù)據(jù)與程序分離,便于控制對數(shù)據(jù)庫的訪問。嵌入式數(shù)據(jù)庫完全將數(shù)據(jù)的訪問控制交給應(yīng)用程序,由應(yīng)用程序控制。(3)數(shù)據(jù)庫服務(wù)器需要獨立安裝、部署和管理,而嵌入式數(shù)據(jù)通常與應(yīng)用程序一起發(fā)布,因此不需要單獨部署數(shù)據(jù)庫服務(wù)器,其特點是程序的可移植性。從上面的對比可以看出,數(shù)據(jù)庫服務(wù)器和嵌入式數(shù)據(jù)庫各有特點,適用于不同的應(yīng)用場景。

      如果對你要存儲的數(shù)據(jù)的訪問比較復(fù)雜,比如跨網(wǎng)、訪問控制策略復(fù)雜,數(shù)據(jù)庫管理員需要經(jīng)常對其進(jìn)行管理和維護(hù),那么數(shù)據(jù)庫服務(wù)器非常適合你。如果對你要存儲的數(shù)據(jù)的訪問需要應(yīng)用控制,并且基本不需要人工干預(yù),對數(shù)據(jù)的訪問簡單、快速、有效,那么嵌入式數(shù)據(jù)庫就適合你。另外,你有沒有遇到過這樣的情況:存儲的數(shù)據(jù)量不是很大,所以建立一個通用的數(shù)據(jù)庫太浪費了,如果發(fā)布這個程序非常麻煩,那么那些微小的嵌入式數(shù)據(jù)庫可能非常適合你(比如有些郵件客戶端使用嵌入式數(shù)據(jù)庫)。

      了解數(shù)據(jù)庫服務(wù)器和嵌入式數(shù)據(jù)庫的差異|云計算與數(shù)據(jù)庫

      嵌入式數(shù)據(jù)庫:1.嵌入過程中,沒有單獨的引擎。2.可定制,體積小,滿足嵌入式系統(tǒng)的需求。

      BerkeleyDB數(shù)據(jù)庫(開源,商業(yè)收費)

      技術(shù)特點:1.Berkeley DB是一個開源的嵌入式數(shù)據(jù)庫管理系統(tǒng),可以為應(yīng)用提供高性能的數(shù)據(jù)管理服務(wù)。它的應(yīng)用程序員只需要調(diào)用一些簡單的API就可以訪問和管理數(shù)據(jù)。(不使用SQL語言)。2.BerkeleyDB為許多編程語言提供了實用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP。所有與數(shù)據(jù)庫相關(guān)的操作都由BerkeleyDB數(shù)據(jù)庫函數(shù)庫完成。3.Berkeley DB是可移植的,幾乎可以在所有UNIX和Linux系統(tǒng)及其變體、Windows操作系統(tǒng)和各種嵌入式實時操作系統(tǒng)下運行。Berkeley DB鏈接到應(yīng)用程序,終端用戶一般根本感覺不到有數(shù)據(jù)庫系統(tǒng)。4.BerkeleyDB是可伸縮的,這表現(xiàn)在很多方面。庫本身非常緊湊(不到300KB的文本空間),但它可以管理高達(dá)256TB的數(shù)據(jù)庫。它支持高并發(fā),成千上萬的用戶可以同時操作同一個數(shù)據(jù)庫。Berkeley DB可以用足夠小的占用空間運行具有嚴(yán)格約束的嵌入式系統(tǒng)。

      Berkeley DB在嵌入式應(yīng)用中優(yōu)于關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫的原因有以下兩個:(1)由于數(shù)據(jù)庫庫與應(yīng)用程序運行在同一地址空間,數(shù)據(jù)庫操作不需要進(jìn)程間通信。一臺機(jī)器的不同進(jìn)程之間或者網(wǎng)絡(luò)中不同機(jī)器之間的進(jìn)程通信成本遠(yuǎn)遠(yuǎn)大于函數(shù)調(diào)用的成本。(2)由于Berkeley DB對所有操作都使用一套API接口,不需要解析查詢語言,也不需要生成執(zhí)行計劃,大大提高了操作效率。

      SQLite(開源,商業(yè)免費)

      輕量級數(shù)據(jù)庫SQLite的主要特點如下:1.它支持無需配置、安裝或管理員的事件;2.支持大部分SQL92;3.一個完整的數(shù)據(jù)庫存儲在磁盤上的一個文件中,同一數(shù)據(jù)庫文件可以在不同的機(jī)器上使用。最大數(shù)據(jù)庫支持2T,對字符和BLOB的支持僅限于可用內(nèi)存。4.整個系統(tǒng)的代碼不到3萬行,內(nèi)存占用(gcc)不到250KB。大多數(shù)應(yīng)用程序比目前常見的客戶機(jī)/服務(wù)器數(shù)據(jù)庫更快,并且沒有其他依賴性。5.源代碼是開放的,95%的代碼都有很好的注釋,API也很好用。官方用TCL編譯的版本。

      了解數(shù)據(jù)庫服務(wù)器和嵌入式數(shù)據(jù)庫的差異|云計算與數(shù)據(jù)庫

      Empress(商業(yè)數(shù)據(jù)庫)

      發(fā)展階段特點:1.嵌入式程序,使應(yīng)用程序和數(shù)據(jù)庫在統(tǒng)一的地址空間中工作,增強(qiáng)了系統(tǒng)的穩(wěn)定性,提高了系統(tǒng)的效率。2.確認(rèn)響應(yīng)時間,Empress可以讓數(shù)據(jù)響應(yīng)時間相對一致,用戶可以設(shè)置超時限制。如果插入和修改操作沒有在指定時間內(nèi)完成,系統(tǒng)將報告錯誤。3.快速操作Empress提供了一個內(nèi)核級的CAPI,叫做MR,用MR寫的應(yīng)用在執(zhí)行的時候不需要解析。此外,MR中的加速機(jī)制還包括出色的鎖定控制、內(nèi)存管理和基于記錄數(shù)量的選擇功能。4.靈活的開發(fā)模式,Empress提供多種開發(fā)接口,加快開發(fā)進(jìn)程,無需開發(fā)人員重新學(xué)習(xí)開發(fā)語言,熟悉開發(fā)環(huán)境。5.友好的存儲方式,Empress數(shù)據(jù)庫可以放在操作系統(tǒng)支持的任何存儲設(shè)備中,Empress的形式甚至可以分為不同的存儲設(shè)備,如內(nèi)存、硬盤和光盤。6.微內(nèi)核結(jié)構(gòu)Empress高度單元化,可以根據(jù)需要選擇需要的單元,減少Empress數(shù)據(jù)庫在產(chǎn)品中占用的資源。7.廣泛的平臺支持。Empress支持多種硬件平臺和軟件平臺,也可以移植到客戶需要的硬件平臺或操作系統(tǒng)上。

      技術(shù)優(yōu)勢:1.微內(nèi)核結(jié)構(gòu)占用內(nèi)存空間小,特別適合緊湊設(shè)計。2.每周7天、每天24小時連續(xù)工作,無需任何額外的操作和維護(hù)。3.內(nèi)核級CAPI接口,最大化運行速度。4.高度靈活的SQL接口。5.出色的斷電恢復(fù)能力。6.強(qiáng)大的交易和鎖定機(jī)制。7.支持SCSI、RAID、IDE、RAM、CD-RW、DVD-ROM、CF等存儲介質(zhì)。8.支持Unicode代碼。9.引擎可以加載到磁盤和內(nèi)存中。

      EXtremeDB特點:

      1.混合數(shù)據(jù)庫。EXtremeDB不僅可以建立在主存中完全運行的主存數(shù)據(jù)庫,還可以建立磁盤/內(nèi)存混合介質(zhì)的數(shù)據(jù)庫。在eXtremeDB中,我們稱這種基于磁盤、內(nèi)存或磁盤+內(nèi)存的運行模式為eXtremeDB Fusion融合數(shù)據(jù)庫。EXtremeDB Fusion兼顧了數(shù)據(jù)管理的實時性和安全性要求,是實時數(shù)據(jù)管理的循序漸進(jìn)。

      2.應(yīng)用定制的API,根據(jù)應(yīng)用數(shù)據(jù)庫的設(shè)計,自動生成應(yīng)用程序?qū)XtremeDB數(shù)據(jù)庫的操作接口,不僅提高了性能,還消除了通用接口所必需的動態(tài)內(nèi)存分配,從而提高了應(yīng)用系統(tǒng)的可靠性。定制過程簡單方便。eXtremeDB數(shù)據(jù)庫中的表、字段、數(shù)據(jù)類型、事件觸發(fā)器、訪問方法等應(yīng)用特性由高級語言定制,訪問數(shù)據(jù)庫的C/C++ API接口由eXtremeDB預(yù)編譯器自動生成。

      了解數(shù)據(jù)庫服務(wù)器和嵌入式數(shù)據(jù)庫的差異|云計算與數(shù)據(jù)庫

      3.內(nèi)存數(shù)據(jù)庫。EXtremeDB將數(shù)據(jù)以程序直接使用的格式保存在主存中,不僅消除了文件I/O的開銷,還消除了文件系統(tǒng)數(shù)據(jù)庫所需的緩沖區(qū)和Cache機(jī)制。結(jié)果是每個事務(wù)的速度限制在1微秒或更低,這比類似磁盤的數(shù)據(jù)庫快幾百倍。作為內(nèi)存數(shù)據(jù)庫,eXtremeDB不僅性能高,而且數(shù)據(jù)存儲效率高。為了提高性能,方便程序的使用,在eXtremeDB中不壓縮數(shù)據(jù),100M的空間可以存儲70M以上的有效數(shù)據(jù),這在其他數(shù)據(jù)庫中是無法想象的。

      4.可預(yù)測的數(shù)據(jù)管理。EXtremeDB獨特的架構(gòu)確保了數(shù)據(jù)管理的可預(yù)測性。EXtremeDB不僅更快、更小,而且更確定。在80雙核CPU的服務(wù)器上,eXtremeDB將15B條記錄保存在1TB內(nèi)存中。無論記錄數(shù)量多少,eXtremeDB都可以在十分之一微秒內(nèi)提取出一條記錄。

      5.嵌入式數(shù)據(jù)庫。eXtremeDB內(nèi)核以鏈接庫的形式包含在應(yīng)用中,其開銷只有50KB~130KB。在嵌入式系統(tǒng)和實時系統(tǒng)中,eXtremeDB都是自然地嵌入到應(yīng)用程序中,并且在最終用戶不知情的情況下工作。eXtremeDB的自然嵌入性對于實時數(shù)據(jù)管理非常重要:每個進(jìn)程直接訪問eXtremeDB數(shù)據(jù)庫,避免了進(jìn)程間通信,從而消除了進(jìn)程間通信的開銷和不確定性。同時,eXtremeDB獨特的數(shù)據(jù)格式方便程序直接使用,消除了數(shù)據(jù)復(fù)制和數(shù)據(jù)翻譯的開銷,縮短了應(yīng)用程序的代碼執(zhí)行路徑。租用服務(wù)器可咨詢夢飛云idc了解。

      部分文章來源與網(wǎng)絡(luò),若有侵權(quán)請聯(lián)系站長刪除!

      推薦產(chǎn)品