當前位置:編程學習大全網 - 源碼下載 - 後綴為.db的數據庫文件應該用什麽軟件打開啊?

後綴為.db的數據庫文件應該用什麽軟件打開啊?

Berkeley DB (DB)是壹個高性能的,嵌入數據庫編程庫,和C語言,C++,Java,Perl,Python,PHP,Tcl以及其他很多語言都有綁定。Berkeley DB可以保存任意類型的鍵/值對,而且可以為壹個鍵保存多個數據。Berkeley DB可以支持數千的並發線程同時操作數據庫,支持最大256TB的數據,廣泛用於各種操作系統包括大多數Unix類操作系統和Windows操作系統以及實時操作系統。 2.0版本或以上的Berkeley DB由Sleepycat Software公司開發,並使用基於自由軟件許可協議/私有許可協議的雙重授權方式提供[1],附有源代碼。開發者如果想把Berkeley DB嵌入在私有軟件內需要得到Sleepycat公司的許可,若將軟件同樣遵循GPL發布,則不需許可即可使用。而2.0版本以下的則使用BSD授權,可自由作商業用途。 Berkeley DB最初開發的目的是以新的HASH訪問算法來代替舊的hsearch函數和大量的dbm實現(如AT&T的dbm,Berkeley的 ndbm,GNU項目的gdbm),Berkeley DB的第壹個發行版在1991年出現,當時還包含了B+樹數據訪問算法。在1992年,BSD UNIX第4.4發行版中包含了Berkeley DB1.85版。基本上認為這是Berkeley DB的第壹個正式版。在1996年中期,Sleepycat軟件公司成立,提供對Berkeley DB的商業支持。在這以後,Berkeley DB得到了廣泛的應用,成為壹款獨樹壹幟的嵌入式數據庫系統。2006年Sleepycat公司被Oracle 公司收購,Berkeley DB成為Oracle數據庫家族的壹員,Sleepycat原有開發者繼續在Oracle開發Berkeley DB,Oracle繼續原來的授權方式並且加大了對Berkeley DB的開發力度,繼續提升了Berkeley DB在軟件行業的聲譽。Berkeley DB的當前最新發行版本是4.7.25。 值得註意的是DB是嵌入式數據庫系統,而不是常見的關系/對象型數據庫,對SQL語言不支持,也不提供數據庫常見的高級功能,如存儲過程,觸發器等。 Berkeley DB的體系結構  Berkeley DB以擁有比Microsoft SQL Server和Oracle等數據庫系統而言更簡單的體系結構而著稱。例如,它不支持網絡訪問—程序通過進程內的API訪問數據庫。 他不支持SQL或者其他的數據庫查詢語言,不支持表結構和數據列。 訪問數據庫的程序自主決定數據如何儲存在記錄裏,Berkeley DB不對記錄裏的數據進行任何包裝,每個記錄有且只有兩部分:鍵、值,所以在Berkeley DB的背景下通常用key/data pair指代壹個記錄。記錄和它的鍵都可以達到4G字節的長度。 盡管架構很簡單,Berkeley DB卻支持很多高級的數據庫特性,比如ACID 數據庫事務處理,細粒度鎖,XA接口,熱備份以及同步復制。 Berkeley DB包含有與某些經典Unix數據庫編程庫兼容的接口,包括:dbm,ndbm和hsearch。  Berkeley DB的核心數據結構  數據庫環境句柄DB_ENV: 每個DB_ENV相當於壹個數據庫,它包含了數據庫全局信息,比如緩沖區大小、以及對事務、日誌、鎖等子系統的全局配置信息。  數據庫句柄結構DB:每個DB相當於關系數據庫的壹個表,其中存儲了很多key/data pair。DB句柄代表了壹個包含了若幹描述數據庫表屬性的參數,如數據庫訪問方法類型、邏輯頁面大小、數據庫名稱等;同時,DB結構中包含了大量的數據庫處理函數指針,大多數形式為 (*dosomething)(DB *, arg1, arg2, …)。其中最重要的有open,close,put,get等函數。 數據庫記錄結構DBT:DB中的記錄由關鍵字和數據構成,關鍵字和數據都用結構DBT表示。實際上完全可以把關鍵字看成特殊的數據。結構中最重要的兩個字段是 void * data和u_int32_t size,分別對應數據本身和數據的長度。 數據庫遊標結構DBC:遊標(cursor)是數據庫應用中常見概念,其本質上就是壹個關於特定記錄的遍歷器。註意到DB支持多重記錄(duplicate records),即多條記錄有相同關鍵字,在對多重記錄的處理中,使用遊標是最容易的方式。 數據庫環境句柄結構DB_ENV:環境在DB中屬於高級特性,本質上看,環境是多個數據庫的包裝器。當壹個或多個數據庫在環境中打開後,環境可以為這些數據庫提供多種子系統服務,例如多線/進程處理支持、事務處理支持、高性能支持、日誌恢復支持等。 DB中核心數據結構在使用前都要初始化,隨後可以調用結構中的函數(指針)完成各種操作,最後必須關閉數據結構。從設計思想的層面上看,這種設計方法是利用面向過程語言實現面對對象編程的壹個典範。 Berkeley DB數據訪問算法  在數據庫領域中,數據訪問算法對應了數據在硬盤上的存儲格式和操作方法。在編寫應用程序時,選擇合適的算法可能會在運算速度上提高1個甚至多個數量級。大多數數據庫都選用B+樹算法,DB也不例外,同時還支持HASH算法、Recno算法和Queue算法。接下來,我們將討論這些算法的特點以及如何根據需要存儲數據的特點進行選擇。 B+樹算法  B+樹是壹個平衡樹,關鍵字有序存儲,並且其結構能隨數據的插入和刪除進行動態調整。為了代碼的簡單,DB沒有實現對關鍵字的前綴碼壓縮。B+樹支持對數據查詢、插入、刪除的常數級速度。關鍵字可以為任意的數據結構.  HASH算法  DB中實際使用的是擴展線性HASH算法(extended linear hashing),可以根據HASH表的增長進行適當的調整。關鍵字可以為任意的數據結構。 要求每壹個記錄都有壹個邏輯紀錄號,邏輯紀錄號由算法本身生成。實際上,這和關系型數據庫中邏輯主鍵通常定義為int AUTO型是同壹個概念。Recho建立在B+樹算法之上,提供了壹個存儲有序數據的接口。記錄的長度可以為定長或不定長。 和Recno方式接近, 只不過記錄的長度為定長。數據以定長記錄方式存儲在隊列中,插入操作把記錄插入到隊列的尾部,相比之下插入速度是最快的。 對算法的選擇首先要看關鍵字的類型,如果為復雜類型,則只能選擇B+樹或HASH算法,如果關鍵字為邏輯記錄號,則應該選擇Recno或Queue算法。當工作集關鍵字有序時,B+樹算法比較合適;如果工作集比較大且基本上關鍵字為隨機分布時,選擇HASH算法。Queue算法只能存儲定長的記錄,在高的並發處理情況下,Queue算法效率較高;如果是其它情況,則選擇Recno算法,Recno算法把數據存儲為平面文件格式。  Berkeley DB的資源鏈接:  官方主頁: /database/berkeley-db/db/index.html  產品下載: /technology/software/products/berkeley-db/index.html  官方開發者文檔中心: /technology/documentation/berkeley-db/db/index.html  產品技術信息: /technology/products/berkeley-db/pdf/berkeley-db-family-datasheet.pdf   /database/docs/berkeley-db-datasheet.pdf   /database/docs/Berkeley-DB-v-Relational.pdf  官方主頁上有很多有趣的成功案例的白皮書和技術文檔,值得大家學習

  • 上一篇:Android開源項目源代碼
  • 下一篇:短視頻怎麽壹鍵批量剪輯消重?
  • copyright 2024編程學習大全網