亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        關系模式向DTD轉化方法研究

        2021-12-12 10:09:55劉煒
        科技信息·學術版 2021年32期

        劉煒

        摘要:XML已經(jīng)成為Web上數(shù)據(jù)交換的標準,然而絕大多數(shù)的商業(yè)數(shù)據(jù)仍然存儲在關系數(shù)據(jù)庫系統(tǒng)中。因此需要將關系數(shù)據(jù)發(fā)布XML文檔的形式。發(fā)布過程中一個最關鍵的就是進行模式轉換。提出了一種算法來實現(xiàn)關系模式向DTD的轉化。最終通過SQL查詢將關系數(shù)據(jù)發(fā)布XML文檔的形式。最后通過一組關系表對該算法進行了具體的實現(xiàn)。

        關鍵詞:數(shù)據(jù)交換;關系模式;模式轉換;發(fā)布

        1引言

        隨著因特網(wǎng)的不斷發(fā)展,XML[1]作為Web上數(shù)據(jù)發(fā)布和交換的標準迅速地出現(xiàn)并且流行起來。XML具有層次性和自描述性,自然成為數(shù)據(jù)傳輸?shù)氖走x。然而,另一方面,絕大多數(shù)的商業(yè)數(shù)據(jù)仍然存儲在關系數(shù)據(jù)庫系統(tǒng)(DBMS)中[2]。DBMS的可靠性和可擴展性使得它將來仍然會扮演著數(shù)據(jù)存儲的角色。因此,迫切需要在關系數(shù)據(jù)和XML文檔之間進行相互的轉換,如圖1所示。

        在XML的發(fā)布過程中面臨著很多問題[3],首先,數(shù)據(jù)庫中的關系表是平面的,而XML文檔則是樹形的標記結構。其次,在關系表中很多完整性約束在轉換過程中也不能被丟失[4]-[6]。整個映射過程可以分成兩部分,第一部分稱為模式映射,也叫結構映射。是將關系模式轉化成XML的模式。XML的模式反映了XML文檔中標簽的結構。而標簽中的內容要由數(shù)據(jù)映射來解決。

        本文提出了一種良好的算法將關系模式轉化成DTD。算法將現(xiàn)實世界中的關系分成了三類,運用上面的算法對這三類關系模型分別進行了轉化。利用這個算法可以以DTD為中介,并且實現(xiàn)了關系數(shù)據(jù)向XML數(shù)據(jù)唯一性的轉化。最后通過一組關系表對算法進行了具體實現(xiàn)。

        2關系模式分類的相關定義

        下面給出相關的定義,并將關系模式分成三類。

        定義1:對于一個關系中的所有關系表,如果能夠存在一個關系表,它其中所有的屬性分別存在于其他的關系表中,那么我們稱這個關系表為根關系表。

        定義2:如果一個關系中存在一個關系表,它的一部分屬性分別存在于其他所有的關系表中,而另一部分屬性為自身獨有的屬性,那么我們稱這個關系表為擴展的根關系表。

        根關系表中的屬性都是連接屬性。而擴展的根關系表中除了連接屬性以外還有其他的屬性。在具有根關系表或擴展的根關系表的關系中,可以看出有一個“中心關系表”能夠連接所有其他的關系表。

        下面我們將關系模式分成三類:分別是星形關系、直線型關系和樹狀關系。

        定義3:對于一個關系中的若干關系表,如果其中有根關系表或擴展的根關系表,那么我們稱這些關系表為星形關系。如圖1所示

        星形關系的特點是以一個關系表為中心,其他的關系表都與這個關系表連接。

        定義4:對于一個關系中的若干關系表,如果表的數(shù)目大于或者等于4,而且不存在一個表為根關系表或擴展的根關系表,并且任何一個表只與不超過2個表相連接,那么我們成這樣的關系模式為直線型關系。如圖2所示

        說明,在判斷直線型關系的時候必須考慮數(shù)目,如果小于或等于3個的話,那么即使符合上面的條件,也不是直線關系,而是星形關系。

        定義5:對于若干個關系表,如果找不到一個表是根關系表或擴展的根關系表,并且其中至少有一個表與三個或三個以上的表相連接,那么我們稱這個關系為樹狀關系。如圖3所示

        現(xiàn)實世界的關系類型中只有這三類關系模型,即使有看似復雜的關系模型,總能夠歸納為上面三種類型之一。因此我們對這三類關系模型分別進行轉化,就代表對整個關系模型進行了轉化。

        3關系數(shù)據(jù)庫模式向XML轉化方法

        下面我們分別就三類關系模式給出相應的轉化方法和具體的實現(xiàn),然后總結出一套普遍適用的關系模式向XML模式轉化的算法。

        3.1星形關系的轉化

        這種類型的轉化方法很簡單,從上面我們定義來看,凡是小于或等于3個表的關系都是星形關系,而4個表以上則必須根據(jù)定義進行判斷。

        3.1.1 轉化方法

        第一步:把根關系表或擴展的根關系表的名稱作為XML文檔的根元素。

        第二步:把根關系表中的屬性作為第1層子節(jié)點。寫出DTD為<!ELEMENT 根節(jié)點(子元素,子元素…….)>

        第三步:將第一層子元素名分別作為下一層的根節(jié)點。然后進行DTD的書寫。一般格式為:

        <!ELEMENT 子元素 (下一級子元素,下一級子元素)>。

        這里的子元素都是連接元素,因此在書寫DTD時要將第三層葉子節(jié)點相應的連接屬性刪除。否則就會產(chǎn)生錯誤。可以看出星形關系由于其特殊的結構使得轉化后的XML樹也只有3層。

        3.1.2具體轉化過程

        這里列舉一個關系數(shù)據(jù)轉化XML的例子,這里我們不考慮關系的規(guī)范化的問題,也不考慮關系表實際含義的問題。

        因為關系中表的數(shù)目是3個,因此判斷一定是星形關系。通過觀察可以看出表3是一個擴展的根關系表??梢园凑招切侮P系轉化的方法進行轉化。首先確定XML文檔根元素為SC,也就是表3的名稱。因此可以寫出第一句<!ELEMENT SC(學號,課程號,成績)>。然后我們可以看出表3中的屬性學號和課程號分別連接著表1和表2。因此可以將學號和課程號做為第二層子節(jié)點。同時作為最下面一層葉子節(jié)點的父節(jié)點。另外,在書寫的時候要將表1和表2中的連接屬性刪去。完整的DTD如下:

        3.2 直線型關系的轉化

        定義6:將關系中每個關系表的一個屬性提取出來重新建立一個關系表稱為構造根關系表。

        直線型關系轉化XML時需要構造根系表,否則任何一個關系表都能作為根元素,我們將構造的關系表的名稱作為XML的根元素,而構造根關系表中的屬性應當是第一層子節(jié)點。這些子節(jié)點再去連接相應的下一層葉子節(jié)點。可以預見。這種類型轉化后的XML文檔必定為3層樹型結構。

        3.2.1轉化方法

        第一步:將關系中每個關系表的主屬性提取出來重新建立一個新的根關系表,然后給這個新的關系表命名,以這個關系表的名字作為根元素,其屬性作為第一層次子元素。

        第二步:因為這個構造的根關系表中的屬性都是連接屬性,因此可以根據(jù)連接屬性進行對應尋找下一層的節(jié)點。依次寫出DTD的內容。

        3.2.2具體轉化過程

        在上面表1,表2,表3的基礎上,我們增加了表4。

        首先我們要構造出一個根關系表,令表名為學校信息,新的根關系表可以表示為:

        學校信息(學號,課程號,成績,系),這是一個虛的關系表。然后可以寫出DTD的第一行定義為:<!ELEMENT 學校信息(學號,課程號,成績,系)>。限于篇幅,具體的DTD文檔我們就不再去書寫了。

        3.3 樹型關系的轉化

        樹型關系的轉化比較復雜。主要復雜在根節(jié)點的選擇上面。如果不加限制,那么任何一個表都可以作為根節(jié)點。

        3.3.1轉化方法

        第一步:分別計算出每個關系表能連接其他關系表的數(shù)目,將能連接數(shù)目最多的那個關系表的表名作為根元素。并且根據(jù)這種結構畫出相應的樹型結構。

        第二步:以這個表為中心,寫出根元素和第一層的子元素。然后根據(jù)連接屬性依次向下書寫。方法和前面的一樣。

        可以看出,這種轉化方法對XML樹狀結構的層數(shù)沒有限制。

        3.3.2具體轉化過程

        可以在上面4個表的基礎上增加一個表

        五個表的關系如圖4所示

        通過定義可以判斷是樹型結構,其中表1為根元素,然后根據(jù)連接屬性寫出整個DTD。第一行為:<!ELEMENT Student(學號,姓名,性別,年齡,系) >

        3.4 具體的算法(包含三類關系類型)

        這里我們用自然語言描述:(2,3,4步是并列的,不能同時執(zhí)行,需要第1步進行判斷后執(zhí)行)

        第一步:判斷關系的類型

        If (關系表的數(shù)目<4):為星形關系,直接轉向第四步

        Else:判斷這一組關系表的類型(判斷方法見上面的講述)

        if(星形關系),直接轉向第四步

        else if(直線型關系),則直接轉向第三步

        else(樹狀關系).則繼續(xù)執(zhí)行(即執(zhí)行第二步)

        第二步:分別計算出每個關系表能連接其他關系表的數(shù)目,將能連接數(shù)目最多的那個關系表的表名作為根元素。并且根據(jù)這種結構畫出相應的樹型結構。

        第三步:將關系中每個關系表的主屬性提取出來重新建立一個新的根關系表,然后給這個新的關系表命名,以這個關系表的名字作為根元素,其屬性作為第一層次子元素。

        第四步:把根關系表或擴展的根關系表的名稱作為XML文檔的根元素。

        第五步:在選定根元素之后,寫出第一DTD即<!ELEMENT 根元素(子元素,子元素…)>

        第六步:根據(jù)每個表的連接屬性進行書寫。要注意連接屬性作為下面一層的表名,在寫屬性的時候要把這個連接屬性刪去,這樣可以寫出整個DTD。

        第七步:根據(jù)DTD寫出XML的基本結構,然后依照關系表將標簽中的內容依次填上。

        4 總結

        這種方法的關鍵是如何確定每種關系類型的根元素。確定根元素之后就可以不同表之間的連接屬性進行轉化了。將現(xiàn)實世界的關系模型分成了3類。對其分別進行了討論,最后給出了一個算法。這種方法最大的優(yōu)點就是能夠唯一地將關系模式轉化成XML數(shù)據(jù)模式。并且可以實現(xiàn)一切關系模式的轉化。保證了轉化的全體性,唯一性。

        參考文獻:

        [1]T. Bray et al.,“Extensible Markup Language (XML) third edition,” http://www.w3.org/TR/REC-xml.

        [2]邱洋,岳昆,等. 利用緩存優(yōu)化關系數(shù)據(jù)的XML發(fā)布[J]. 計算機研究與發(fā)展,2004,41(10):1082-1088.

        [3]萬常選. 以XML文檔發(fā)布關系數(shù)據(jù)[J]. 計算機應用與軟件,2002,19(8):30-33

        [4]Shanmugasundaram J,Shekita E,Barr R. Efficiently publishing relational data as XML documents[C]. Egypt:Proceeding of the26th International Conference on Very Large Databases,2000.

        [5]Fernandez M,Tan W. Silk route:A framewok for publishing relational data in XML[J]. ACM Transactions on Database Systems,2002,27(4):438-493.

        [6]Eisenberg A,Melton J. SQL/XML is making good progress[J].ACM SIGMOD Record,2002,31(2):101 - 108.

        中文字幕av人妻一区二区| 亚洲精品综合一区二区三| 精品欧美乱子伦一区二区三区 | 日韩精品一区二区三区四区视频| 亚洲中文字幕精品久久吃奶| 亚洲欧洲国产成人综合在线| 区久久aaa片69亚洲| 大屁股少妇一区二区无码| 美女被黑人巨大入侵的的视频| 大地资源高清在线视频播放| 国产久热精品无码激情| 婷婷一区二区三区在线| av天堂中文亚洲官网| 欧美日韩精品乱国产| 男人边吃奶边做好爽免费视频| 91福利国产在线观看网站| 日韩av一区二区蜜桃| 男人扒开添女人下部免费视频 | 亚洲黄色官网在线观看| 国产一区二区三区在线蜜桃| 亚洲中文字幕久在线| 亚洲日韩图片专区小说专区| 国产成人久久精品二区三区| 国产免费观看黄av片| 亚洲国产成人久久一区| 日韩欧美精品有码在线观看| 国产视频一区二区三区观看| 精品无码无人网站免费视频| 四虎影视国产在线观看精品| 日韩精品成人一区二区在线观看| 亚洲中文字幕人妻av在线| 麻豆国产原创视频在线播放| 国产农村熟妇videos| 亚洲欧美日韩在线观看一区二区三区| 日韩精品区欧美在线一区| 99精品又硬又爽又粗少妇毛片| 狠狠躁夜夜躁av网站中文字幕| 久久综合九色综合网站| 国产一起色一起爱| 日本不卡视频一区二区| 在线成人一区二区|