邢光林,魏文剛
(中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,武漢430074)
面對不同的客戶,就是面對不同的需求和不同的數(shù)據(jù).軟件必須能夠容忍并處理這些變化,才可能支持多種客戶數(shù)據(jù)結(jié)構(gòu),從而滿足多個(gè)客戶的多種數(shù)據(jù)結(jié)構(gòu)的需求.數(shù)據(jù)模型可實(shí)現(xiàn)對多種客戶數(shù)據(jù)的統(tǒng)一分類管理,使得原本針對每一種客戶數(shù)據(jù)的編程提升到針對一類數(shù)據(jù)編程,從而使編程的效率和接口的復(fù)用性得到提升.
數(shù)據(jù)模型是對客觀事物及其聯(lián)系的邏輯組織描述[1,2],由多種抽象數(shù)據(jù)結(jié)構(gòu)和通過抽象數(shù)據(jù)結(jié)構(gòu)訪問用戶數(shù)據(jù)的接口組成,如圖1所示.
基于數(shù)據(jù)模型編程,實(shí)質(zhì)上就是調(diào)用數(shù)據(jù)模型提供的接口取得用戶數(shù)據(jù)表以及用戶數(shù)據(jù)表字段[3,4].如圖2所示,從眾多用戶數(shù)據(jù)抽象出的通用數(shù)據(jù)結(jié)構(gòu)結(jié)合相關(guān)數(shù)據(jù)操縱接口,即得到能夠統(tǒng)一管理眾多數(shù)據(jù)的數(shù)據(jù)模型.
圖1數(shù)據(jù)模型 對多種數(shù)據(jù)結(jié)構(gòu)的抽象實(shí)現(xiàn)Fig.1 Data model abstract implementation for various kinds of data structure
在需要用同一套軟件滿足不同客戶需求的時(shí)候,接口的復(fù)用性顯得格外重要.對接口復(fù)用性要求最高的部分,是負(fù)責(zé)數(shù)據(jù)存取的接口.下面重點(diǎn)探討如何基于“數(shù)據(jù)模型”實(shí)現(xiàn)存取數(shù)據(jù)接口的流程.
圖2 基于數(shù)據(jù)模型編程原理Fig.2 Programming principle based on data model
在面對不同的客戶的不同數(shù)據(jù)庫時(shí),要使接口不變,接口中的SQL語句必須改變.也就是說,需要封裝一個(gè)單獨(dú)的子接口來專門負(fù)責(zé)得到SQL語句.或者,至少需要一套單獨(dú)的接口來取得不同數(shù)據(jù)庫中的數(shù)據(jù)表名和字段名,然后對這些數(shù)據(jù)表名和字段名進(jìn)行組裝,從而得到不同的SQL語句.存取數(shù)據(jù)接口的實(shí)現(xiàn)流程如圖3所示.
在地質(zhì)勘探行業(yè),專業(yè)人員需要對勘探得到的海量數(shù)據(jù)進(jìn)行管理和分析,以輔助研究地質(zhì)構(gòu)造、各種礦物勘探和預(yù)測地質(zhì)災(zāi)害等[5,6].電測深法[7,8]是地球物理勘探中電法勘探的一種,下面以此為例來探討基于數(shù)據(jù)模型的編程應(yīng)用.
先構(gòu)建數(shù)據(jù)模型,數(shù)據(jù)模型實(shí)例如表1所示.
圖3 存取數(shù)據(jù)接口的一種實(shí)現(xiàn)流程Fig.3 Flowchart of data access
表1 原始數(shù)據(jù)的數(shù)據(jù)模型Tab.1 Data model of meta data
用戶數(shù)據(jù)結(jié)構(gòu)實(shí)例如表2所示.
表2 電阻率測深原始數(shù)據(jù)表Tab.2 Meta data table of electrical sounding
數(shù)據(jù)模型和用戶數(shù)據(jù)結(jié)構(gòu)綁定關(guān)系實(shí)例如表3所示.
表3 電阻率測深專業(yè)數(shù)據(jù)模型和用戶表綁定關(guān)系Tab.3 Binding relation of electrical sounding data model and user table
相關(guān)功能接口實(shí)現(xiàn)之后,按照圖4所示的操作說明將數(shù)據(jù)模型和用戶數(shù)據(jù)綁定,然后調(diào)用功能接口,便可以實(shí)現(xiàn)對不同用戶的數(shù)據(jù)的存取等各種操作.
圖4 數(shù)據(jù)模型和用戶數(shù)據(jù)的綁定操作說明Fig.4 Binding operation of data model and user data
從圖4中可以很清楚地看到數(shù)據(jù)模型表與用戶表的對應(yīng)關(guān)系以及數(shù)據(jù)模型字段和用戶表字段的對應(yīng)關(guān)系.利用這種對應(yīng)關(guān)系,結(jié)合不同的專業(yè),便可實(shí)現(xiàn)對用戶數(shù)據(jù)的訪問.針對不同的用戶,將系統(tǒng)當(dāng)前使用的數(shù)據(jù)庫更換為該用戶的數(shù)據(jù)庫之后,只需為該用戶配置相似的數(shù)據(jù)模型并將數(shù)據(jù)模型的相關(guān)信息存放在該用戶的數(shù)據(jù)庫中供系統(tǒng)使用即可.
為了有效地管理眾多軟件客戶的各種數(shù)據(jù),引入了數(shù)據(jù)模型的概念,對數(shù)據(jù)模型的原理和實(shí)現(xiàn)方法作了簡介,并給出了具體的基于數(shù)據(jù)模型的編程應(yīng)用.基于數(shù)據(jù)模型開發(fā)的軟件對所有用戶是通用的,針對不同的用戶,僅需為其單獨(dú)配置一套數(shù)據(jù)模型,而不需要為每一個(gè)客戶單獨(dú)提供一套軟件,這在一定程度上降低了軟件開發(fā)的成本.
[1]Peuquct D J,Duan N.An event-based spatial temporal data model(ESTDM)fortemporalanalysis of geographical data[J].International Journal of Geographical Information Systems,1995,9(1):7-24.
[2]Worboys M F.A unified model for spatial and temporal information[J].The Computer Journal,2009,33(4):400-402.
[3]吳慧欣.三維GIS空間數(shù)據(jù)模型及可視化技術(shù)研究[D].蘭州:西北工業(yè)大學(xué)博士學(xué)位論文,2007.
[4]張 林.基礎(chǔ)地質(zhì)數(shù)據(jù)管理與三維地質(zhì)模型構(gòu)建方法研究[D].西安:西安科技大學(xué),2007.
[5]底青云,王光杰,安志國,等.南水北調(diào)西線千米深長隧洞圍巖構(gòu)造地球物理勘探[J].地球物理學(xué)報(bào),2006,49(6):1836-1842.
[6]滕吉文.石油地球物理勘探的發(fā)展空間與自主創(chuàng)新[J].石油物探,2007,46(3):214-225.
[7]李大虎,何 強(qiáng),邵昌盛,等.綜合地球物理勘探在青川縣城區(qū)活動斷層探測中的應(yīng)用[J].成都理工大學(xué)學(xué)報(bào):自然科學(xué)版,2010,37(6):666-672.
[8]楊宏章.電法在非洲找水中的應(yīng)用[J].物探與化探,2009,33(6):660-662.