摘要:語義對象模型是把語義看作基本出發(fā)點,用來文檔化用戶需求并建立數(shù)據(jù)模型的。利用語義對象模型來獲得XML Schema,或?qū)⒄Z義對象模型作為關(guān)系數(shù)據(jù)模型向XML Schema轉(zhuǎn)換的中介,有利于盡可能多地保留數(shù)據(jù)的語義信息。文章提出了利用語義對象的XML Schema數(shù)據(jù)建模的一些基本規(guī)則和方法。
關(guān)鍵詞:語義對象模型;XML Schema ;建模
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)35-2292-02
Modeling XML Schema From Semantic Object
LIAO Ming-chao1,YE Qing-hong2
(1.Department of Computer and Information Engineering,Wuhan Polytechnic University,Wuhan 430023;2.Zhongnan University of Economics and Law,Wuhan 430074,China)
Abstract: The Semantic-Object model is a method of representing user's requirements with document starting at semantic.It should maintain more semantic information as soon as possible, modeling XML Schema from or translating relational schema to XML Schema using Semantic-Object.This paper presented the basic rules and method of modeling XML schema from semantic object.
Key word: semantic object model;XML schema;modeling
傳統(tǒng)關(guān)系數(shù)據(jù)庫設(shè)計中概念模型的設(shè)計是整個設(shè)計過程中一個相當(dāng)重要的步驟,設(shè)計者通過對應(yīng)用系統(tǒng)的領(lǐng)域和數(shù)據(jù)對象的了解與分析,經(jīng)過概念建模得到ER或語義對象概念模型,然后再經(jīng)過模型轉(zhuǎn)換而得到關(guān)系模型。該方法和過程也可應(yīng)用于基于XML數(shù)據(jù)模型的設(shè)計,參照ER模型轉(zhuǎn)化為DTD的方法[1,4],文章提出了從語義對象到XML Schema數(shù)據(jù)建模的一些基本方法。
1 XML與XML Schema
用于描述 XML 數(shù)據(jù)結(jié)構(gòu)和內(nèi)容的文檔定義方式主要有 DTD 和 XML Schema,在實際應(yīng)用中,XML Schema因具有強(qiáng)大的復(fù)雜數(shù)據(jù)類型定義和數(shù)據(jù)結(jié)構(gòu)描述功能而被廣大信息系統(tǒng)的設(shè)計者和開發(fā)者接受并加以采用。DTD正迅速被XML Schema所取代[2]。
2 語義對象模型
語義對象模型是用來文檔化用戶需求并建立數(shù)據(jù)模型的。它把語義看作基本出發(fā)點,數(shù)據(jù)模型中的語義對象是用戶認(rèn)為重要的事物的基本結(jié)構(gòu)的映射,通過確定在用戶需求中稱之為語義對象的可標(biāo)識事物,然后確定這些事物的屬性來表達(dá)語義對象的特征及其之間的聯(lián)系來建立數(shù)據(jù)模型。
相比于E-R模型,語義對象模型具有更接近用戶和保存有更多語義信息的特點[3-4],而易于為用戶所接受。利用語義對象模型來獲取XML Schema,或?qū)⒄Z義對象模型作為關(guān)系數(shù)據(jù)模型向XML Schema轉(zhuǎn)換的中介,有利于盡可能多地保留數(shù)據(jù)語義信息。
3 語義對象模型到XML Schema的數(shù)據(jù)建模
XML Schema有類似于數(shù)據(jù)庫模式的特點,因此,可根據(jù)語義對象模型七種類型對象的特點[3-4],可以很方便地實現(xiàn)語義對象模型到XML Schema的數(shù)據(jù)建模。
3.1 簡單對象
簡單對象是指只包含單值非對象屬性的語義對象。在XML Schema的建模過程時,對簡單對象的處理比較簡單,只將簡單對象轉(zhuǎn)化為同名的XML元素簡單對象中的各屬性也將作為該元素的子元素或?qū)傩裕黄鋽?shù)據(jù)類型根據(jù)語義對象模型中的定義;如果簡單對象在XML Schema建模時作為其他元素的子元素,其標(biāo)識符屬性將使用“key”鍵約束或“unique”惟一鍵約束表明屬性的碼屬性。
3.2組合對象
組合對象是指包含一個或多個多值非對象屬性的語義對象。在XML Schema的建模時,可將組合對象中的語義對象S設(shè)計為一個同名XML元素S,其中的多值簡單屬性及屬性組將作為元素S的子元素,各子元素中具有唯一性的屬性或元素在元素S中利用“key”鍵約束或“unique”惟一鍵約束標(biāo)明;多值簡單屬性內(nèi)的其他屬性或元素的設(shè)計可參考簡單對象的建模方法轉(zhuǎn)換成嵌套子元素或?qū)傩浴?/p>
3.3 復(fù)合對象
復(fù)合對象是指至少包含一個對象屬性的對象,兩個對象之間的關(guān)系包含1對1、1對多和多對多三種類型。復(fù)合對象C1和C2互相飽含,二者是1:1關(guān)系,在XML Schema時是將元素C2作為元素C1的子元素,并設(shè)置子元素C2的“minOccurs”和“maxOccurs”均為“1”,對象C2中的其他屬性將作為子元素C2的嵌套子元素或?qū)傩裕瑢ο驝1中的其他屬性可參考簡單對象和組合對象的轉(zhuǎn)換方法設(shè)計為元素C1的子元素或?qū)傩裕粡?fù)合對象C3和C4是1:n的關(guān)系,其中C3是1方,C4是多方,在XML Schema建模時,設(shè)計與對象同名的兩個元素,且C4是C3的子元素,注明子元素C4的“maxOccurs”值為“unbounded”; C5和C6是m:n關(guān)系的復(fù)合對象,在XML Schema建模是將兩個對象按去掉對方對象后的簡單對象或組合對象構(gòu)建元素,然后再構(gòu)建第三個元素C5_C6,C5_C6元素中包含兩個“ref”關(guān)鍵字的子元素。
3.4 混合對象
混合對象是指兩種類型對象的結(jié)合[4]。混合對象的XML Schema建模可以綜合使用復(fù)合對象和組合對象的建模方法來完成。有兩個對象S1和S2,根據(jù)混合對象Sl上的成對屬性的最大基數(shù)不同有四種情形,其XML Schema建模的策略也有所不同。
情形1,一個S2可以在多個不同的S1中出現(xiàn),但只能在每個S1的一個Gl中出現(xiàn)。XML Schema建模方法是將組屬性Gl提取出來看成是一個單獨的“對象”,這個對象分別與S1和S2構(gòu)成復(fù)合對象,將對象S1和對象S2及G1設(shè)為根節(jié)點的子元素,在子元素G1中除包含原對象中的各屬性轉(zhuǎn)化得到的子元素外,還設(shè)計聯(lián)系節(jié)點的子元素對元素S1和元素S2的引用。
情形2,一個R2可以在多個不同的Rl中出現(xiàn),且可以在每個Rl的多個不同的Gl中出現(xiàn)。XML Schema建模方法同樣是將組屬性Gl提取出來看成是一個單獨的“對象”,同S1和S2一樣設(shè)計為根節(jié)點的子元素,另外設(shè)計一個根節(jié)點的子元素S1_S2_G1,通過其聯(lián)系節(jié)點的子元素對三個字元素的引用。
情形3,一個S2只能在一個S1中出現(xiàn),且只能出現(xiàn)在該S1的一個Gl中。除了一個S2只能關(guān)聯(lián)一個S1的約束外,與情形1的情況相似,其XML Schema建模方法也與情形1的方法相似。
情形4,一個S2只能在一個S1中出現(xiàn),也可以在該S1的多個不同的Gl中。除了一個S2只能關(guān)聯(lián)一個S1的約束外,與情形2的情況相似,其XML Schema建模方法也與情形1的方法相似。
3.5 關(guān)聯(lián)對象
關(guān)聯(lián)對象是關(guān)聯(lián)兩個(或多個)對象并存儲特定于這種關(guān)系的數(shù)據(jù)對象。關(guān)聯(lián)對象的XML Schema建模可以為關(guān)聯(lián)對象分別建立元素,然后再設(shè)計一個與各關(guān)聯(lián)對象元素同層的元素R,元素R包含多個“ref”關(guān)鍵字的子元素分別引用各關(guān)聯(lián)對象元素。
3.6 父子類型
父子類型對象是將多個(子類型)對象的一些共同屬性抽象出來組成一個新的(父類型)對象,或稱子類型對象獲取或繼承它的父類型對象的全部屬性。在XML Schema時,可以將父類型對象設(shè)計為子類型對象的一個子元素。如果一個對象R被作為多個對象的父對象,則可以為對象構(gòu)建一個名為R_Type的頂層元素,在為子類型對象構(gòu)建元素時附加一個名為R、“type=\"R_Type\"”的子元素。
3.7 原型對象
原型對象是產(chǎn)生其它表示原型的版本、修訂本或版次的語義對象。這種對象類似于具有1:n關(guān)系的復(fù)合對象,因此,其XML Schema建模也可參照相關(guān)的規(guī)則執(zhí)行。
4 轉(zhuǎn)換實例
圖1顯示了利用語義對象模型創(chuàng)建的各語義對象。
按照上述語義對象模型到XML Schema數(shù)據(jù)建模的方法,以下是其中部分XML Schema建模結(jié)果。
……
…
5 結(jié)束語
語義對象模型是一種建模能力很強(qiáng),也是一種很接近用戶的數(shù)據(jù)模型,利用語義對象到XML Schema建模有利于盡可能多地保留數(shù)據(jù)的語義信息。該文按照七種語義對象的特點分別提出了其XML Schema建模方法,并將這種方法應(yīng)用于教學(xué)檢查建模過程中。如果這種建模方法同基于逆向工程的關(guān)系數(shù)據(jù)庫向語義對象模型的轉(zhuǎn)化結(jié)合起來,將有利于開辟一條數(shù)據(jù)信息整合的新途徑。
參考文獻(xiàn):
[1] Kleiner C, Udo W.Lipeck.Automatic Generation of XML DTDs from Conceptual Database Schemas[DB/OL].http://dbs.uni-leipzig.de/webdb/wien/015.pdf.
[2] 廖明潮,高洪波.教學(xué)檢查語義對象模型到數(shù)據(jù)庫設(shè)計的轉(zhuǎn)換[J].武漢食品工業(yè)學(xué)院學(xué)報,1999(3):65-71.
[3] 左偉明.即用即查XML數(shù)據(jù)標(biāo)記語言參考手冊[M].北京:人民郵電出版社,2007.
[4] 李思強(qiáng),等.語義對象及建模技術(shù)[J].計算機(jī)應(yīng)用研究.1999(5):40-41.