郝洋 肖子航 吳晨光
(1.河南省電力通信自動化公司,河南 鄭州 450000;2.河南省電力公司安陽供電公司,河南 安陽 455000)
(1)嵌入式(Embedded)
Berkeley DB能夠直接鏈接到應用程序當中,并不是只能應用于嵌入式系統。Berkeley DB與應用程序運行在相同的地址空間中,所以,無論是在同一臺計算機的不同進程之間,還是在互聯網上不同計算機之間,它對數據庫的操作不需要在進程之間建立通訊,從而可以大大提高數據庫訪問速度。Berkeley DB能夠為多種編程語言提供應用程序接口,包括 C++、Java、Python、PHP 和 Tcl等,所有的數據庫操作都在程序庫內部發生。
(2)可伸縮(Scalable)
Berkeley DB的函數庫容量很小,但是它能夠管理容量巨大的,可高達256TB,在性能方面與相同等級的數據庫系統相比較存在明顯優勢。Berkeley DB支持數據的高度并發操作,能夠輕松應付幾千個用戶同時對一個數據庫進行訪問。
(3)結構簡單
Berkeley DB數據庫具有簡單的存儲數據結構,每一個數據作為一個記錄,由關鍵字和數據共同組成。數據可以是一個字符串這種簡單的數據類型,也可以是C語言結構中的復雜數據類型,無論數據部分有多么繁雜,Berkeley DB都不會對其做出任何反應,完全由程序員自行處理。
Berkeley DB數據庫系統由五個子系統構成(如圖1所示):存取管理子系統、事務子系統、內存池管理子系統、鎖子系統和日志子系統。存取管理子系統是數據庫的核心子系統,每個子系統對應支持不同的應用級別。

圖1 Berkeley DB數據庫系統結構
(1)移動話費結算流程圖(圖二所示)
(2)話費結算原理
話費結算的任務是將從各個基站收集到的原始化條集合進行計算,并將計算結果存入服務器,保留原始記錄。結算過程中需要做余額的扣除處理。由于收集到的原始話條不帶有套餐信息,但是結算時必須要按照不同的套餐類型讀取參數進行計算,所以有必要以號碼作為聯系并讀取個人信息表取得該號碼所對應的套餐類型,并添加到原始化條中作為計算依據。
本文在移動話費計算中應用了Berkeley DB數據庫,并沒有選擇一些流行的主流數據庫,是根據移動話費業務系統的需求而定的。而主流的關系型數據庫比較適合處理數據結構復雜的數據,對于結構相對簡單的數據而言,使用Berkeley DB數據庫進行處理就會顯現出較大優勢。Berkeley DB提供了眾多應用程序接口,對于函數的調用非常簡單,Berkeley DB提高的庫與應用程序一起編譯成為可執行程序。由于數據庫管理系統和應用程序在同一個進程空間當中運行,通過調用Berkeley DB數據庫系統的函數來進行數據庫的訪問操作,所以不需要在數據庫和應用程序之間進行通信,也不需要應用SQL數據庫語言對數據庫進行操作,避免了系統對SQL數據庫語言的解析過程,大大降低了訪問數據庫的時間,并且提高了訪問速度。
(1)穩定性
移動話費業務系統由多臺服務器組成一個整體,全部站點面向移動用戶提供服務,如果有個別的站點出現技術故障,剩下的站點仍然可以向用戶提高服務,除非所有的站點全部癱瘓,Berkeley DB數據庫系統還可以提供監測功能,一旦服務器出現任何問題導致無法工作,就會重新啟動服務器,使整個系統更加穩定安全。
(2)可靠性
移動話費業務系統采用了Berkeley DB數據庫系統的恢復機制,如果服務器由于若干原因出現故障,導致無法正常處理用戶提交的數據,或者造成用戶數據丟失,可以通過Berkeley DB數據庫的恢復還原功能,同步控制端和站點之間的數據,從而很好地保證了系統可靠性。
(3)安全性
在移動話費業務系統整體服務器中,所有服務器存儲的用戶數據都是相同的,而且隨時進行同步更新,控制端負責將接收到的用戶請求數據同步給所有的站點,同時將數據存儲到控制端的數據庫中,如果服務器受到外界的攻擊,站點上的數據雖然會被破壞,但是主控端的數據是完好無損的,這是因為控制端不會接收站點同步的數據信息,所以主控端不會受到任何影響,并且起到了良好的備份作用。

移動話費結算流程圖
時下優良的數據庫系統支持架構對于移動話費結算業務來說至關重要,應用Berkeley DB的數據恢復機制、內存共享機制等,有效保證了移動話費業務數據庫服務器的穩定性、安全性和可靠性,同時提高了數據傳輸處理的效率。
[1]孟亞男,高明寶.嵌入式數據庫Berkeley DB在智能海洋機器人中應用 [J].微計算機信息.2009(02).
[2]周麗,楊曉松.Berkeley DB Java Edition數據結構的研究與應用 [J].計算機與現代化,2009(02).
[3]萬瑪寧,關永,韓相軍.嵌入式數據庫典型技術SQLite和Berkeley DB的研究 [J].微計算機信息,2006(02).
[4]黃志剛.基于Berkeley DB核心嵌入式實時數據庫引擎[J].計算機與數字工程,2007(03).
[5]劉智,付保川,奚雪峰.基于Berkeley DB的監控系統的設計與實現[J].科技廣場,2007(01).
[6]王洪蛟,董學仁,褚福強,蘭敏.BerkeIey DB在嵌入式系統中的應用研究[J].儀器儀表用戶.,2007(06).
[7]虞珊,周彩蘭,郭鳳玲.Berkeley DB在網絡信息挖掘中的應用 [J].計算機與現代化,2008(05).
[8]宋麗娜.嵌入式數據庫典型技術--SQLite和Berkeley DB的研究[J].科技信息(學術研究),2008(14).
[9]吳小博.嵌入式數據庫Berkeley DB研究[J].茂名學院學報,2008(04).
[10]范敏,王美廷.基于數據庫技術實現信息系統的可擴展性[J].光盤技術,2009(03).
[11]胡建紅.基于Delphi應用程序動態創建與訪問數據庫[J].南昌航空工業學院學報(自然科學版),2006(03).
[12]劉彩蘋,李仁發,李肯立.Recno索引方式在伯克利數據庫中的應用 [J].計算機應用,2004(12).
[13]Yadava H.The Berkeley DB Book.