


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
XQuery技術(shù)在中醫(yī)經(jīng)絡(luò)學(xué)中的應(yīng)用
摘要:討論了中醫(yī)經(jīng)絡(luò)學(xué)內(nèi)在的網(wǎng)絡(luò)結(jié)構(gòu)模型,提出一種通過層次模型和關(guān)系模型混合存儲(chǔ)經(jīng)絡(luò)和穴位的方法,在DB2數(shù)據(jù)庫中采用pureXML數(shù)據(jù)格式實(shí)現(xiàn)存儲(chǔ),并利用XQuery技術(shù)對(duì)人體經(jīng)絡(luò)數(shù)據(jù)在數(shù)據(jù)庫中進(jìn)行增、刪、改、查,實(shí)現(xiàn)了人體經(jīng)絡(luò)學(xué)習(xí)系統(tǒng)。
關(guān)鍵詞:人體經(jīng)絡(luò);數(shù)據(jù)庫;pureXML;XQuery
1人體經(jīng)絡(luò)學(xué)的現(xiàn)狀
經(jīng)絡(luò)學(xué)是我國傳統(tǒng)中醫(yī)學(xué)的一個(gè)重要分支,是體會(huì)中醫(yī)的實(shí)質(zhì)、快速進(jìn)入中醫(yī)殿堂的捷徑。經(jīng)絡(luò)由經(jīng)和絡(luò)組成,經(jīng)是干線,絡(luò)是分支,人體有12條主干線,又稱為“十二正經(jīng)”,再加上奇經(jīng)八脈,共有三百六十多個(gè)穴位,此外還有無數(shù)的脈絡(luò),經(jīng)絡(luò)縱橫交錯(cuò)。這些經(jīng)絡(luò)通往五臟六腑,內(nèi)臟有任何問題都會(huì)在經(jīng)絡(luò)相關(guān)的穴位上有所反映。有效地掌握和運(yùn)用經(jīng)絡(luò)學(xué)知識(shí)能夠增強(qiáng)人們的體質(zhì),抵御疾病的侵襲。
目前的人體經(jīng)絡(luò)學(xué)是我國幾千年傳統(tǒng)醫(yī)學(xué)的積累,是無數(shù)醫(yī)學(xué)家智慧的結(jié)晶。雖然其具有一定的科學(xué)理論依據(jù),但是大部分內(nèi)容還是幾千年經(jīng)驗(yàn)的積累,對(duì)于大多數(shù)人,甚至是中醫(yī)學(xué)院的學(xué)生來說,想熟練掌握經(jīng)絡(luò)學(xué)的知識(shí)都是非常困難的一件事情。
當(dāng)電子計(jì)算機(jī)出現(xiàn)之后,其在醫(yī)學(xué)領(lǐng)域得到了廣泛的應(yīng)用。將計(jì)算機(jī)技術(shù)應(yīng)用于經(jīng)絡(luò)學(xué),尤其是制作出一套人體經(jīng)絡(luò)學(xué)學(xué)習(xí)系統(tǒng)和查詢系統(tǒng)是一個(gè)非常有現(xiàn)實(shí)意義的工作,有利于弘揚(yáng)祖國的傳統(tǒng)文化。但經(jīng)絡(luò)本身是一個(gè)極其復(fù)雜的系統(tǒng),與陰陽五行、四季更迭有密切的關(guān)系,不同的經(jīng)絡(luò)、不同的穴位能夠治療不同的疾病,同時(shí),與中西醫(yī)的其他分支也有緊密的聯(lián)系。用計(jì)算機(jī)來存儲(chǔ)各個(gè)經(jīng)絡(luò)、各個(gè)穴位的結(jié)構(gòu)會(huì)有很多不同之處,而且不同的用戶可能根據(jù)自己的經(jīng)驗(yàn)向系統(tǒng)中加入自己的經(jīng)驗(yàn),其內(nèi)容也會(huì)經(jīng)常發(fā)生變化。而目前主流的數(shù)據(jù)庫管理系統(tǒng)都是關(guān)系模型的,以二維表為基本的存儲(chǔ)結(jié)構(gòu),這種結(jié)構(gòu)要求存儲(chǔ)結(jié)構(gòu)保持相對(duì)穩(wěn)定、一致,并不適合用于存儲(chǔ)經(jīng)絡(luò)和穴位。
2pureXML數(shù)據(jù)格式的優(yōu)勢
pureXML技術(shù)的出現(xiàn)為經(jīng)絡(luò)、穴位的描述提供了有效的手段。pureXML是具有良好格式的XML數(shù)據(jù),其具有層次化的結(jié)構(gòu),支持DTD和XMLSchema,非常適合存儲(chǔ)異構(gòu)的數(shù)據(jù)。研發(fā)人體經(jīng)絡(luò)學(xué)習(xí)系統(tǒng)采用XML數(shù)據(jù)格式作為后臺(tái)的數(shù)據(jù)存儲(chǔ)方式比關(guān)系數(shù)據(jù)庫更加有優(yōu)勢。
目前XML的存儲(chǔ)方式主要有以下幾種:
將XML文檔分解成關(guān)系數(shù)據(jù)庫中的一系列表,在需要的時(shí)候再把相關(guān)字段抽取出來組合成XML文檔。這種方式適用于XML內(nèi)容非常規(guī)范,并且業(yè)務(wù)需求變化不大的系統(tǒng);
以文本方式保存在文件系統(tǒng)中,這種方式需要使用DOM或者SAX方式對(duì)XML進(jìn)行解析,效率不高,而且由于需要程序員自行維護(hù)文件系統(tǒng),增加了編程的難度,系統(tǒng)也不夠通用;
把一個(gè)XML文件作為一個(gè)大文本存儲(chǔ)在關(guān)系數(shù)據(jù)庫的一個(gè)字段中,很多數(shù)據(jù)庫管理系統(tǒng)都支持存儲(chǔ)最大達(dá)到2G的大文本,但是采用這種方式喪失了XML文檔固有的層次特性,無法對(duì)其內(nèi)部進(jìn)行分析檢索,如果分析其內(nèi)部結(jié)構(gòu),又與第二種方式相似,造成效率低下,通用性降低;
把XML文檔存儲(chǔ)在支持XML解析和檢索的數(shù)據(jù)庫中,通過XQuery這種針對(duì)XML文檔的專用語言,來檢索XML文檔。這種方式可以保留XML文檔原有的層次結(jié)構(gòu),而且可以高效地定位到XML文檔中特定的節(jié)點(diǎn),是最具有潛力的XML存儲(chǔ)方式。
目前IBM、Oracle、微軟等數(shù)據(jù)庫主要研發(fā)廠商都在自己的數(shù)據(jù)庫管理系統(tǒng)最新版本中增加了XML特性,其中IBM的DB2V9及后續(xù)版本是IBM最新推出的“混合型”數(shù)據(jù)庫管理系統(tǒng),除了支持傳統(tǒng)的關(guān)系數(shù)據(jù),還支持pureXML這種層次化的數(shù)據(jù),用戶可以在一個(gè)表中混合存儲(chǔ)關(guān)系數(shù)據(jù)和pureXML數(shù)據(jù),還可以使用SQL和XQuery語言自由地查詢和處理這兩種數(shù)據(jù),是目前對(duì)pureXML數(shù)據(jù)支持程度最高、與標(biāo)準(zhǔn)化組織制訂的標(biāo)準(zhǔn)最為接近的數(shù)據(jù)庫管理系統(tǒng)。
3用關(guān)系、層次混合模型存儲(chǔ)經(jīng)絡(luò)和穴位
人體中12條正經(jīng)、奇經(jīng)八脈、360多個(gè)穴位本身的名稱、位置等性質(zhì)已經(jīng)固定,適合使用關(guān)系模型進(jìn)行存儲(chǔ),而各個(gè)穴位獨(dú)特的屬性、點(diǎn)按的手法、適合的病癥等信息存在很大差異,而且存儲(chǔ)結(jié)構(gòu)本身也經(jīng)常發(fā)生變化,適合采用XML格式的層次模型進(jìn)行存儲(chǔ)。
根據(jù)人體經(jīng)絡(luò)學(xué)習(xí)系統(tǒng)的需求,設(shè)計(jì)關(guān)系模型如下:
表1中所有字段都是固定的,適合于采用關(guān)系模型進(jìn)行存儲(chǔ)。
表2中的最后一個(gè)字段cure,保存能夠治療的疾病以及治療的方法,其內(nèi)容隨著穴位的改變會(huì)有很大不同,不適合采用固定結(jié)構(gòu)的字段存儲(chǔ),所以采用XML結(jié)構(gòu)。
此外還包括藥品表、時(shí)令表、治療手法表等其他若干張表格,用于與經(jīng)絡(luò)表和穴位表相關(guān)聯(lián),因?yàn)橹嗅t(yī)各個(gè)分支是相輔相成的,不能完全割裂開來。限于篇幅,此處省略其他表格的結(jié)構(gòu)定義。
4使用XQuery操縱pureXML數(shù)據(jù)
首先給出pureXML中幾個(gè)基本定義。
定義一:標(biāo)簽。用戶自定義的、用一對(duì)尖括號(hào)括起來的內(nèi)容,稱為標(biāo)簽,在pureXML中,標(biāo)簽是成對(duì)出現(xiàn)的,結(jié)尾標(biāo)簽與起始標(biāo)簽同名,但在名字前面加上斜線(/)。
定義二:元素。在pureXML文檔中,一對(duì)首尾標(biāo)簽所包含的完整部分(包括標(biāo)簽本身)作為一個(gè)元素。
定義三:屬性。在pureXML文檔中,每個(gè)元素都可以擁有自己的若干屬性,屬性由“屬性名=屬性值”構(gòu)成,屬性寫在元素名稱所在的標(biāo)簽中,屬性與元素名稱之間、屬性與屬性之間使用空格進(jìn)行分隔。
定義四:文本。元素的一對(duì)首尾標(biāo)簽之間所包含的內(nèi)容稱為文本(不包括標(biāo)簽)。如果文本沒有內(nèi)容,則首尾標(biāo)簽可以簡寫為一個(gè)標(biāo)簽,在標(biāo)簽名后面加上一條斜線(/)。
下面是穴位表points中cure字段的一個(gè)例子:
<穴位id="101">
<名稱>筑賓穴名稱>
<功效>補(bǔ)腎功效>
<含義>“筑”為建筑房屋之意,與“杵”相通,是生活中搗蒜、搗米的工具。“賓”通“臏”,指膝蓋骨。“筑賓”指在膝蓋骨旁邊再搭一個(gè)柱子,起強(qiáng)身健骨的作用。含義>
<主治>
<強(qiáng)健>膝蓋發(fā)軟強(qiáng)健>
<神智>抑郁癥,癲癇,恐懼神智>
<解毒>解煙毒、裝修氣味毒、長期服藥體內(nèi)淤毒,化痰,活血,祛濕解毒>
<尿酸>痛風(fēng),結(jié)石尿酸>
主治>
<手法>按揉手法>
<相關(guān)>太沖穴相關(guān)>
穴位>
在這個(gè)例子中,所有用尖括號(hào)括起來的都是標(biāo)簽,標(biāo)簽都是成對(duì)出現(xiàn)的。每一對(duì)標(biāo)簽所包含的內(nèi)容就是一個(gè)元素,如“<功效>補(bǔ)腎功效>”,一個(gè)元素中可能包含若干子元素。元素的屬性在元素名稱后面,如<筑賓穴id="101">當(dāng)中的id="101",表示屬性id的值為101。元素除去標(biāo)簽之外的部分為文本,如“<功效>補(bǔ)腎功效>”中的“補(bǔ)腎”。
XQuery相對(duì)于XML,就類似SQL相對(duì)于二維關(guān)系表,使用XQuery可以實(shí)現(xiàn)對(duì)XML數(shù)據(jù)中節(jié)點(diǎn)、屬性以及文本的增加、刪除、修改和查詢。下面以人體經(jīng)絡(luò)學(xué)習(xí)系統(tǒng)中幾個(gè)實(shí)際例子說明XQuery的主要用法:
4.1XML數(shù)據(jù)的查詢
如果要查詢哪個(gè)穴位可以治療結(jié)石,可以采用如下XQuery語句:
SELECTname,position,
XMLCAST(XMLQUERY('$i/穴位/主治'PASSINGcureas"i")ASCHAR(50))AScure,
XMLCAST(XMLQUERY('$i/穴位/手法'PASSINGcureas"i")ASCHAR(50))ASmethodFROMpoints
WHEREXMLEXISTS('$i/穴位/主治[contains(尿酸,"結(jié)石")]'PASSINGcureAS"i");
其中,XMLQUERY函數(shù)是能夠使用路徑表達(dá)式或FLWOR表達(dá)式來進(jìn)行XQuery查詢并返回結(jié)果的函數(shù),而XMLCAST是將XQuery查詢結(jié)果轉(zhuǎn)換為普通字符數(shù)據(jù)類型的函數(shù),XMLEXISTS函數(shù)能夠判斷一個(gè)XML文檔內(nèi)部是否滿足一定的查詢條件。
4.2XML數(shù)據(jù)的修改
假設(shè)要把筑賓穴的尿酸項(xiàng)目改為“<尿酸>痛風(fēng),腎結(jié)石尿酸>”,可以采用類似如下的XQuery語句:
UPDATEpoints
SETcure=XMLQUERY(
'TRANSFORMCOPY$new:=$iMODIFYDOREPLACEVALUEOF
$new/穴位/主治/尿酸WITH"痛風(fēng),腎結(jié)石"RETURN$new'PASSINGcureas"i")
WHEREname='筑賓穴'
4.3向XML文檔中插入一個(gè)節(jié)點(diǎn)
假設(shè)要在“手法”元素后面插入一個(gè)新的元素“<適用人群>所有人適用人群>”,可以采用類似如下的XQuery語句:
UPDATEpoints
SETcure=XMLQUERY(
'COPY$new:=$iMODIFYDOINSERT<適用人群>所有人適用人群>
AFTER$new/穴位/手法
RETURN$new'PASSINGcureas"i")
WHEREname='筑賓穴'
4.4從XML文檔中刪除一個(gè)節(jié)點(diǎn)
假設(shè)要將“<強(qiáng)健>膝蓋發(fā)軟強(qiáng)健>”這個(gè)節(jié)點(diǎn)刪除掉,可以采用類似如下的XQuery語句:
UPDATEpoints
SETcure=XMLQUERY(
'COPY$new:=$iMODIFYDO
DELETE$new/穴位/主治/強(qiáng)健
RETURN$new'PASSINGcureas"i")
WHEREname='筑賓穴'
5人體經(jīng)絡(luò)學(xué)習(xí)系統(tǒng)的難點(diǎn)與實(shí)現(xiàn)
人體經(jīng)絡(luò)學(xué)習(xí)系統(tǒng)最困難的部分在于對(duì)中醫(yī)的理解,只有對(duì)經(jīng)絡(luò)學(xué)以及與之相關(guān)的中醫(yī)、中藥、五行、時(shí)令等多方面內(nèi)容深入理解,才能夠建立起全面、高效的模型,并基于此編程實(shí)現(xiàn),解決這個(gè)困難最好的方法是與醫(yī)院或者中醫(yī)相關(guān)部門合作,并反復(fù)對(duì)項(xiàng)目的需求進(jìn)行討論。
其次,該系統(tǒng)前臺(tái)通過Java實(shí)現(xiàn),后臺(tái)數(shù)據(jù)庫采用DB29.0以上的版本,DB29.0以上的版本能夠較好地支持XQuery,但前臺(tái)的顯示需要提供足夠的靈活性和便捷性,使用戶操作起來既不能很繁瑣,又可以實(shí)現(xiàn)很多自己定義的內(nèi)容,從而體現(xiàn)出XML數(shù)據(jù)格式的優(yōu)勢。實(shí)現(xiàn)便捷性的思路是在頁面上大多數(shù)選項(xiàng)提供默認(rèn)值,使用戶直接點(diǎn)擊“下一步”按鈕即可,實(shí)現(xiàn)靈活性的思路是在頁面上提供用戶自定義鏈接或按鈕,允許用戶增加自己命名的選項(xiàng)并賦予相應(yīng)的值。
再次,要實(shí)現(xiàn)Java與pureXML的結(jié)合,即要在Java環(huán)境中使用pureXML,這可以通過選擇JavaXQueryAPI(簡稱XQJ)來實(shí)現(xiàn),該API可以從DataDirect下載免費(fèi)的試用版,按照說明文檔進(jìn)行安裝,然后把XQJJAR添加到類路徑中,接下來就可以編寫Java代碼運(yùn)行XQuery了。每個(gè)程序包含兩個(gè)部分:建立/訪問XQuery數(shù)據(jù)源;執(zhí)行XQuery。核心代碼如下:
packageibm.dw.xqj;
importcom.ddtek.xquery3.XQConnection;
importcom.ddtek.xquery3.XQException;
importcom.ddtek.xquery3.xqj.DDXQDataSource;
privateStringfilename;
privateDDXQDataSourcedataSource;
privateXQConnectionconn;
dataSource=newDDXQDataSource();
conn=dataSource.getConnection();
首先建立一個(gè)新的數(shù)據(jù)源,該對(duì)象的類型是com.ddtek.xquery3.xqj.DDXQDataSource。然后使用數(shù)據(jù)源得到新的com.ddtek.xquery3.XQConnection對(duì)象。該對(duì)象可以接受查詢字符串并執(zhí)行。運(yùn)行查詢需要經(jīng)過以下步驟:
(1)從XQConnection創(chuàng)建一個(gè)XQExpression對(duì)象。
(2)使用XQExpression對(duì)象的bindXXX()方法把變量綁定到查詢。
(3)執(zhí)行查詢,結(jié)果保存到XQSequence對(duì)象中。
以下是查詢代碼:
StringxmlFilename=args[0];
XQueryTestertester=newXQueryTester(xmlFilename);
tester.init();
finalStringsep=System.getProperty("line.separator");
StringqueryString=包含XQuery的字符串;
XQExpressionexpression=conn.createExpression();
expression.bindString(newQName("docName"),filename,conn.createAtomicType
(XQItemType.XQBASETYPE_STRING));
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融科技在財(cái)富管理領(lǐng)域的創(chuàng)新應(yīng)用研究
- 2025年在線教育平臺(tái)課程進(jìn)度跟蹤與用戶滿意度評(píng)價(jià)報(bào)告
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)入侵檢測系統(tǒng)2025年可視化安全監(jiān)控優(yōu)化報(bào)告001
- 深度解讀2025年不良資產(chǎn)處置市場格局與創(chuàng)新模式發(fā)展報(bào)告
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化與醫(yī)療信息化人才培養(yǎng)策略報(bào)告
- 2025屆廣東省廣州市南沙區(qū)八年級(jí)英語第二學(xué)期期中達(dá)標(biāo)測試試題含答案
- 咨詢工程師2017課件
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的臨床試驗(yàn)監(jiān)測與數(shù)據(jù)收集報(bào)告
- 周長課件介紹
- 麻醉護(hù)理制度培訓(xùn)課件
- DeepSeek零基礎(chǔ)到精通手冊(cè)(保姆級(jí)教程)
- 2025年度工業(yè)園區(qū)物業(yè)管理及服務(wù)收費(fèi)標(biāo)準(zhǔn)及細(xì)則
- 2024-2030年中國橋梁管理與養(yǎng)護(hù)市場調(diào)查研究及發(fā)展趨勢分析報(bào)告
- 山東省菏澤市2023-2024學(xué)年高一下學(xué)期7月期末考試 政治 含解析
- 《施工現(xiàn)場安全用電》課件
- 新公路波形護(hù)欄打樁機(jī)安全操作規(guī)程
- 小學(xué)四年級(jí)下冊(cè)四則混合運(yùn)算及簡便運(yùn)算
- 國家開放大學(xué)本科《商務(wù)英語4》一平臺(tái)機(jī)考真題及答案(第四套)
- 山東第一醫(yī)科大學(xué)英語4(本)期末復(fù)習(xí)題
- 2025三方借款中介合同范本
- 2024-2025成都各區(qū)初二年級(jí)下冊(cè)期末數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論