• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

開源嵌入式數據庫Berkeley DB

發布: 2008-4-28 10:32 | 作者: 不詳 | 來源: csai | 查看: 213次 | 進入軟件測試論壇討論

領測軟件測試網
關鍵字:嵌入式
      像MySQL這類基于C/S結構的關系型數據庫系統雖然代表著目前數據庫應用的主流,但卻并不能滿足所有應用場合的需要。有時我們需要的可能只是一個簡單的基于磁盤文件的數據庫系統。這樣不僅可以避免安裝龐大的數據庫服務器,而且還可以簡化數據庫應用程序的設計。Berkeley DB正是基于這樣的思想提出來的。

  一、Berkeley DB簡介

  Berkeley DB是一個開放源代碼的內嵌式數據庫管理系統,能夠為應用程序提供高性能的數據管理服務。應用它程序員只需要調用一些簡單的API就可以完成對數據的訪問和管理。與常用的數據庫管理系統(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數據庫服務器的概念。應用程序不需要事先同數據庫服務建立起網絡連接,而是通過內嵌在程序中的Berkeley DB函數庫來完成對數據的保存、查詢、修改和刪除等操作。

  Berkeley DB為許多編程語言提供了實用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同數據庫相關的操作都由Berkeley DB函數庫負責統一完成。這樣無論是系統中的多個進程,或者是相同進程中的多個線程,都可以在同一時間調用訪問數據庫的函數。而底層的數據加鎖、事務日志和存儲管理等都在Berkeley DB函數庫中實現。它們對應用程序來講是完全透明的。俗話說:“麻雀雖小五臟俱全!盉erkeley DB函數庫本身雖然只有300KB左右,但卻能夠用來管理多達256TB的數據,并且在許多方面的性能還能夠同商業級的數據庫系統相抗衡。就拿對數據的并發操作來說,Berkeley DB能夠很輕松地應付幾千個用戶同時訪問同一個數據庫的情況。此外,如果想在資源受限的嵌入式系統上進行數據庫管理,Berkeley DB可能就是惟一正確的選擇了。

  Berkeley DB作為一種嵌入式數據庫系統在許多方面有著獨特的優勢。首先,由于其應用程序和數據庫管理系統運行在相同的進程空間當中,進行數據操作時可以避免繁瑣的進程間通信,因此耗費在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡單的函數調用接口來完成所有的數據庫操作,而不是在數據庫系統中經常用到的SQL語言。這樣就避免了對結構化查詢語言進行解析和處理所需的開銷。

  二、基本概念

  Berkeley DB簡化了數據庫的操作模式,同時引入了一些新的基本概念,從而使得訪問和管理數據庫變得相對簡單起來。在使用Berkeley DB提供的函數庫編寫數據庫應用程序之前,有必要先了解以下這些基本概念。

 。、關鍵字和數據

  關鍵字(Key)和數據(Data)是Berkeley DB用來進行數據庫管理的基礎,由這兩者構成的Key/Data對(見表1)組成了數據庫中的一個基本結構單元,而整個數據庫實際上就是由許多這樣的結構單元所構成的。通過使用這種方式,開發人員在使用Berkeley DB提供的API來訪問數據庫時,只需提供關鍵字就能夠訪問到相應的數據。

 Key  Data
 sport  football
 Fruit  orange
 Drink  beer

表1 Key/Data對

  如果想將第一行中的“sport”和“football”保存到Berkeley DB數據庫中,可以調用Berkeley DB函數庫提供的數據保存接口。此時“sport”和“football”將分別當成關鍵字和數據來看待。之后如果需要從數據庫中檢索出該數據,可以用“sport”作為關鍵字進行查詢。此時Berkeley DB提供的接口函數會返回與之對應的數據“football”。

  關鍵字和數據在Berkeley DB中都是用一個名為DBT的簡單結構來表示的。實際上兩者都可以是任意長度的二進制數據,而DBT的作用主要是保存相應的內存地址及其長度,其結構如下所示:

typedef struct {
  void *data;
  u_int32_t size;
  u_int32_t ulen;
  u_int32_t dlen;
  u_int32_t doff;
  u_int32_t flags;
} DBT;
 
  在使用Berkeley DB進行數據管理時,缺省情況下是一個關鍵字對應于一個數據,但事實上也可以將數據庫配置成一個關鍵字對應于多個數據。

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: 開源 嵌入式 數據庫 Berkeley

51/512345>

關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97