數(shù)據(jù)庫(kù)管理通用平臺(tái)設(shè)計(jì)方案_第1頁(yè)
數(shù)據(jù)庫(kù)管理通用平臺(tái)設(shè)計(jì)方案_第2頁(yè)
數(shù)據(jù)庫(kù)管理通用平臺(tái)設(shè)計(jì)方案_第3頁(yè)
數(shù)據(jù)庫(kù)管理通用平臺(tái)設(shè)計(jì)方案_第4頁(yè)
數(shù)據(jù)庫(kù)管理通用平臺(tái)設(shè)計(jì)方案_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1 數(shù)據(jù)庫(kù)管理通用平臺(tái)設(shè)計(jì)方案 第一章 緒 論 臺(tái)的需求分析 通用數(shù)據(jù)平臺(tái)是一個(gè)支撐企業(yè)信息化數(shù)據(jù)集成的應(yīng)用平臺(tái),需要在給企業(yè)用戶提供便利、實(shí)用和強(qiáng)大的應(yīng)用環(huán)境的同時(shí),還提供統(tǒng)一信息交換,實(shí)現(xiàn)企業(yè)現(xiàn)有應(yīng)用系統(tǒng)間數(shù)據(jù)的整合與集成。 企業(yè)信息化的過(guò)程就是要將企業(yè)運(yùn)作處理的一切程序、資料變成信息資源,通過(guò)信息化的手段進(jìn)行處理,這些信息資源就來(lái)源于企業(yè)的設(shè)計(jì)、工藝、生產(chǎn)、銷(xiāo)售、采購(gòu)等各個(gè)環(huán)節(jié),完善這些環(huán)節(jié)的信息流的管理將直接加快企業(yè)處理信息的過(guò)程,從而提高企業(yè)的運(yùn)行效率;而充分利用有效的信息工具,特別是采用統(tǒng)一的數(shù)據(jù)平 臺(tái),可以加速企業(yè)的整個(gè)運(yùn)作過(guò)程,從而達(dá)到降低成本的目的;在提高質(zhì)量方面,信息工具所發(fā)揮的作用也是不可忽視的,它將大大減少人為處理過(guò)程中錯(cuò)誤、誤差,并提高準(zhǔn)確率和精度。 在解決企業(yè)信息化的過(guò)程中,企業(yè)采用的信息化系統(tǒng)不盡相同,可能差異很大,包括系統(tǒng)的編寫(xiě)語(yǔ)言、開(kāi)發(fā)工具、應(yīng)用環(huán)境等等,通用數(shù)據(jù)平臺(tái)所需解決的主要問(wèn)題之一就是整合企業(yè)已有的數(shù)據(jù)資源,充分利用已有的信息,更好地為企業(yè)服務(wù)。 體功能目標(biāo) 持異構(gòu)數(shù)據(jù)庫(kù) 支持國(guó)內(nèi)外常用數(shù)據(jù)庫(kù)異構(gòu);支持多庫(kù)的網(wǎng)絡(luò)分布,平臺(tái)所聯(lián)接的數(shù)據(jù)庫(kù)可 2 位于網(wǎng)絡(luò)中不同的 主機(jī)上支持不同類(lèi)型數(shù)據(jù)庫(kù)的熱切換;平臺(tái)所聯(lián)接的數(shù)據(jù)庫(kù)可在程序運(yùn)行中更改,實(shí)現(xiàn)軟切換。連接和訪問(wèn)分布式數(shù)據(jù)庫(kù),提供數(shù)據(jù)的可靠傳輸,解決不同軟硬件和網(wǎng)絡(luò)環(huán)境中系統(tǒng)的通信問(wèn)題,實(shí)現(xiàn)信息孤島之間的聯(lián)通。 蔽數(shù)據(jù)庫(kù)類(lèi)型的差異性 對(duì)企業(yè)應(yīng)用開(kāi)發(fā)人員屏蔽不同數(shù)據(jù)庫(kù)之間的差異。開(kāi)發(fā)人員只需要專(zhuān)注于業(yè)務(wù)需求,一次開(kāi)發(fā)就可以應(yīng)用于多種數(shù)據(jù)庫(kù)系統(tǒng),通過(guò)簡(jiǎn)單的配置就可以實(shí)現(xiàn)底層數(shù)據(jù)庫(kù)的切換。數(shù)據(jù)庫(kù)可配置、定義,支持常用數(shù)據(jù)庫(kù): 及國(guó)產(chǎn)數(shù)據(jù)庫(kù) 平臺(tái)配置自動(dòng)維護(hù);由定義器完成平臺(tái)的配置,數(shù)據(jù)庫(kù)定義與具體類(lèi)型無(wú)關(guān);通過(guò)使用“庫(kù) 關(guān)聯(lián)定義器”來(lái)實(shí)現(xiàn)基于平臺(tái)的軟件與數(shù)據(jù)庫(kù)類(lèi)型無(wú)關(guān);能降低應(yīng)用軟件規(guī)劃難度;實(shí)現(xiàn)大大減少應(yīng)用軟件的開(kāi)發(fā)量。 化數(shù)據(jù)庫(kù)訪問(wèn) 能結(jié)合配置和應(yīng)用邏輯生成 句;能根據(jù)部分新的要求產(chǎn)生完整的句;能產(chǎn)生復(fù)雜邏輯的 句組合;能自動(dòng)識(shí)別數(shù)據(jù)類(lèi)型;生成符合格式的 句;能提供盡可能多的錯(cuò)誤攔截、識(shí)別、信息提示和存盤(pán)等功能。實(shí)現(xiàn)對(duì)分布異構(gòu)數(shù)據(jù)庫(kù)的透明訪問(wèn)。實(shí)現(xiàn)數(shù)據(jù)的集中和匯總,使不同格式、不同數(shù)據(jù)管理系統(tǒng)中 的數(shù)據(jù)能夠相互交流和轉(zhuǎn)換。保持已有系統(tǒng)的自治性,在使用數(shù)據(jù)應(yīng)用開(kāi)發(fā)平臺(tái)的同時(shí)不影響已有系統(tǒng)的正常運(yùn)行。具有良好的開(kāi)放性和適應(yīng)性,能夠適應(yīng)向平臺(tái)中增加新的數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)升級(jí)和企業(yè)業(yè)務(wù)需求變更等變化。 現(xiàn)多種業(yè)務(wù)邏輯 能動(dòng)態(tài)生成和執(zhí)行 句;能產(chǎn)生和調(diào)用存儲(chǔ)過(guò)程,由觸發(fā)器等執(zhí)行;調(diào)用底層 獲取數(shù)據(jù)庫(kù)、表結(jié)構(gòu)信息;實(shí)現(xiàn)動(dòng)態(tài)業(yè)務(wù)邏輯變更提供面向?qū)ο蟮臄?shù)據(jù)事務(wù)組件;供搭建應(yīng)用程序構(gòu)成復(fù)雜的數(shù)據(jù)服務(wù)邏輯。 3 供通用的數(shù)據(jù)管理方法 將常用的操作沉淀為程序資源,如:插入、刪除、更新、查找 、篩選、統(tǒng)計(jì)等操作,規(guī)范數(shù)據(jù)操作接口;操作函數(shù)的參數(shù)格式統(tǒng)一,便于理解和可擴(kuò)展;數(shù)據(jù)庫(kù)升級(jí)只需改造平臺(tái),對(duì)應(yīng)用程序幾乎無(wú)影響;應(yīng)用程序編程員不必太了解數(shù)據(jù)庫(kù)技術(shù);減少重復(fù)代碼,實(shí)現(xiàn)一處維護(hù)多處受益。 體性能目標(biāo) 通用數(shù)據(jù)平臺(tái)要確保數(shù)據(jù)的有效性、機(jī)密性、完整性、安全性、可靠性,確保在日常維護(hù)或是意外崩潰時(shí)通用數(shù)據(jù)平臺(tái)可以正常運(yùn)轉(zhuǎn),確保系統(tǒng)單個(gè)服務(wù)故障不影響通用數(shù)據(jù)平臺(tái)的運(yùn)行。 平臺(tái)提供系統(tǒng)運(yùn)行日志,記錄平臺(tái)運(yùn)行狀況,提供平臺(tái)維護(hù)工具;采用統(tǒng)一的標(biāo)準(zhǔn)數(shù)據(jù)總線及功能豐富、面向應(yīng)用的集成代理機(jī)制,來(lái)確保平臺(tái) 具有足夠的可擴(kuò)展性。通用數(shù)據(jù)平臺(tái)適應(yīng)國(guó)產(chǎn)主流的數(shù)據(jù)庫(kù): 及國(guó)際主流數(shù)據(jù)庫(kù) 。 務(wù)系統(tǒng)與數(shù)據(jù)庫(kù)的分離 平臺(tái)支持用戶自定義業(yè)務(wù)系統(tǒng)的相應(yīng)的功能,留出二次開(kāi)發(fā)的接口供用戶在平臺(tái)的基礎(chǔ)上進(jìn)行開(kāi)發(fā)。如 系統(tǒng)可以充分利用平臺(tái)現(xiàn)有的接口,進(jìn)行相關(guān)的業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)。 現(xiàn)不同應(yīng)用 業(yè)務(wù)系統(tǒng)與平臺(tái)部分分離,實(shí)現(xiàn)業(yè)務(wù)應(yīng)用的動(dòng)態(tài)啟動(dòng)和停止。平臺(tái)利用服務(wù)監(jiān)聽(tīng)器這一機(jī)構(gòu)可以實(shí)現(xiàn):當(dāng)一個(gè)業(yè)務(wù)應(yīng)用啟動(dòng)的時(shí)候,平臺(tái)會(huì)將屬于這個(gè)業(yè)務(wù)應(yīng)用的用戶數(shù)據(jù)源啟動(dòng);當(dāng)一個(gè)業(yè)務(wù)應(yīng)用停止的時(shí)候,平臺(tái)會(huì)將屬于這個(gè)業(yè)務(wù)應(yīng)用的用戶數(shù)據(jù)源關(guān)閉。 持分布式應(yīng)用 支持分布式運(yùn)行方式,但只維護(hù)一份配置文件,平臺(tái)使用配置管理器來(lái)統(tǒng)一 4 讀取系統(tǒng)的配置信息,平臺(tái)的各種分布式的組件在啟動(dòng)的時(shí)候會(huì)自動(dòng)連接到一個(gè)運(yùn)行的配置管理器來(lái)獲得必要的信息。 成化的平臺(tái)管理工具 提供完善的圖形化的管理工具,其中集成了對(duì)業(yè)務(wù)應(yīng)用的所有功能進(jìn)行管理,業(yè)務(wù)數(shù)據(jù)的備份 /恢復(fù),數(shù)據(jù)源的配置,用戶的權(quán)限管理工具,數(shù)據(jù)庫(kù)對(duì)象的創(chuàng)建 /修改 /刪除。 線日志管理 平臺(tái)日志系 統(tǒng)要為用戶提供獨(dú)立可配置可擴(kuò)展的日志輸出機(jī)制?;谕ㄓ脭?shù)據(jù)平臺(tái)進(jìn)行二次開(kāi)發(fā)的時(shí)候,對(duì)調(diào)試信息進(jìn)行追蹤記錄。定義好追蹤等級(jí),對(duì)平臺(tái)事件進(jìn)行歸類(lèi),提供統(tǒng)一的事件代號(hào)。平臺(tái)運(yùn)行過(guò)程中,對(duì)平臺(tái)以及架構(gòu)在平臺(tái)之上的業(yè)務(wù)系統(tǒng)進(jìn)行跟蹤,記錄重要的改變,并給出相應(yīng)的恢復(fù)提示。 布式事務(wù)支持 平臺(tái)的事務(wù)處理功能模塊要保證在一個(gè)工作單元中的數(shù)據(jù)的完整性,構(gòu)造平臺(tái)自己的事務(wù)管理機(jī)制,簡(jiǎn)化分布式應(yīng)用的構(gòu)造,并且可以為用戶提供跨多種數(shù)據(jù)庫(kù)的分布式事務(wù)處理,實(shí)現(xiàn)了兩階段提交協(xié)議,保證數(shù)據(jù)的完整性和一致性。 用業(yè) 務(wù)邏輯對(duì)象管理及其調(diào)用 平臺(tái)使用通用對(duì)象模板技術(shù),提供通用數(shù)據(jù)對(duì)象的定義、存儲(chǔ)、編輯、查詢、統(tǒng)計(jì)工具,統(tǒng)一規(guī)范、共用資源。更好的進(jìn)行資源的管理,為快速部署信息化領(lǐng)域的解決方案提供技術(shù)支持。 5 第二章 通用數(shù)據(jù)平臺(tái)體系結(jié)構(gòu) 系架構(gòu) 本課題基于對(duì)國(guó)產(chǎn)數(shù)據(jù)庫(kù)技術(shù)的研究,從制造業(yè)信息化企業(yè)應(yīng)用軟件的需求入手,結(jié)合中小型制造業(yè)企業(yè)的特點(diǎn),提出并實(shí)現(xiàn)了面向中小企業(yè)的基于國(guó)產(chǎn)數(shù)據(jù)庫(kù)的制造業(yè)信息化應(yīng)用軟件集成理論和實(shí)現(xiàn)的技術(shù)路線。項(xiàng)目構(gòu)建基于國(guó)產(chǎn)數(shù)據(jù)庫(kù)的通用數(shù)據(jù)平臺(tái),提供基于國(guó)外數(shù)據(jù)庫(kù)和國(guó)產(chǎn)數(shù)據(jù)庫(kù)的應(yīng) 用軟件的整體解決方案。 通用數(shù)據(jù)平臺(tái)架構(gòu)在應(yīng)用程序和數(shù)據(jù)庫(kù)的中間,見(jiàn)圖 責(zé)應(yīng)用程序與數(shù)據(jù)庫(kù)服務(wù)器直接的通信,應(yīng)用邏輯( 句解析,數(shù)據(jù)提取,事務(wù)控制等)在通用數(shù)據(jù)平臺(tái)這個(gè)中間層進(jìn)行處理,業(yè)務(wù)邏輯在中間層進(jìn)行維護(hù)和實(shí)現(xiàn),避免了因業(yè)務(wù)變動(dòng)而對(duì)眾多應(yīng)用程序產(chǎn)生的沖擊。 圖 于國(guó)產(chǎn)數(shù)據(jù)庫(kù)的制造業(yè)信息化應(yīng)用軟件的體系架構(gòu) 術(shù)路線 課題立足于跟蹤數(shù)據(jù)庫(kù)應(yīng)用技術(shù)的發(fā)展和研發(fā)數(shù)據(jù)庫(kù)連接的通用數(shù)據(jù)平臺(tái)技術(shù) 開(kāi)目數(shù)據(jù)平臺(tái)( 僅要充分利用數(shù)據(jù)庫(kù)的 式 6 等標(biāo)準(zhǔn)訪問(wèn)不同的數(shù)據(jù) 庫(kù),而且可以超越數(shù)據(jù)庫(kù)的差異,通過(guò)一種統(tǒng)一的自然語(yǔ)言( 識(shí)別數(shù)據(jù)庫(kù)類(lèi)型,充分利用不同數(shù)據(jù)庫(kù)所提供的核心技術(shù)。 全性、效率、面向業(yè)務(wù)的對(duì)象數(shù)據(jù)操作、數(shù)據(jù)分析、數(shù)據(jù)自維護(hù)、數(shù)據(jù)檢驗(yàn)、數(shù)據(jù)庫(kù)對(duì)象動(dòng)態(tài)生成、數(shù)據(jù)柔性化等高級(jí)的一體化解決方案。 一種服務(wù)于開(kāi)目全線產(chǎn)品的通用開(kāi)發(fā)平臺(tái)和運(yùn)行支撐平臺(tái),故總是跟蹤數(shù)據(jù)庫(kù)的最新技術(shù),以滿足開(kāi)目產(chǎn)品發(fā)展的需要。于平臺(tái)和組件化技術(shù),通過(guò) 其 問(wèn)數(shù)據(jù)庫(kù),它主要提供語(yǔ)義翻譯 、數(shù)據(jù)緩沖、錯(cuò)誤攔截、業(yè)務(wù)數(shù)據(jù)批處理等預(yù)處理和后續(xù)處理功能。 用數(shù)據(jù)平臺(tái)模式 圖 架在應(yīng)用與數(shù)據(jù)庫(kù)間的中間層數(shù)據(jù)平臺(tái)模式 用數(shù)據(jù)平臺(tái)主要模塊以及工作流程 通用數(shù)據(jù)平臺(tái)的最主要的目的是在分布異構(gòu)數(shù)據(jù)庫(kù)之上為用戶提供一個(gè)開(kāi)放的、統(tǒng)一的信息處理環(huán)境,允許用戶使用統(tǒng)一的接口存取分布、異構(gòu)的多個(gè)數(shù)據(jù)庫(kù)上的數(shù)據(jù)。整個(gè)通用數(shù)據(jù)平臺(tái)采用客戶 服務(wù)器三層體系結(jié) 7 構(gòu)。一個(gè)完整的應(yīng)用系統(tǒng)分為三層:用戶應(yīng)用層( 應(yīng)用程序,應(yīng)用程序接口)、數(shù)據(jù)服務(wù)層(存儲(chǔ)過(guò)程解析 /轉(zhuǎn)換、數(shù)據(jù)庫(kù)備 份與恢復(fù)、安全管理、數(shù)據(jù)管理、模式管理、數(shù)據(jù)庫(kù)代理)和基礎(chǔ)設(shè)施層(平臺(tái)引擎)。用戶應(yīng)用層包括用戶在平臺(tái)基礎(chǔ)上建立起來(lái)的應(yīng)用系統(tǒng)(開(kāi)目 應(yīng)用軟件系統(tǒng)),以及在應(yīng)用和通用數(shù)據(jù)平臺(tái)之間的應(yīng)用程序接口;數(shù)據(jù)服務(wù)層為用戶應(yīng)用提供透明數(shù)據(jù)訪問(wèn)和存取服務(wù),是應(yīng)用和分布數(shù)據(jù)庫(kù)之間的橋梁;基礎(chǔ)設(shè)施層包括平臺(tái)引擎中的內(nèi)存對(duì)象、 析等。通用數(shù)據(jù)平臺(tái)的最終目的是在用戶應(yīng)用層和基礎(chǔ)設(shè)施層之間建立透明的服務(wù),處于中間層次的數(shù)據(jù)服務(wù)層是系統(tǒng)的關(guān)鍵。 通用數(shù)據(jù)平臺(tái)在分布異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之上建立了一套全局模式,在頂層為用戶提供一個(gè) 統(tǒng)一的視圖,底層數(shù)據(jù)庫(kù)的分布和異構(gòu)對(duì)頂層用戶是透明的,用戶可以像使用一個(gè)數(shù)據(jù)庫(kù)一樣使用分布異構(gòu)數(shù)據(jù)系統(tǒng) 12。用戶對(duì)局部數(shù)據(jù)庫(kù)的操作通過(guò)統(tǒng)一的用戶視圖進(jìn)行,操作以全局事務(wù)的形式提交給平臺(tái)系統(tǒng)。全局事務(wù)使用全局模式表示,是針對(duì)全局?jǐn)?shù)據(jù)進(jìn)行的操作。通用數(shù)據(jù)平臺(tái)的框架見(jiàn)圖 用數(shù)據(jù)平臺(tái)的主要模塊如下: 臺(tái)引擎 通用平臺(tái)的基礎(chǔ)設(shè)施,在內(nèi)存中以通用對(duì)象模板來(lái)組織內(nèi)存對(duì)象,實(shí)現(xiàn)通用數(shù)據(jù)平臺(tái)的 析,對(duì)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)對(duì)象提供通用的操作。 種數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程解析 /轉(zhuǎn)換 以自定義的 性語(yǔ)言為基礎(chǔ),實(shí)現(xiàn)異種數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程之間的相互轉(zhuǎn)換,實(shí)現(xiàn)一次編寫(xiě),各數(shù)據(jù)庫(kù)環(huán)境下運(yùn)行。 據(jù)庫(kù)備份與恢復(fù)模塊 基于平臺(tái)引擎的內(nèi)存數(shù)據(jù)對(duì)象,以及內(nèi)存索引對(duì)象,定義了一套通用的數(shù)據(jù)對(duì)象模板,并定義了一種通用的數(shù)據(jù)文件,用于存儲(chǔ)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)?;趯?duì)象模板和通用數(shù)據(jù)文件實(shí)現(xiàn)了異種數(shù)據(jù)庫(kù)之間數(shù)據(jù)的導(dǎo)入 /導(dǎo)出。 8 全管理模塊 以 型為基礎(chǔ),實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)的訪問(wèn)權(quán)限控制,防止非法用戶越權(quán)訪問(wèn)數(shù)據(jù)。 它模塊 數(shù)據(jù)管理、模式管理、數(shù)據(jù)庫(kù)代理等模塊實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)庫(kù)數(shù)據(jù)的一般業(yè)務(wù)邏輯 操作,包括數(shù)據(jù)創(chuàng)建與刪除等。 臺(tái)工作流程 平臺(tái)的工作過(guò)程如下:用戶應(yīng)用使用內(nèi)嵌 句的高級(jí)程序語(yǔ)言向平臺(tái)提交數(shù)據(jù)服務(wù)請(qǐng)求,查詢管理器的語(yǔ)言解釋器模塊根據(jù)全局模式對(duì)服務(wù)請(qǐng)求語(yǔ)句進(jìn)行分析和驗(yàn)證,經(jīng)過(guò)完整性檢查和初步的優(yōu)化后得到全局查詢計(jì)劃。全局查詢計(jì)劃是使用全局模式表示的,必須分解到相應(yīng)的局部數(shù)據(jù)庫(kù)去執(zhí)行,這部分工作由查詢分解器完成。當(dāng)一個(gè)局部數(shù)據(jù)庫(kù)的查詢語(yǔ)言與全局查詢語(yǔ)言不同時(shí),還需要進(jìn)行查詢轉(zhuǎn)換。經(jīng)過(guò)查詢轉(zhuǎn)換后得到了可 以在局部數(shù)據(jù)庫(kù)執(zhí)行的一系列子查詢,這些子查詢經(jīng)過(guò)事務(wù)處理器的協(xié)調(diào),得到了和原全局查詢等價(jià)的事務(wù)系列,這些事務(wù)系列送交各局部數(shù)據(jù)庫(kù)執(zhí)行,返回的數(shù)據(jù)經(jīng)由數(shù)據(jù)管理器進(jìn)行合并等操作,最后返回給用戶應(yīng)用程序。 9 圖 用開(kāi)發(fā)平臺(tái)的框架(主要模塊),以及各模塊間的相互關(guān)系 10 第三章 元數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn) 任何一個(gè)管理信息系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)方式無(wú)非就是查詢、增加、刪除、修改等幾類(lèi)操作,所不同的只是所訪問(wèn)具體數(shù)據(jù)的實(shí)際意義不同而已。所謂的數(shù)據(jù)庫(kù)通用平臺(tái)就是拋開(kāi)具體的查詢、增加 、刪除、修改,設(shè)計(jì)出一個(gè)適合各種不同意義數(shù)據(jù)的通用平臺(tái),這樣在進(jìn)行具體的訪問(wèn)時(shí),只需要調(diào)用這個(gè)通用平臺(tái)并配置相應(yīng)的參數(shù),就可以實(shí)現(xiàn)所需要的功能。對(duì)于這樣的訪問(wèn)方式,傳統(tǒng)意義的數(shù)據(jù)庫(kù)設(shè)計(jì)滿足不了,因?yàn)閭鹘y(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)都是針對(duì)于具體的數(shù)據(jù)設(shè)計(jì)的。這里就引入了元數(shù)據(jù)的概念。 元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù)。它是一種廣泛存在的現(xiàn)象,在許多領(lǐng)域有其具體的定義和應(yīng)用。在軟件開(kāi)發(fā)領(lǐng)域,元數(shù)據(jù)被定義為 :在程序中不是被加工的對(duì)象,而是通過(guò)其值的改變來(lái)改變程序的行為的數(shù)據(jù)。它在運(yùn)行過(guò)程中起著以解釋方式控制程序行為的作用。在程序 的不同位置配置不同值的元數(shù)據(jù),就可以得到與原來(lái)等價(jià)的程序行為。元數(shù)據(jù)描述數(shù)據(jù)的結(jié)構(gòu)和意義,就象描述應(yīng)用程序和進(jìn)程的結(jié)構(gòu)和意義一樣。 元數(shù)據(jù)是抽象概念。當(dāng)人們描述現(xiàn)實(shí)世界的現(xiàn)象時(shí),就會(huì)產(chǎn)生抽象信息,這些抽象信息便可以看作是元數(shù)據(jù)。例如,在描述風(fēng)、雨和陽(yáng)光這些自然現(xiàn)象時(shí),就需要使用”天氣“這類(lèi)抽象概念。還可以通過(guò)定義溫度、降水量和濕度等概念對(duì)天氣作進(jìn)一步的抽象概括。在數(shù)據(jù)設(shè)計(jì)過(guò)程中,也使用抽象術(shù)語(yǔ)描述現(xiàn)實(shí)世界的各種現(xiàn)象。 在本系統(tǒng)中元數(shù)據(jù)庫(kù)存儲(chǔ)了數(shù)據(jù)庫(kù)通用支撐層的控制和描述信息,包括關(guān)于菜單結(jié)構(gòu) 、服務(wù)關(guān)聯(lián)、數(shù)據(jù)處理和訪問(wèn)的控制以及客戶端顯示等方面的元數(shù)據(jù)。是整個(gè)平臺(tái)能夠?qū)崿F(xiàn)統(tǒng)一處理的基礎(chǔ)和關(guān)鍵部分。在元數(shù)據(jù)庫(kù)中包含的關(guān)鍵數(shù)據(jù)表有服務(wù)元數(shù)據(jù)表、組織結(jié)構(gòu)元數(shù)據(jù)表、基表查詢?cè)獢?shù)據(jù)表、基表查詢列信息數(shù)據(jù)表等,下面分別介紹。 3. 1 服務(wù)元數(shù)據(jù)表 服務(wù)元數(shù)據(jù)表是一記錄每一個(gè)服務(wù)的描述信息。其表結(jié)構(gòu)如表 4示。 表 3務(wù)元數(shù)據(jù)表 11 表 3務(wù)元數(shù)據(jù)表 (續(xù) ) 在這個(gè)表里,服務(wù)標(biāo)識(shí)碼是主鍵,唯一標(biāo)識(shí)了每一個(gè)定制的服務(wù), 通過(guò)這個(gè)服務(wù)標(biāo)識(shí)碼的命名必須遵循提前約定的規(guī)則,使服務(wù)處理模塊能根據(jù)服務(wù)標(biāo)識(shí)碼確定要操作的基表 ;服務(wù)名稱(chēng)、服務(wù)描述記錄了一些輔助的描述信息 ;服務(wù)相對(duì)路徑和服務(wù)文件名記錄了提供服務(wù)的程序地址。當(dāng)系統(tǒng)需要添加新功能時(shí),首先通過(guò)通用平臺(tái)提供的定制界面進(jìn)行定制,也就是設(shè)置相應(yīng)參數(shù),然后將這些參數(shù)保存到這個(gè)表里,這樣就為以后的服務(wù)處理模塊提供了入口參數(shù)。 3. 2 組織結(jié)構(gòu)元數(shù)據(jù)表 組織結(jié)構(gòu)元數(shù)據(jù)表主要記錄關(guān)于管理信息系統(tǒng)菜單結(jié)構(gòu)以及與服務(wù)關(guān)聯(lián)的信息,為菜單的自動(dòng)生成和處理提供參數(shù)數(shù)據(jù),系統(tǒng)中每一條菜單項(xiàng)在組織 結(jié)構(gòu)元數(shù)據(jù)表中對(duì)應(yīng)一條記錄說(shuō)明。其表結(jié)構(gòu)如表 3示。 表 3織結(jié)構(gòu)元數(shù)據(jù)表 12 表 3組織結(jié)構(gòu)元數(shù)據(jù)表 (續(xù) ) 其中菜單項(xiàng)標(biāo)識(shí)碼是主鍵,唯一標(biāo)識(shí)每個(gè)菜單項(xiàng) ;菜單采用樹(shù)型結(jié)構(gòu),所以用父結(jié)點(diǎn)標(biāo)識(shí)碼記錄上一級(jí)菜單,結(jié)點(diǎn)順序號(hào)和菜單名稱(chēng)記錄了菜單在客戶端展現(xiàn)的情況 ;節(jié)點(diǎn)類(lèi)型記錄了菜單的類(lèi)別,如根節(jié)點(diǎn)、中間節(jié)點(diǎn)、葉子節(jié)點(diǎn)等不同的節(jié)點(diǎn)類(lèi)型。 服務(wù)標(biāo)識(shí)碼提供了與服務(wù)元數(shù)據(jù)表相關(guān)聯(lián)的接口,也就是菜單所對(duì)應(yīng)的服務(wù)。通過(guò)數(shù)據(jù)庫(kù)表之間的關(guān)聯(lián)關(guān)系,找到菜單所對(duì)應(yīng) 的服務(wù)的元數(shù)據(jù),通過(guò)這些元數(shù)據(jù),就能對(duì)菜單進(jìn)行統(tǒng)一的顯示和處理。 表查詢?cè)獢?shù)據(jù)表 基表查詢?cè)獢?shù)據(jù)表是為了定制查詢服務(wù)而建立的表結(jié)構(gòu)。該表主要存儲(chǔ)了每一個(gè)查詢服務(wù)與基表或視圖之間的映射關(guān)系。其表結(jié)構(gòu)如表 3示。 表 3表查詢?cè)獢?shù)據(jù)表 13 每一類(lèi)查詢?cè)诖吮碇杏幸粭l記錄說(shuō)明,表中的查詢標(biāo)識(shí)字段是主鍵,唯一標(biāo)識(shí)每一類(lèi)查詢。查詢表名記錄要訪問(wèn)的基表或視圖,其它字段都是記錄與查詢相關(guān)的輔助信息,比如查詢涉及到的某些隱含查詢條件等等。 3. 4 基表查詢列信息數(shù)據(jù) 表 基表查詢列信息數(shù)據(jù)表定義了每一個(gè)查詢服務(wù)中各列與相應(yīng)的基表各列之間的一一映射關(guān)系。也就是說(shuō)這個(gè)表中記錄了查詢的結(jié)果顯示在客戶端的具體形式的控制信息,比如 :數(shù)據(jù)類(lèi)型、長(zhǎng)度、取值范圍等等詳細(xì)信息。具體的表結(jié)構(gòu)如表 4示。 表 3表查詢列信息數(shù)據(jù)表 14 表 3 4 基表查詢列信息數(shù)據(jù)表 (續(xù) ) 基表查詢列信息數(shù)據(jù)表與基表查詢?cè)獢?shù)據(jù)表之間通過(guò)查詢標(biāo)識(shí)關(guān)聯(lián),是多對(duì)一的關(guān)系?;聿樵?cè)獢?shù)據(jù)表記錄了定制的服務(wù)與基表之間的映射關(guān)系,但查詢畢竟是要 對(duì)基表中的相關(guān)字段進(jìn)行處理,所以就用基表查詢列信息數(shù)據(jù)表記錄基表中每一列查詢的詳細(xì)信息數(shù)據(jù),在要查詢的基表中有多少列,基表查詢列信息數(shù)據(jù)表中就會(huì)有多少個(gè)表與之對(duì)應(yīng),因而是一對(duì)多的關(guān)系。在一個(gè)管理信息系統(tǒng)中的查詢會(huì)因需求的不同而不同,因而基表查詢列信息數(shù)據(jù)表是元數(shù)據(jù)庫(kù)中最復(fù) 15 雜的一個(gè)表??梢园驯碇械男畔⒎殖伤念?lèi) : 一類(lèi)是一般性信息 :列名、列序號(hào)、列描述、列數(shù)據(jù)類(lèi)型、列長(zhǎng)度、列小數(shù)位等。這些基本與基表中的信息一致。 第二類(lèi)是與查詢條件相關(guān)的數(shù)據(jù)。查詢條件列標(biāo)志,用于描述與列相關(guān)的查詢條件約束 :是否作為查詢 條件,精確查詢還是模糊查詢等等。這些信息分別用不同的值表示。超級(jí)鏈接類(lèi)型和超級(jí)鏈接查詢標(biāo)識(shí)是定義是否需要根據(jù)此列深入查詢?cè)敿?xì)內(nèi)容,如果需要?jiǎng)t定義超級(jí)鏈接查詢主鍵和超級(jí)鏈接查詢值列。 第三類(lèi)是定義在客戶端顯示的字段及其顯示形式。瀏覽標(biāo)志定義了該列是否需要在查詢結(jié)果中顯示出來(lái)。當(dāng)在屏幕上此列位置顯示的結(jié)果不是這列存儲(chǔ)的原始信息,而是需要根據(jù)此列進(jìn)行轉(zhuǎn)換的信息時(shí),就用到了列類(lèi)型、查找表主列、查找表名、查找表結(jié)果列這幾個(gè)字段。比如性別,在數(shù)據(jù)庫(kù)基本信息表中,用數(shù)字 0 或 1 表示男女性別,但是當(dāng)顯示在客戶端時(shí),如 果還是用 0, 1 表示性別,對(duì)客戶來(lái)說(shuō)界面就不友好,這時(shí)就需要轉(zhuǎn)換成漢字形式。初值、查詢條件初值分別是在查詢頁(yè)面和更新頁(yè)面中所顯示出的初值。還有顯示對(duì)齊方式、顯示顏色等級(jí)等字段為此列在顯示時(shí)的一些細(xì)節(jié)信息。 第四類(lèi)是為字段的修改做準(zhǔn)備的,主要有修改標(biāo)志這個(gè)字段。如果要修改表中的某一個(gè)字段,就定義這個(gè)修改列標(biāo)志。 16 第四章 數(shù)據(jù)庫(kù)通用平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn) 數(shù)據(jù)庫(kù)通用平臺(tái)的關(guān)鍵部分除了元數(shù)據(jù)庫(kù)的設(shè)計(jì)外,還有數(shù)據(jù)庫(kù)通用支撐層。這個(gè)支撐層是介于數(shù)據(jù)庫(kù)層和應(yīng)用層之間的一個(gè)中間層,也可以說(shuō)這個(gè) 支撐層是數(shù)據(jù)庫(kù)與實(shí)際應(yīng)用之間的一個(gè)橋梁。無(wú)論是在開(kāi)發(fā)一個(gè)新的管理信息系統(tǒng)還是為己有的系統(tǒng)增加新功能,只要按照數(shù)據(jù)庫(kù)通用平臺(tái)的規(guī)則配置相應(yīng)的參數(shù),該平臺(tái)就能自動(dòng)的連接數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)處理,開(kāi)發(fā)者并不需要去關(guān)心數(shù)據(jù)庫(kù)詳細(xì)操作。這樣就會(huì)減少很多重復(fù)編碼,給開(kāi)發(fā)者、系統(tǒng)維護(hù)者帶來(lái)了極大的方便。 數(shù)據(jù)庫(kù)通用支撐層主要包括基礎(chǔ)模塊、服務(wù)定制模塊和服務(wù)處理模塊三大部分?;A(chǔ)模塊主要功能是數(shù)據(jù)庫(kù)的連接、關(guān)閉,所有對(duì)數(shù)據(jù)庫(kù)的操作都是基于這個(gè)模塊。 服務(wù)定制主要是為管理信息系統(tǒng)的開(kāi)發(fā)人員和系統(tǒng)維護(hù)人員設(shè)置的。對(duì) 于開(kāi)發(fā)一個(gè)新系統(tǒng)的情況,需要先把定制服務(wù)模塊移植到系統(tǒng)中,然后再根據(jù)需求分析在定制服務(wù)模塊進(jìn)行相關(guān)的定制,服務(wù)處理模塊就會(huì)根據(jù)這些定制信息進(jìn)行處理并在前臺(tái)展現(xiàn)出來(lái) ;對(duì)于系統(tǒng)維護(hù)的情況來(lái)說(shuō),定制服務(wù)模塊已經(jīng)包含在系統(tǒng)里,只要定制新加的功能就可以了。 服務(wù)處理模塊的功能就是在系統(tǒng)運(yùn)行時(shí),根據(jù)服務(wù)定制模塊定制的參數(shù) (這些參數(shù)保存在元數(shù)據(jù)庫(kù)中 )進(jìn)行統(tǒng)一處理。下面分別介紹這三個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)。本通用平臺(tái)雖然是一個(gè)相對(duì)獨(dú)立的構(gòu)件,但在應(yīng)用中必須與具體的管理信息系統(tǒng)集成才能實(shí)現(xiàn)其功能,所以關(guān)于本平臺(tái)的測(cè)試信息將在第六章 介紹。 4. 1 數(shù)據(jù)庫(kù)接入技術(shù) 應(yīng)用程序與后臺(tái)數(shù)據(jù)庫(kù)的交互是通過(guò)數(shù)據(jù)庫(kù)的接入技術(shù)來(lái)實(shí)現(xiàn)的,對(duì)于管理信息系統(tǒng)來(lái)說(shuō),訪問(wèn)數(shù)據(jù)庫(kù)是最重要的一個(gè)環(huán)節(jié)。各種開(kāi)發(fā)工具或者程序設(shè)計(jì)語(yǔ)言連接數(shù)據(jù)庫(kù)的技術(shù)不一樣,現(xiàn)今有很多的組件來(lái)實(shí)現(xiàn),使得數(shù)據(jù)庫(kù)的訪問(wèn)和操作變得更加高效和快捷。在本數(shù)據(jù)庫(kù)通用平臺(tái)中,訪問(wèn)數(shù)據(jù)庫(kù)是通過(guò) 口進(jìn)行的。 一種可用于執(zhí)行 句的 言的數(shù)據(jù)庫(kù)訪問(wèn)接口,它由一些 言編寫(xiě)的類(lèi)和界面組成。 數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)人員、數(shù)據(jù)庫(kù)前臺(tái)工 17 具開(kāi)發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計(jì)接口,使開(kāi)發(fā)人員可以用純 言編寫(xiě)完整的數(shù)據(jù)庫(kù)應(yīng)用程序。由于 言與平臺(tái)無(wú)關(guān),所以利用 植方便。 通過(guò)使用 發(fā)人員可以很方便地將 句傳送給幾乎任何一種數(shù)據(jù)庫(kù)。用 的程序能夠自動(dòng)地將 句傳送給相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(但如此使用 寫(xiě)的應(yīng)用程序可以在任何支持 平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上編寫(xiě)不同的應(yīng)用。 結(jié)合可以讓開(kāi)發(fā)人員在開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用時(shí)真正實(shí)現(xiàn)“ 有健壯、安全、易用等特性,而且支持自動(dòng)網(wǎng)上下載,本質(zhì)上是一種很好的數(shù)據(jù)庫(kù)應(yīng)用的編程語(yǔ)言。它所需要的是 用如何同各種各樣的數(shù)據(jù)庫(kù)連接, 是實(shí)現(xiàn)這種連接的關(guān)鍵。 1. 任務(wù) 簡(jiǎn)單地說(shuō), 完成下列三件事 : 1)與數(shù)據(jù)庫(kù)建立連接 ; 2)向數(shù)據(jù)庫(kù)發(fā)送 句 ; 3)處理數(shù)據(jù)庫(kù)返回的結(jié)果。 2. 種底層的 一種底層 意味著它將直接調(diào)用 令。 全能勝任這個(gè)任務(wù),而且比其它數(shù)據(jù)庫(kù)互聯(lián)更加容易實(shí)現(xiàn)。同時(shí)它也是構(gòu)造高層 層 數(shù)據(jù)庫(kù)開(kāi)發(fā)工具應(yīng)該是用戶界面更加友好,使用更加方便,更易于理解的。但所有這樣的 最終被翻譯為象 前兩種基于 高層 處在開(kāi)發(fā)階段。 3. 層模型和三層模型 持兩層模型,也支持三層模型訪問(wèn)數(shù)據(jù)庫(kù)。 兩層模型中,一個(gè) 者一個(gè) 用直接同數(shù)據(jù)庫(kù)連接。這就需要能直接被訪問(wèn)的數(shù)據(jù)庫(kù)進(jìn)行連接的 動(dòng)器。用戶的 句被傳送給數(shù)據(jù)庫(kù),而這些語(yǔ)句執(zhí)行的結(jié)果將被傳回給用戶。 在三層模型中,命令將被發(fā)送到服務(wù)的“中間層”,而“中間層”將 句發(fā)送到數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)處理 句并將結(jié)果返回“中間層”,然后“中間層” 18 將它們返回用戶?!爸虚g層”一個(gè)優(yōu)勢(shì)是可以進(jìn)行對(duì)訪問(wèn)的控制并協(xié)同數(shù)據(jù)庫(kù)的更新,另一個(gè)優(yōu)勢(shì)就是如果有一個(gè)“中間層”用戶就可以使用一個(gè)易用的高層的個(gè) 以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成底層 的調(diào)用。而且,在許多情況下,三層模型可以提供更好的性能。 允許從一個(gè) 間層”訪問(wèn)數(shù)據(jù)庫(kù)的接口。 使用 接數(shù)據(jù)庫(kù)方式如圖 4示 : 圖 4接數(shù)據(jù)庫(kù)方式 在 ,連接通過(guò) 口實(shí)現(xiàn)。連接是通過(guò)調(diào)用驅(qū)動(dòng)程序的 接 )方法獲得的。創(chuàng)建一個(gè)連接后,可以調(diào)用它的方法獲得和設(shè)置連接選項(xiàng)、管理事務(wù)和創(chuàng)建 句 )對(duì)象。 礎(chǔ)模塊 在 每一次需要數(shù)據(jù)庫(kù)操作時(shí) 都要進(jìn)行一系列相同的操作 :設(shè)置驅(qū)動(dòng)程序,連接數(shù)據(jù)庫(kù),生成一條 句,對(duì)數(shù)據(jù)進(jìn)行處理,最后斷開(kāi)與數(shù)據(jù)庫(kù)的連接。將這些操作全部放到每一個(gè) 是非常繁瑣的,因此有必要把數(shù)據(jù)庫(kù)的連接和斷開(kāi)放到一個(gè)獨(dú)立的 ,在其它 需要對(duì)數(shù)據(jù)庫(kù)操作時(shí),可以利用面向?qū)ο笤O(shè)計(jì)方法的繼承機(jī)制,只要繼承這個(gè)基礎(chǔ)模塊,就可以直接調(diào)用這個(gè)基礎(chǔ)模塊提供的函數(shù)完成數(shù)據(jù)庫(kù)連接、斷開(kāi)操作、數(shù)據(jù)處理等,不用再寫(xiě)相應(yīng)的代碼,只要組織出不同的 句就可以了。從而提高了代碼的重用性。 由于每一 條 作語(yǔ)句都要使用 接數(shù)據(jù)庫(kù),當(dāng) 面或者要頻繁訪問(wèn)數(shù)據(jù)庫(kù)時(shí),必然頻繁的連接與斷開(kāi)數(shù)據(jù)庫(kù)。一般管理信息系統(tǒng)是面向很多用戶的,對(duì)系統(tǒng)頻繁的訪問(wèn)更是顯得很突出,連接數(shù)據(jù)庫(kù)不僅要開(kāi)銷(xiāo)一定的通信和內(nèi)存資源,還必須完成用戶驗(yàn)證、安全上下文配置等任務(wù), 19 因而往往成為最為耗時(shí)的操作。為了提高系統(tǒng)效率,本通用平臺(tái)采用了數(shù)據(jù)庫(kù)連接池。 所謂數(shù)據(jù)庫(kù)連接池就是一個(gè)存儲(chǔ)數(shù)據(jù)庫(kù)連接的容器,當(dāng)應(yīng)用程序需要連接數(shù)據(jù)庫(kù)時(shí),就直接從連接池中獲取一個(gè)連接,當(dāng)使用結(jié)束時(shí),再將連接歸還給連接池。 這樣一個(gè)數(shù)據(jù)庫(kù)連接可以被很多應(yīng)用程序的實(shí)例共享,無(wú)需每次與數(shù)據(jù)庫(kù)交互時(shí)都進(jìn)行數(shù)據(jù)庫(kù)的連接和斷開(kāi),可以大大提高訪問(wèn)數(shù)據(jù)庫(kù)的速度。 一個(gè)數(shù)據(jù)庫(kù)連接池應(yīng)具備以下功能 : 此時(shí)使用中的連接數(shù)小于最大連接數(shù),那么就創(chuàng)建新的連接提供給應(yīng)用程序 ; 本系統(tǒng)中連接的數(shù)據(jù)庫(kù)都是使用 動(dòng)器的,數(shù)據(jù)庫(kù)連接池是由 供的。 開(kāi)發(fā)人員提供了用來(lái)處理數(shù)據(jù)庫(kù)連接的動(dòng)程序,使每個(gè)數(shù)據(jù)庫(kù)客戶端共同分享一個(gè)或一個(gè)以上的數(shù)據(jù)庫(kù)連接,從而可以提高程序的執(zhí)行效率和減輕數(shù)據(jù)庫(kù)服務(wù)器的負(fù)擔(dān)。 數(shù)據(jù)庫(kù)連接池具有以下功能 : 或創(chuàng)建 )可用連接 ; 閉所有連接。 那么如何使用 數(shù)據(jù)庫(kù)連接池呢 ?首先要配置好 數(shù)據(jù)庫(kù) (這里是 據(jù)庫(kù) )的 配置。配置好數(shù)據(jù)庫(kù)連接池后,在就可以直接調(diào)用 供的一些接口函數(shù)獲取數(shù)據(jù)庫(kù)連接。從驅(qū)動(dòng)程序獲取一個(gè)池連接的步驟如下 : 驅(qū)動(dòng)程序?qū)嵗?: ; ( 20 法,提供需要連接的池名獲取一個(gè)連接。不需要提供用戶名、口令和數(shù)據(jù)庫(kù)名,因?yàn)檫@些細(xì)節(jié)由連接池在創(chuàng)建連接時(shí)處理。 可以在 象中傳送連接池名,也可以將它添加到 。這里選擇在一個(gè) 象里傳送,其代碼如下 : ; ; 使用完一個(gè)連接后,最好關(guān)閉它,以釋放不使用的數(shù)據(jù)庫(kù)資源。關(guān)閉連接的代碼同樣也不用考慮連接是如何獲取的。關(guān)閉一個(gè)連接的代碼如下 : ; e) 此方法傳給一個(gè)池連接, 驅(qū)動(dòng)程序不是物理關(guān)閉連接,而是使用使用 )來(lái)標(biāo)記連接,然后將它返回到可用連接池。 基礎(chǔ)模塊是一個(gè)數(shù)據(jù)庫(kù)連接、斷開(kāi)的類(lèi) :個(gè)類(lèi)將對(duì)數(shù)據(jù)庫(kù)的連接、數(shù)據(jù)處理、 它繼承了這個(gè)基礎(chǔ)模塊的問(wèn)數(shù)據(jù)庫(kù)的方法就可以按照以下步驟進(jìn)行 : ; /打開(kāi)數(shù)據(jù)庫(kù)連接 組織出相應(yīng)的 句 rs=句 ); /操作提交 ; /操作回退 ;/關(guān)閉連接 21 務(wù)定制模塊 要調(diào)用數(shù)據(jù)庫(kù)通用平臺(tái)進(jìn)行查詢、修改、增加、刪除等操作,必須給通用平臺(tái)提供操作所需要的參數(shù) :操作類(lèi)型 、表名、顯示字段、條件字段, .等。但這些參數(shù)怎么提供,提供怎樣的格式呢 ?為了解決這個(gè)問(wèn)題,我們?cè)跀?shù)據(jù)庫(kù)通用平臺(tái)中設(shè)計(jì)了一個(gè)服務(wù)定制模塊,服務(wù)定制模塊的主要功能就是完成各種功能的相關(guān)數(shù)據(jù) (參數(shù) )的定義,也就是元數(shù)據(jù)的定義過(guò)程,服務(wù)定制的實(shí)質(zhì)就是將相應(yīng)的元數(shù)據(jù)寫(xiě)入元數(shù)據(jù)庫(kù)的元數(shù)據(jù)表中。 需要定制的信息和功能有以下幾個(gè)部分 : 菜單定制是整個(gè)通用平臺(tái)的入口,也就是說(shuō)每一次調(diào)用通用平臺(tái)都是通過(guò)菜單界面進(jìn)行調(diào)用的。菜單定制就是定 義系統(tǒng)菜單所需要的參數(shù),通過(guò)服務(wù)定制模塊提供的定制界面逐項(xiàng)定義菜單的結(jié)構(gòu)。其實(shí)質(zhì)就是給用戶 (一般是開(kāi)發(fā)者或系統(tǒng)管理員 )供一個(gè)友好的界面,這個(gè)界面將元數(shù)據(jù)庫(kù)中的組織結(jié)構(gòu)元數(shù)據(jù)表中的主要字段列出來(lái),供用戶填寫(xiě),用戶填寫(xiě)完畢,再將這些信息存入組織結(jié)構(gòu)元數(shù)據(jù)表中,這樣相應(yīng)的菜單模塊就會(huì)調(diào)用這些參數(shù)數(shù)據(jù)進(jìn)行菜單顯示。 具體服務(wù)定制用于開(kāi)發(fā)人員或維護(hù)人員根據(jù)管理信息系統(tǒng)的實(shí)際業(yè)務(wù)需求,定制每一個(gè)相應(yīng)的服務(wù)。通過(guò)這個(gè)模塊將具體的數(shù)據(jù)處理與相應(yīng)的菜單進(jìn)行關(guān)聯(lián)。其設(shè)計(jì)思路同菜單定制部分相同,也是給用戶提供一個(gè)友好的界面,并將 用戶所填寫(xiě)的數(shù)據(jù)寫(xiě)入元數(shù)據(jù)庫(kù)表的服務(wù)元數(shù)據(jù)表中。 數(shù)據(jù)處理定制根據(jù)服務(wù)處理模塊所需要的信息,提供一個(gè)界面讓用戶進(jìn)行定制,在這個(gè)界面上用戶確定需要操作的數(shù)據(jù)庫(kù)表 (視圖 )、操作條件、對(duì)表中每一列的說(shuō)明、是否需要顯示、是否需要超級(jí)鏈接、鏈接的內(nèi)容、顯示的方式等。這部分是整個(gè)定制模塊的重點(diǎn),系統(tǒng)為所定義的操作分配一個(gè)唯一的查詢標(biāo)識(shí),相應(yīng)的定義數(shù)據(jù)將通過(guò)定制界面寫(xiě)入基表查詢?cè)獢?shù)據(jù)表和基表查詢列信息數(shù)據(jù)表中。比如在遠(yuǎn)程教育系統(tǒng)中,需要查看學(xué)生的選課情況,就可以這樣定制 :先建立一個(gè)視圖,這個(gè)視圖將學(xué)生選課情況所涉 及的所有字段 (這些字段一般分布在不同的表中 )集中在一起。然后在數(shù)據(jù)處理定制模塊中進(jìn)行定制,這個(gè)定制包括 22 視圖的名字、查詢條件 (可能是時(shí)間、班級(jí)等 )、視圖中的哪些字段需要在客戶端顯示出來(lái)、那些字段的值允許修改等等,這些數(shù)據(jù)定義好了,這個(gè)查詢定制就完成了。 這個(gè)定制模塊的思路理清了后,實(shí)現(xiàn)起來(lái)非常容易。無(wú)非就是往元數(shù)據(jù)庫(kù)表中增加數(shù)據(jù)。具體的實(shí)現(xiàn)過(guò)程就不多介紹了。 4. 4 服務(wù)處理模塊 元數(shù)據(jù)庫(kù)和定制模塊都是為服務(wù)處理模塊提供參數(shù)做準(zhǔn)備的。服務(wù)處理模塊是整個(gè)通用平臺(tái)的核心部分,也是整個(gè)通用平臺(tái)中最復(fù) 雜的一部分。從功能上來(lái)看,這個(gè)模塊主要包括以下七個(gè)部分 : 這幾個(gè)功能涵蓋了管理信息系統(tǒng)中的絕大部分的操作。拿遠(yuǎn)程教育系統(tǒng)中的查詢校外學(xué)習(xí)中心名單和學(xué)生成績(jī)這兩個(gè)事件來(lái)說(shuō),從業(yè)務(wù)角度來(lái)說(shuō),這是兩個(gè)毫不相干的業(yè)務(wù),但我們從實(shí)現(xiàn)的角度來(lái)看,這兩個(gè)事件都是進(jìn)行查詢操作,只是查詢的表名、條件和最后得到的字段內(nèi)容不同而己,所以這兩個(gè)操作都 可以調(diào)用數(shù)據(jù)庫(kù)通用平臺(tái)的查詢模塊來(lái)實(shí)現(xiàn)。 前面第三章已經(jīng)論述了整個(gè)信息系統(tǒng)的整體架構(gòu)是基于 構(gòu)的 B/S 結(jié)構(gòu),同時(shí)引入了目前比較先進(jìn)的 計(jì)模式,從設(shè)計(jì)實(shí)現(xiàn)的角度,我們可以將服務(wù)處理模塊分成三個(gè)部分 : 這種模塊分離的方式將數(shù)據(jù)處理與頁(yè)面顯示分開(kāi)實(shí)現(xiàn),這樣做的最大好處是 23 利于維護(hù),因?yàn)閷?shù)據(jù)處理和頁(yè)面顯示分開(kāi)后,無(wú)論要修改哪一部分,都不會(huì)引起其它部分的改變,這樣不但提高了效率,更減少了出錯(cuò)率。 在這個(gè)通用平臺(tái)中的菜單處理主要提供用戶界面的菜單顯示,接收用戶的訪問(wèn)請(qǐng)求,也就是說(shuō)獲得后臺(tái)數(shù)據(jù)處理和前端顯示部分所需要的參數(shù),并將這些參數(shù)傳遞給相應(yīng)的模塊。當(dāng)然在整個(gè)管理信息系統(tǒng)中的菜單模塊還要包括層次結(jié)構(gòu)、權(quán)限判斷等功能,但這部分不是數(shù)據(jù)庫(kù)通用平臺(tái)所涉及的范圍,所以在這里只論述與數(shù)據(jù)庫(kù)通用平臺(tái)相關(guān)的部分。在前面的元數(shù)據(jù)庫(kù)的設(shè)計(jì)中,我們看到在組織結(jié)構(gòu)元數(shù)據(jù)表中有一個(gè)字段 :模塊標(biāo)識(shí)碼,而在服務(wù)元數(shù)據(jù)表中有 :模塊標(biāo)識(shí)碼、模塊相對(duì)路徑、模塊文件名這三個(gè)主要字段,這些字段都與每一個(gè)菜單項(xiàng)一一對(duì)應(yīng)。菜單處理模塊就是把 這些數(shù)據(jù)作為入口參數(shù),來(lái)顯示所對(duì)應(yīng)的菜單及菜單所對(duì)應(yīng)的頁(yè)面。 這里要說(shuō)明的一點(diǎn)是,管理信息系統(tǒng)中的整個(gè)菜單項(xiàng)并不都是調(diào)用數(shù)據(jù)庫(kù)通用平臺(tái),總還會(huì)存在一些需要特殊處理的功能。所以在這兩個(gè)元數(shù)據(jù)表中還有一些數(shù)據(jù)不是為通用平臺(tái)服務(wù)的。那么怎么與之分開(kāi)呢 ?這個(gè)問(wèn)題是這樣處理的 :在調(diào)用服務(wù)定制模塊進(jìn)行定制的時(shí)候,做一些特殊約定 :在調(diào)用具體服務(wù)定制模塊進(jìn)行定制時(shí),針對(duì)模塊標(biāo)識(shí)碼字段的命名規(guī)則進(jìn)行區(qū)分,如果是調(diào)用通用平臺(tái),那么命名規(guī)則就是 V 或 T+表名 +順序號(hào)”, V 代表的是視圖, T 代表的是數(shù)據(jù)庫(kù)基表,當(dāng)針對(duì)某一個(gè)表或視圖有 多個(gè)查詢時(shí),就用順序號(hào)來(lái)區(qū)分,從 A 開(kāi)始依次向后排列。如 針對(duì)視圖 義的一個(gè)查詢標(biāo)識(shí)。這樣在菜單處理部分中,就會(huì)根據(jù)這些區(qū)別分別調(diào)用不同的頁(yè)面進(jìn)行處理。 后臺(tái)數(shù)據(jù)處理用于與數(shù)據(jù)庫(kù)交互,得到所需要的數(shù)據(jù)。這部分用的開(kāi)發(fā)環(huán)境是 ,將這部分封裝成一個(gè)獨(dú)立的類(lèi) 個(gè)類(lèi)與元數(shù)據(jù)庫(kù)表進(jìn)行數(shù)據(jù)交互,其結(jié)構(gòu)如圖 4示 .。 的每一個(gè)標(biāo)識(shí) (z 1針對(duì)一個(gè)功能操作進(jìn)行相應(yīng)的數(shù)據(jù)處理 :表查詢模塊, 表瀏 覽模塊等。 24 圖 4結(jié)構(gòu) 前端顯示部分主要是用于頁(yè)面顯示,對(duì)數(shù)據(jù)不做任何處理,只獲取由 獲得 得的數(shù)據(jù),并將獲得的數(shù)據(jù)按照定制的要求顯示給客戶端。顯示處理包括多記錄結(jié)果顯示處理、批量記錄數(shù)據(jù)更新處理、單記錄詳細(xì)顯示處理、單記錄數(shù)據(jù)更新處理這四大類(lèi)通用處理服務(wù)。查詢服務(wù)直接調(diào)用顯示處理模塊就可以了,這也是服務(wù)處理第一步要執(zhí)行的,因?yàn)槿绻M(jìn)行更新,刪除或者增加,必須要先把一些相關(guān)的數(shù)據(jù)顯 示出來(lái),得到有關(guān)的元數(shù)據(jù)信息,才能對(duì)這些數(shù)據(jù)進(jìn)行進(jìn)一步的處理。這些元數(shù)據(jù)信息就是主要在元數(shù)據(jù)庫(kù)表中存儲(chǔ)的關(guān)于列顯示的信息,比如顯示的類(lèi)型,初值,寬度等等。 在這個(gè)通用平臺(tái)的研究與開(kāi)發(fā)的過(guò)程中,我參與了整個(gè)系統(tǒng)架構(gòu)過(guò)程。主要工作除了上面介紹的外,在服務(wù)處理模塊中還實(shí)現(xiàn)了三類(lèi)支持不同操作類(lèi)型的模塊,下面分別詳細(xì)介紹其設(shè)計(jì)過(guò)程。 4. 詢模塊的設(shè)計(jì)與實(shí)現(xiàn) 我們先看一個(gè)查詢語(yǔ)句的形式 : 段 1,字段 2. 1 件 1 件 2. 在定制查詢的時(shí) 候,字段、表名都可以是固定的,也就是說(shuō)每一次查詢這些字段都是不變的。但是在條件中,每一次查詢可能會(huì)有所不同。比如查詢兩個(gè)學(xué)生的選課情況,都是查詢的表是相同的,要得到的字段也是相同的,但查詢的條 25 件中,學(xué)生學(xué)號(hào)這一條肯定不同。這就要求我們?cè)趯?shí)現(xiàn)查詢模塊的時(shí)候,除了從元數(shù)據(jù)庫(kù)表中提取定制的參數(shù)外,還要提供一個(gè)用戶輸入查詢條件的界面,這個(gè)界面接受每一個(gè)具體查詢的參數(shù)。 從設(shè)計(jì)上看,這個(gè)界面是根據(jù)菜單選擇傳入的唯一的查詢標(biāo)識(shí)找出基表查詢?cè)獢?shù)據(jù)表和基表查詢列信息數(shù)據(jù)表中對(duì)應(yīng)的的參數(shù),這些參數(shù)的類(lèi)型在元數(shù)據(jù)庫(kù)設(shè)計(jì) 一章己經(jīng)介紹了,這里要介紹的是針對(duì)這種元數(shù)據(jù)庫(kù)設(shè)計(jì),如

溫馨提示

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

評(píng)論

0/150

提交評(píng)論