簡介
隨著移動計算時代的到來,嵌入式作業系統對微小型資料庫管理系統的需求為資料庫技術開闢了新的發展空間。傳統的資料庫系統其結構和算法都是基於磁碟的,它需要大量的RAM和磁碟存儲空間,並且使用了緩衝及異步I/O技術來減少磁碟存取的開銷。然而,移動設備大多只有很小的存儲空間、較低的處理速度以及很低的網路頻寬,因此需要對傳統資料庫進行裁減以適應移動設備的需求。微小型資料庫管理系統是一個只需很小的記憶體來支持的資料庫管理系統核心。針對攜帶型設備,微小型資料庫管理系統占用的記憶體空間大約為2MB,而對於掌上設備和其他手持設備,它占用的記憶體空間只有50KB左右。
移動設備的計算能力小、存儲資源不多、頻寬有限以及Flash存儲上寫操作速度慢等特性,影響了微小型資料庫系統的設計。在設計微小型資料庫系統時,應該考慮如下設計原則:
•壓縮性原則。數據結構和代碼都要精簡。
•RAM原則。最小化RAM的使用。
•寫原則。最小化寫操作以減少寫代價。
•讀原則。充分利用快速讀操作。
•存取原則。利用低粒度和穩定記憶體的直接訪問能力進行讀和寫。
•安全原則。保護數據不受意外和惡意破壞,最小化算法的複雜性以避免安全漏洞。
背景與意義
資料庫系統自從20世紀60年代末產生以來,資料庫技術得到迅速發展,已形成較為完整的理論體系和一大批實用系統,現已成為計算機軟體領域的一個重要分支。本文參照資料庫實現原理,構造一具有資料庫某些子功能的系統,稱之為小型資料庫系統,對其實現進行分析設計,進而套用到實際軟體開發中去,並以此為例讓學生做一次綜合課程實踐。
軟體開發需要創新思維
實際開發中經常面對數據檔案處理問題,一般我們採用資料庫系統進行開發套用系統.但一般資料庫系統開發出的軟體,不是真正編譯生成的真正機器代碼,生成的程式比較龐大效率也較低,系統中數據安全保密問題不容易解決.還有一些繁瑣的問題需要解決,如生成exe檔案的發布、安裝比較困難,且沒有獨立的著作權.面向對象的高級語言Delphi以及Visual系列通過ODBC提供資料庫接口,使用起來也比較複雜。軟體開發是創造性工作,我們不應因循守舊,而應創新思維,另闢蹊徑。我們利用Pascal的記錄類型可做出實用的小軟體。
軟體開發講模組化思想方法,初學者不可能從大的系統開始,應從基礎做起,從小處著眼,逐步提高,也有利於培養學生的興趣,提高自信心.
在實踐中創新、提高
現行大多數軟體專業的教學計畫中,程式設計與軟體工程分屬不同的教材,之間缺少關聯,學生缺乏軟體開發的實踐.只有通過實踐才能證明理論.因此在保障基本教學計畫的情況下,壓縮程式設計課程授課時間,把主要知識講授完畢,指導學生接觸實際問題,提高學生的動手能力,是理論與實踐相結合的重要形式,也是對軟體開發過程有初步了解的最好途徑.這也是對傳統教學模式的改革嘗試,對教材體系不足的補充。
小型資料庫設計分析
開發的小型系統應具有互動能力和易用的程式接口。做成單元形式使之用於程式接口.系統應該是一個由多個小模組構成的函式、過程體的集合。
目標與總體思想
基本目標:具有能生成資料庫檔案結構、定義記錄、打開檔案、追加記錄、顯示記錄、修改記錄、查找、排序等基本功能.
較高目標:具有支持豐富數據類型、提供數據運算的功能,能進行互動式套用,給用戶提供良好易用的界面.
總體思想:建立通用的檔案結構,建立用戶的表結構信息,採用隨機存取機制,用記錄數組做檔案的緩衝,對檔案的操作轉到對記錄數組的操作;把各種數據類型的輸入、存儲都借用Turbo中的串類型,對於數據處理,提供處理用接口函式;對檔案大小加以限制,由於不用指針,只能用靜態數據結構,檔案行數、欄位數限制數目.對於基本功能都可以進行擴展,如要處理大的檔案可藉助於檔案的調入調出的算法對檔案的打開及回寫功能進行擴展.
系統應提供的基本功能函式或過程
檔案存在判斷函式.
根據用戶給定檔案名稱及欄位列表信息串生成庫結構.
顯示檔案結構信息.
打開檔案到緩衝區,設定記錄數、當前記錄數.
修改庫結構.
追加記錄.
顯示檔案結構.
保存檔案到磁碟.
返回給定欄位序號.
修改指定記錄的欄位為新值.
1.檔案存在判斷函式.
2.根據用戶給定檔案名稱及欄位列表信息串生成庫結構.
3.顯示檔案結構信息.
4.打開檔案到緩衝區,設定記錄數、當前記錄數.
5.修改庫結構.
6.追加記錄.
7.顯示檔案結構.
8.保存檔案到磁碟.
9.返回給定欄位序號.
10.修改指定記錄的欄位為新值.
系統提供較強的常用的功能函式
分析條件表達式,定位給定條件的記錄.
修改符合條件的記錄集合.
排序與索引功能.
數據處理函式.
安全加密問題.
1.分析條件表達式,定位給定條件的記錄.
2.修改符合條件的記錄集合.
3.排序與索引功能.
4.數據處理函式.
5.安全加密問題.
詳細設計
本系統應採用層次模型,把與檔案底層訪問相關的基礎子功能做為最底層模組.自底向上設計其它模組,各模組之間分層調用,只允許上層調用下層,這樣有利於以後的對子功能的修改和擴充.
粗略分析系統底層模組
把與檔案操作相關的需直接與作業系統打交道的功能模組做為最底層,分析底層模組的基本數據類型,底層的數據結構.給出如下形式的子功能清單:模組功能詳細說明,入口參數,返回值,局部數據結構.
分層設計高層模組
基於底層及下層模組,設計高層模組及相應的數據結構.給出如下形式的子功能清單:模組功能詳細說明,入口參數,返回值,局部數據結構,調用模組.在此基礎上分析設計全局的基礎數據結構,畫出模組層次調用關係圖.
詳細設計算法
1.粗略分析系統底層模組
把與檔案操作相關的需直接與作業系統打交道的功能模組做為最底層,分析底層模組的基本數據類型,底層的數據結構.給出如下形式的子功能清單:模組功能詳細說明,入口參數,返回值,局部數據結構.
2.分層設計高層模組
基於底層及下層模組,設計高層模組及相應的數據結構.給出如下形式的子功能清單:模組功能詳細說明,入口參數,返回值,局部數據結構,調用模組.在此基礎上分析設計全局的基礎數據結構,畫出模組層次調用關係圖.
3.詳細設計算法
實現及提高
根據詳細算法就可進行編碼,分別寫出以上基本過程,通過組裝進行單元測試和集成測試,來驗證各算法的正確性.在此基礎上,利用面向對象的方法,可以構造成一個類,來供其它套用來復用.為了進一步提高本系統功能,可用動態數據結構,增強系統處理能力.開發高層套用函式,提高運算功能.
小型資料庫技術
隨著科學技術的不斷進步,在微小型資料庫系統需求方面,嵌入式作業系統為資料庫技術開闢了新的空間。目前,微小型資料庫技術逐漸從研究領域延伸到套用領域。對於微小型資料庫系統來說,通常情況下,可以將其定義為:資料庫系統的核心僅需一個很小的記憶體就可以支持。在微小型資料庫系統中,對於攜帶型設備來說,其記憶體空間一般只有2MB,對於掌上設備或者其他手持設備來說,其記憶體空間通常只有50KB。記憶體空間的大小在一定程度上影響和制約著微小型資料庫系統的運行速度。根據占用記憶體的大小,可以將微小型資料庫系統分為:超微DBM SCpico-DBMS)、微小DBMS(micro一DBMS)和嵌入式DBMS。
在各種智慧型型嵌入設備或移動設備上,通過將微小型資料庫系統與作業系統進行集成,進而確保設備的征程運行。目前,微小型資料庫技術逐漸從研究領域延伸到套用領域,同時湧現出各種微小型資料庫產品。在各種智慧型設備中,隨著移動數據處理和管理需求的不斷提高,在學術界、工業界、軍事領域和民用部門等給予了嵌入式移動資料庫技術高度重視,並且不斷實用化。
常見資料庫管理系統
Access
Access是Office辦公套件中一個極為重要的組成部分。 剛開始時微軟公司是將Access單獨作為一個產品進行銷售的,後來微軟發現如果將Access捆綁在Office中一起發售,將帶來更加可觀的利潤,於是第一次將Access捆綁到Office 97中,成為Office套件中的一個重要成員。現在它已經成為Office辦公套件中不可缺少的部件了。自從1992年開始銷售以來,Access已經賣出了超過6 000萬份,現在它已經成為世界上最流行的桌面資料庫管理系統。後來微軟公司通過大量地改進,將Access的新版本功能變得更加強大。不管是處理公司的客戶訂單數據、管理自己的個人通訊錄,還是大量科研數據的記錄和處理,人們都可以利用它來解決大量數據的管理工作。
隨著版本的升級,Access的使用也變得越來越容易。過去很繁瑣的工作現在只需幾個很簡單的步驟就可以高質量地完成了。
Xbase系列及FoxPro
資料庫理論的研究在20世紀70年代後期進入較為成熟的階段,隨著20世紀80年代初IBM/PC及其兼容機的廣泛使用,資料庫產品的代表作之一Ashton.Tate公司開發的dBASE很快進入微機世界,成為一個相當普遍而且受歡迎的資料庫管理系統。用戶只需鍵入簡單的命令,即可輕易完成資料庫的建立、增添、修改、查詢、索引以及產生報表或標籤,或者利用其程式語言開發套用系統程式。由於它易於使用,功能較強,很快成為20世紀80年代中期的主導資料庫系統。繼dBASE II之後,dBASE III、dBASE III Plus以及dBASE IV相繼誕生,其功能逐漸增強。
但是,dBASE存在的一些缺陷使其套用受到越來越大的限制。首先,它運行速度慢,這在建立大型資料庫時顯得尤為突出。其次,早期的dBASE不帶編譯器,僅是解釋執行,後來雖然增加了編譯器,但編譯與解釋執行時存在許多差異。再就是它的設計標準,隨著dBASE增強版本的出現,由於各版本之間不相兼容,其標準變得越來越模糊,Ashton.Tate公司不再定義dBASE標準,就連dBASE IV本身也未按標準設計。後來,人們常用Xbase來表示各種資料庫管理系統的程式設計語言。
致力於改進dBASE語言,軟體公司的著眼點則放在兼顧掛靠速度與友好性。其做法是:繼續保有如dBASE般以互動式與用戶雙向通信的用戶界面,以維持其友好性;對於程式,將其轉成非常接近機器碼的中間碼,以節省彙編時間增快其執行速度。
從事該項工作之一的Fox Software正是看到了dBASE在性能與速度上存在的問題,也預見到了PC平台上DBMS的巨大潛力,在成立後的第2年(1984年)便推出了與dBASE全兼容的FoxBASE,其速度大大快於dBASE,並且在FoxBASE中第一次引入了編譯器。
•1986年,與dBASE III Hus兼容的FoxBASE+推出後不久,FoxPro/LAN也投入市場,一時間引起轟動。
•1987年之後相繼推出了FoxBASE+2.0和2.10,這兩個產品不僅在處理速度上超越其前期產品,而且還擴充了對開發者極其有用的語言,並提供了良好的界面和較為豐富的工具。
•人們預測,隨著軟體技術的快速發展,PCDBMS(資料庫管理系統)必將發生巨大的變化。它將越來越易於使用,為各個層次的用戶完成底層複雜的工作;它將提供更完整、更標準的Xbase語言和豐富的工具,並且具有面向對象的特點;多媒體技術將引入,人們可以建立其上的分散式資料庫來存取各種數據而無需考慮這些數據的物理位置。為了順應這一發展趨勢,FoxPro誕生了,它旨在創建Xbase語言的標準,它的每一個版本都向這一方向努力,其功能越來越完善和豐富。
•1989年下半年,FoxPro 1.O正式推出,它首次引入了基於DOS環境的視窗技術COM(面向字元的視窗),用戶使用的界面再也不是圓點,而是能產生圓點提示下等效命令的選單系統。它支持滑鼠,操作方便,是一個與dBASE,FoxBASE全兼容的編譯型集成環境式的資料庫系統。
•1991年,FoxPro 2.0推出。由於使用了Rushmore查詢最佳化技術、先進的關係查詢與報表技術以及整套第四代語言工具,FoxPro 2.0在性能上大幅度地提高了。它面向對象與事件,其擴展版本充分使用全部現存的擴展記憶體,是一個真正的32位產品。它除了支持FoxPro先前版本的全部功能外,還增加了100多條全新的命令與函式,從而使得FoxPro的程式設計語言逐步成為Xbase語言的標準。
•1992年微軟收購了Fox公司,把FoxPro納入自己的產品中。它利用自身的技術優勢和巨大的資源,在不長的時間裡開發出FoxPro 2.5,FoxPro 2.6等大約20個軟體產品及其相關產品,包括DOS,Windows,Mac和UNIX 4個平台的軟體產品。1995年6月,微軟推出了Visu.al FoxPro 3.0版。接著又很快推出Visual FoxPro 5.0及其中文版。1998年發布了可視化程式語言集成包Visual Stadio 6.0,它是可運行於Windows 95/98/NT平台的32位資料庫開發系統。它是能充分發揮32位微處理器的強大功能、直觀易用的編程工具。
小型資料庫的發展
隨著科技的發展,對數據管理提出新的要求和挑戰,研究和開發工作出現一片繁忙的景象。研究的重點依然是更高的性能,以及更為複雜、多樣的數據。
面向雲平台的數據管理技術
通過對計算、存儲、網路等硬體資源進行整合,雲平台為用戶提供了虛擬化技術,進而在一定程度上為用戶使用這些資源提供了便利性,同時確保了經濟性。對於雲計算來說,虛擬化和動態伸縮性是其主要的特點。在管理面向操作型套用數據、分析型套用數據的過程中,採用雲平台還需面對許多的挑戰,例如,在具有動態伸縮性的雲平台上,如何支持事務處理,如何在雲平台上部署新的存儲模型,如何放置數據,如何對數據進行容錯,以及如何將新的索引結構部署到雲平台上等,以及如何在雲平台上將資料庫當作一個服務進行部署,隨著時代的不斷發展,上述問題需要繼續進行深入研究分析。節能、隱私保護和安全等關鍵問題還需要面向雲平台的數據管理進行解決和處理,進而贏得用戶的信任,進一步實現產業化。
大數據統一處理平台
通過對上文進行分析,圍繞RDBMS和Hadoop技術分別產生了一個分析生態系統,以及正在產生一個分析生態系統。在某些方面這兩個系統是重疊的,在這種情況下,能否採取相應的措施,將兩項技術和生態系統融合到一起。在理論界、工業界的共同努力下,一定會形成一個統一的大數據處理框架以及生態系統。但是需要深入的研究某些問題,例如,如何在一個存儲層上數據組織方式)上整合多類型的數據;如何採取措施建立智慧型的存儲層;如何改進和最佳化查詢的調度算法,以及執行算法等,進而在一定程度上與多核、GPU、異構環境等相應的硬體環境相互適應,並且在雲平台上能夠正常運行;如何確保服務和功能超越SQL,對編程和套用接口進行擴展,針對普通用戶、高級用戶、統計學家,以及數學家等不同類型的用戶,進而提供個性化的數據分析環境和分析工具;如何對大數據的處理結果進行可視化。