嵌入式數(shù)據(jù)庫管理系統(tǒng)的設計_第1頁
嵌入式數(shù)據(jù)庫管理系統(tǒng)的設計_第2頁
嵌入式數(shù)據(jù)庫管理系統(tǒng)的設計_第3頁
嵌入式數(shù)據(jù)庫管理系統(tǒng)的設計_第4頁
嵌入式數(shù)據(jù)庫管理系統(tǒng)的設計_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式數(shù)據(jù)庫管理系統(tǒng)的設計摘要:設計了一種嵌入式數(shù)據(jù)庫管理系統(tǒng),它以目前成熟的數(shù)據(jù)庫技術為基礎,針對嵌入式設備的具體特點,實現(xiàn)了對嵌入式數(shù)據(jù)庫中數(shù)據(jù)的存儲、組織和管理。對嵌入式數(shù)據(jù)庫管理系統(tǒng)中幾個關鍵技術的設計和實現(xiàn)進行了研究,對于應用于嵌入式數(shù)據(jù)庫管理系統(tǒng)的研究具有很好的參考價值。關鍵詞:嵌入式數(shù)據(jù)庫;數(shù)據(jù)庫管理系統(tǒng);存儲管理;并發(fā)控制;事務處理0引言嵌入式數(shù)據(jù)庫管理系統(tǒng),也稱為EDBMS,是由眾多模塊組成微型數(shù)據(jù)庫管理系統(tǒng)。在設計EDBMS時,可以依據(jù)各個模塊主要功能、功能間的依賴關系以及在EDBMS總體層次結構中所處的位置,將其核心劃分為3個部分:存儲管理、并發(fā)控制以及事務處理。1存儲功

2、能的設計思路數(shù)據(jù)庫系統(tǒng)一般存在3種模式,即內模式、外模式以及概念模式。EDBMS核心模塊中的存儲功能為這3種模式建立了很好的映射關系。主流的嵌入式操作系統(tǒng)如VxWorks,由于具有很強的文件系統(tǒng)功能,因此可以利用這個特點完成系統(tǒng)文件和數(shù)據(jù)文件在內外存之間的讀寫操作。另外,在分布式環(huán)境下還需要在EDBMS上實現(xiàn)有關網(wǎng)絡通信功能的模塊,可以稱之為網(wǎng)絡通信模塊。當系統(tǒng)運行時,存儲管理模塊可能要判斷某個數(shù)據(jù)是來自于某個通信端口還是來自于本系統(tǒng)中的FLASH。而網(wǎng)絡通信模塊可以通過建立一個統(tǒng)一的文件視圖,在通信端口和內存間實現(xiàn)有效的映射,使存儲模塊不必關心某個數(shù)據(jù)文件的來源。存儲管理功能的設計需要注意3

3、個問題,其工作流程見圖1。無論用戶還是某個應用進程,對數(shù)據(jù)庫系統(tǒng)的操作一般包括數(shù)據(jù)的增、刪、改、查、并歸和排序等。在操作過程中,可能出現(xiàn)在內存中多次復制同樣的記錄的情況,這樣會影響到系統(tǒng)的運行效率。因此可以完成一個能夠在操作結果和文件之間建立映射關系的結構體結果集。這個結構體的內容包括記錄編號和文件FD。當應用程序需要訪問數(shù)據(jù)時,該結構體會根據(jù)其中的內容從打開的文件中取出。圖1存儲管理功能的工作流程為了防止由于頻繁的寫FLASH造成EDBMS性能的下降,可以將頁面中變動的內容暫存在內存中。該頁就被內核標記為臟頁,內核將會在合適的時間如系統(tǒng)空閑或退出時把臟頁的數(shù)據(jù)寫到FLASH中去。這樣不僅可以

4、提高系統(tǒng)的工作效率,還可以保持內存中的數(shù)據(jù)和FLASH中的數(shù)據(jù)是一致的。EDBMS是通過邏輯/物理地址轉換功能實現(xiàn)數(shù)據(jù)庫的外模式。在系統(tǒng)中,用戶數(shù)據(jù)文件是保存在內存中一片連續(xù)存儲空間的二進制數(shù)值,而應用程序的操作對象是二維表,訪問該數(shù)據(jù)記錄時需使用表名、屬性名和記錄號。因此存儲管理功能的邏輯/物理地址轉換功能要根據(jù)數(shù)據(jù)文件中的頭結構等參數(shù)完成結構體的字段。2并發(fā)控制功能的設計思路進行并發(fā)事務處理的主要目的是為了保證事務處理的一致性和沖突解決的高效性。引起沖突的主要原因有兩方面:多個進程對同一個表項中的數(shù)據(jù)進行修改;事務對數(shù)據(jù)先讀后寫造成的沖突。在EDBMS中,為了使進程間能夠很好地通信,可以運

5、用“鎖策略”實現(xiàn)多個并行的事務并發(fā)讀取同一個數(shù)據(jù)資源。即通過加鎖的方法實現(xiàn)多個并行事務對同一個表進行讀操作,但只能有一個事務對該表執(zhí)行寫操作的過程。這兩個方面分別通過“共享鎖”和“排他鎖”完成。各個事務必須嚴格遵照“鎖策略”的規(guī)則。鎖的操作分為上升階段和釋放階段。當一個事務運用“鎖策略”向數(shù)據(jù)庫提出操作請求時,EDBMS會產(chǎn)生,SubTransaction進程完成該操作。這個時候為上升階段;在整個操作執(zhí)行結束后,將釋放該進程,這個時候為釋放階段。在并發(fā)處理功能中,如何解決死鎖是十分重要的問題。因此在EDBMS中可以引入死鎖檢測機制。即首先認為所有事務的調度是串行的,不會產(chǎn)生死鎖。每個等待死鎖的

6、事務上都給定一個時間戳。一旦有兩個以上的鎖節(jié)點上絕大部分的時戳超過了預設定的門限,即認為有死鎖產(chǎn)生,就可通知監(jiān)視模塊,進行相關的處理。3事務處理功能的設計思路事務處理功能是嵌入式數(shù)據(jù)庫管理系統(tǒng)十分重要的組成部分。它的主要任務是調度、管理分布式數(shù)據(jù)庫上運行的事務,負責子事務的初啟與結束,并監(jiān)督執(zhí)行。事務的狀態(tài)有四種,分別是開始事務、提交事務、回滾事務和事務恢復。當用戶的應用進程需要對數(shù)據(jù)庫進行訪問時,這樣的操作必須在一個任務中進行。每個任務中必然會有一個事務管理的操作,其主要作用是保證對數(shù)據(jù)的安全訪問。在事務開始時,必須申請事務將要用到的所有鎖,當事務結束時,釋放所有的鎖。EDBMS事務處理功能

7、要完成兩個非常重要的工作。首先,它要接受通過函數(shù)調用或通過消息機制的事務請求,根據(jù)操作類型產(chǎn)生相應的事務管理進程。另外它還要按照可串行化調度的方法,依據(jù)系統(tǒng)表或用戶數(shù)據(jù)表的不同,將每個具體的事務劃分為若干“寫”和“讀”的序列。同時,對于寫事務產(chǎn)生相應的日志機制并協(xié)調日志管理模塊的動作。EDBMS產(chǎn)生的所有可并發(fā)的讀事務和寫事務,構成一個子事務空間,這些子事務訪問文件視圖(數(shù)據(jù)空間)完成整個事務的階段性操作,這個過程同時受到并發(fā)控制模塊的管理。事務處理功能的實現(xiàn)以及與其他功能模塊的關系見圖2。4模塊間的交互在嵌入式數(shù)據(jù)庫管理系統(tǒng)中常見的功能模塊包括初始化模塊、異常處理模塊、日志管理模塊、備份還原

8、模塊、監(jiān)視模塊、網(wǎng)絡通信模塊以及上面提到的系統(tǒng)核心中的3個功能模塊。模塊之間的交互主要采用以下兩種方式:借助消息隊列發(fā)送控制消息和函數(shù)調用。借助消息隊列發(fā)送控制信息主要應用在進程級模塊間的交互,比如初始化模塊和其他各模塊間均米用這種方法進行控制信息轉發(fā),這是因為消息隊列只在進程級的模塊中使用。例如,當系統(tǒng)啟動的時候,初始化模塊會通過消息隊列發(fā)送INIT_ACK信號來同步各個模塊的創(chuàng)建,并通知存儲管理模塊對系統(tǒng)和用戶數(shù)據(jù)區(qū)進行初始化。此外異常處理模塊也是通過消息隊列接收各個模塊的告警信息。在EDBMS內部,各個非進程級模塊之間的交互一般采用函數(shù)調用的方法。比如說對于用戶表的操作模塊往往會調用其他

9、的四個模塊,因為對于用戶表的操作可能需要其他數(shù)據(jù)的支持,諸如數(shù)據(jù)字典、索引文件等。此外,事務管理模塊接受到用戶請求后,也會調用操作支持單元的函數(shù),創(chuàng)建相應的事務進程、子事務進程。而且子事務在執(zhí)行的過程中,如果出現(xiàn)文件尚未打開的情況,這時會調用存儲功能模塊的全局函數(shù),實現(xiàn)對用戶文件的I/O。5結束語針對嵌入式數(shù)據(jù)庫管理系統(tǒng)的核心功能以及各功能模塊間的交互進行了論述。嵌入式數(shù)據(jù)庫管理系統(tǒng)作為一類系統(tǒng)軟件,在設計時應嚴格遵循實用性、可靠性、先進性和易用性原則。在設計嵌入式數(shù)據(jù)庫管理系統(tǒng)時應該把握好專用性的度,以便于在實際應用時能根據(jù)具體情況進行裁剪,而專用性是實現(xiàn)輕量型的基礎。參考文獻:龔崇超嵌入式系統(tǒng)開發(fā)與應用J.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論