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

        ?

        一種基于關(guān)系的X ML原型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2014-07-11 02:38:44衛(wèi)
        科技視界 2014年8期
        關(guān)鍵詞:主鍵關(guān)系數(shù)據(jù)庫結(jié)點(diǎn)

        燕 衛(wèi)

        (廈門海洋職業(yè)技術(shù)學(xué)院,福建 廈門361012)

        隨著XML的廣泛應(yīng)用,XML正在成為數(shù)量龐大的數(shù)據(jù)源,如何利用RDBMS強(qiáng)大數(shù)據(jù)管理功能管理XML數(shù)據(jù)已成為一個(gè)研究熱點(diǎn),由于XML數(shù)據(jù)與關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模型不同,實(shí)現(xiàn)XML數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)的相互轉(zhuǎn)換顯得尤為重要。

        1 數(shù)據(jù)轉(zhuǎn)換的設(shè)計(jì)方案

        將XML文檔映射為關(guān)系模式進(jìn)行存儲,有兩大類映射方法:模型映射和結(jié)構(gòu)映射。對于模型映射,利用xml文檔中的數(shù)據(jù)模型的結(jié)構(gòu)顯性或隱性地映射成其他數(shù)據(jù)模型的結(jié)構(gòu),要實(shí)現(xiàn)數(shù)據(jù)庫和xml文檔間的數(shù)據(jù)轉(zhuǎn)換的關(guān)鍵是在數(shù)據(jù)庫模式和schemas和DTD之間建立映射關(guān)系,用具體的模型來實(shí)現(xiàn)數(shù)據(jù)間的映射。

        1.1 邊模型映射方法

        一個(gè)XML文檔是一個(gè)樹狀結(jié)構(gòu),能夠用一個(gè)有序有向邊標(biāo)記圖來表示,按深度有限的原則從樹葉往樹根搜索,每碰到一個(gè)內(nèi)部節(jié)點(diǎn)則創(chuàng)建對應(yīng)的抽象數(shù)據(jù)類型,直到根節(jié)點(diǎn)的直接子節(jié)點(diǎn),創(chuàng)建基于次根節(jié)點(diǎn)所對應(yīng)的抽象數(shù)據(jù)類型對象,該對象就是根節(jié)點(diǎn)對應(yīng)的對象,最后將XML文檔中各元素的屬性值填入對象中的相應(yīng)域。

        有了XML圖之后,用來存儲邊信息的邊表有三種設(shè)計(jì)方案:Edge、Binary、Universal三種邊表設(shè)計(jì)方案和兩種值表設(shè)計(jì)方案,一共有六種存儲模式。通過對結(jié)構(gòu)關(guān)系數(shù)據(jù)庫大小,執(zhí)行不同類型XML查詢的執(zhí)行時(shí)間,從關(guān)系數(shù)據(jù)重構(gòu)XML文檔的時(shí)間等三個(gè)性能參數(shù)進(jìn)行量化分析,結(jié)論是:Binary邊表帶內(nèi)聯(lián)值表的存儲模式能獲得最好的綜合性能。

        1.2 數(shù)據(jù)模型

        一個(gè)XML文檔可以被建模為一個(gè)樹,因此,一個(gè)XML文檔的集合可以被建模為一個(gè)森林。一個(gè)根結(jié)點(diǎn)的樹指向一個(gè)XML文檔,一個(gè)根結(jié)點(diǎn)是非文檔結(jié)點(diǎn)的樹指向一個(gè)XML文檔片段。因此一個(gè)XML查詢即可以在一個(gè)XML文檔樹或文檔森林上進(jìn)行,也可以在一個(gè)XML文檔片段或森林片段上進(jìn)行。

        如何從一個(gè)DTD生成一個(gè)關(guān)系型結(jié)構(gòu)?對于每種包含元素或者混合內(nèi)容的元素類型,新建一個(gè)表和一個(gè)主鍵字段,對于每個(gè)包含混合內(nèi)容的元素類型,創(chuàng)建一個(gè)單獨(dú)的表格,其中存放未析數(shù)據(jù),通過父元素主鍵鏈接到父表格,對每個(gè)有元素或者混合內(nèi)容的子元素,通過父元素主鍵將父元素表格和子元素表格相連接。

        如何從一個(gè)關(guān)系型的結(jié)構(gòu)生成一個(gè)DTD?對于每個(gè)表新建一個(gè)元素,對于表格中的每個(gè)字段,新建一個(gè)屬性或者是只包含未析數(shù)據(jù)的子元素;對于每個(gè)表格字段中提供主鍵的主鍵/外鍵的關(guān)系都新建一個(gè)子元素。

        1.3 擴(kuò)展先序列表

        為了有效地實(shí)現(xiàn)對文檔樹中任意兩個(gè)結(jié)點(diǎn)對之間的祖先/后裔關(guān)系,利用擴(kuò)展先序列表寫出它的先序遍歷序列,然后根據(jù)圖中各個(gè)節(jié)點(diǎn)左右孩子的狀況進(jìn)行加以遍歷?;诠?jié)點(diǎn)的索引本質(zhì)上即是將XML數(shù)據(jù)分解為數(shù)據(jù)單元的記錄集合,同時(shí)在記錄中保存該單元在XML數(shù)據(jù)中的位置信息。通過編碼技術(shù)索引每一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)之間的結(jié)構(gòu)關(guān)系通過編碼可以在常數(shù)時(shí)間內(nèi)確定它可以很好地支持正則路徑表達(dá)式。

        2 XML文檔到關(guān)系數(shù)據(jù)庫的映射方案

        2.1 XML文檔到關(guān)系數(shù)據(jù)庫映射

        XML文檔到數(shù)據(jù)庫的映射往往忽略XML文檔的物理結(jié)構(gòu)(例如實(shí)體、引用文本部分及編碼信息)及某些邏輯結(jié)構(gòu)(如處理指令、注釋以及子元素和模型組在元素聲明中出現(xiàn)的順序)。因?yàn)閿?shù)據(jù)庫和應(yīng)用程序只關(guān)心XML文件中的數(shù)據(jù),因此在映射算法中先不考慮這些物理結(jié)構(gòu)和邏輯結(jié)構(gòu)的映射。

        2.2 文檔轉(zhuǎn)換到關(guān)系數(shù)據(jù)庫的算法描述

        根據(jù)上述映射規(guī)則,可以將元素之間的樹型關(guān)系存入RDBMS。不過,首先需要對XML文檔進(jìn)行解析以獲得DOM樹,并且要給DOM樹中的每個(gè)元素節(jié)點(diǎn)分別綁定唯一的ID(這在遍歷DOM樹時(shí)實(shí)現(xiàn))。事先建一張?jiān)仃P(guān)系表,表的字段分別代表當(dāng)前元素節(jié)點(diǎn)的ID、當(dāng)前元素節(jié)點(diǎn)的父節(jié)點(diǎn)ID、當(dāng)前元素節(jié)點(diǎn)的名稱。然后根據(jù)上述算法對XML文檔進(jìn)行解析。

        2.3 關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)成XML形式的算法描述

        根據(jù)上述的存儲策略,可以從關(guān)系數(shù)據(jù)庫中將數(shù)據(jù)恢復(fù)成XML形式:根據(jù)元素關(guān)系表來建立XML文檔中元素的嵌套關(guān)系,并分別查詢元素內(nèi)容表和屬性值表來將各元素的內(nèi)容和各元素的屬性及值插入元素節(jié)點(diǎn)。

        3 原型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        這個(gè)原型系統(tǒng)實(shí)現(xiàn)了兩種方法的存儲,一種是以塊結(jié)構(gòu)存儲,第二種以模型為基礎(chǔ)的映射存儲,通過原型的實(shí)現(xiàn)讓我們可以更加清楚直觀的理解XML存儲到關(guān)系數(shù)據(jù)庫的概念。

        整個(gè)原型系統(tǒng)的工作流程是將讀入的XML文件經(jīng)過解析遍歷,并在遍歷的同時(shí)進(jìn)行判斷結(jié)點(diǎn)類型,插入相應(yīng)的關(guān)系數(shù)據(jù)庫表中。

        3.1 功能模塊

        (1)classRdb主要用于創(chuàng)建數(shù)據(jù)庫的連接。

        (2)classtest主要用于實(shí)現(xiàn)解析文檔并映射到關(guān)系數(shù)據(jù)庫的工作,這是對于上述算法的具體實(shí)現(xiàn),主要實(shí)現(xiàn)函數(shù)有test(),stepThrough(Node start),complex(Node node)。

        (3)classblobstore主要用于以塊結(jié)構(gòu)存儲XML文檔。

        3.2 界面模塊

        (1)classAppFrame中調(diào)用了javax.swing.filechooser.*;這個(gè)包并重載了它,使它實(shí)現(xiàn)了對于文件過濾的功能。

        (2)classsccuce用來判斷文件存儲成功與否,使用了彈出框的形式。

        (3)classErrorDialog可以用來顯示程序運(yùn)行過程中的一些異常,如文件已經(jīng)存在關(guān)系數(shù)據(jù)庫中的重復(fù)存儲的異常。

        猜你喜歡
        主鍵關(guān)系數(shù)據(jù)庫結(jié)點(diǎn)
        基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
        關(guān)系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
        山東冶金(2022年2期)2022-08-08 01:51:30
        基于外鍵的E-R圖繪制方法研究
        Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
        基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索
        基于Raspberry PI為結(jié)點(diǎn)的天氣云測量網(wǎng)絡(luò)實(shí)現(xiàn)
        數(shù)據(jù)庫主鍵的設(shè)計(jì)方法探討
        一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索方法
        基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
        基于DHT全分布式P2P-SIP網(wǎng)絡(luò)電話穩(wěn)定性研究與設(shè)計(jì)
        亚洲区一区二区三区四| 成人免费毛片内射美女-百度| 久久狠狠第一麻豆婷婷天天| 国产精品一区区三区六区t区| 99久久精品一区二区国产| 色综合av综合无码综合网站| 99久久免费精品高清特色大片| 无码伊人66久久大杳蕉网站谷歌| 天堂久久一区二区三区| 狠狠色丁香婷婷久久综合| 国产成人无码免费看片软件| 亚洲精品成人国产av| 久久精品国产黄片一区| 国产精品白浆在线观看免费| 99re热这里只有精品最新| 最新手机国产在线小视频| 一区视频免费观看播放| 成人乱码一区二区三区av| 欧美性受xxxx黑人xyx性爽| 日本精品人妻在线观看| 男人的天堂手机版av| 免费看黑人男阳茎进女阳道视频 | 给我播放的视频在线观看| 91精品国产综合久久熟女| 国产精品_国产精品_k频道| 国产免费看网站v片不遮挡| 亚洲av成人波多野一区二区 | av无码人妻中文字幕| 含羞草亚洲AV无码久久精品| 国产一区二区美女主播| 内射夜晚在线观看| 亚洲av色无码乱码在线观看| 熟女人妻中文字幕一区| 日韩精品第一区二区三区| 一区二区三区在线 | 欧| 91亚洲精品福利在线播放| 99伊人久久精品亚洲午夜| 无码孕妇孕交在线观看| 麻豆第一区MV免费观看网站| 国产在线看不卡一区二区| 免费在线黄色电影|