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

        ?

        基于XML的異構(gòu)數(shù)據(jù)庫歸檔系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2013-10-15 02:49:32李育嶺萬曉冬
        關(guān)鍵詞:數(shù)據(jù)庫信息系統(tǒng)

        李育嶺,萬曉冬

        (南京航空航天大學(xué)自動(dòng)化學(xué)院,江蘇 南京 210016)

        0 引言

        隨著企業(yè)信息化建設(shè)的深入,數(shù)據(jù)庫平臺(tái)產(chǎn)生海量歷史數(shù)據(jù),并且這些數(shù)據(jù)還在持續(xù)增長(zhǎng)。很多使用頻率極低的歷史數(shù)據(jù)占據(jù)著數(shù)據(jù)庫運(yùn)行系統(tǒng)大量的存儲(chǔ)空間,影響著系統(tǒng)的運(yùn)行效率。因此必須將系統(tǒng)中的歷史數(shù)據(jù)遷移出數(shù)據(jù)庫運(yùn)行系統(tǒng),將有限的資源釋放出來,確保系統(tǒng)穩(wěn)定運(yùn)行。

        數(shù)據(jù)庫歸檔技術(shù)能夠有效解決海量歷史數(shù)據(jù)影響系統(tǒng)運(yùn)行的問題,相對(duì)于數(shù)據(jù)備份而言,數(shù)據(jù)庫歸檔技術(shù)能夠?qū)崿F(xiàn)數(shù)據(jù)的快速歸檔和重構(gòu)。它也能夠?qū)崿F(xiàn)數(shù)據(jù)管理功能,為以后的數(shù)據(jù)查詢和分析提供便利。

        目前大部分的數(shù)據(jù)庫系統(tǒng)都有自己專用的備份和歸檔機(jī)制來處理歷史數(shù)據(jù),這些歸檔工具有各自的應(yīng)用特點(diǎn)和局限,往往需要人為的干預(yù),并且自動(dòng)化程度不是令人滿意。對(duì)于一個(gè)復(fù)雜的異構(gòu)數(shù)據(jù)庫平臺(tái),它們無法提供很好的解決方案。隨著信息化的發(fā)展,企業(yè)的海量數(shù)據(jù)越來越多的存在于異構(gòu)數(shù)據(jù)庫環(huán)境中,使得某一數(shù)據(jù)庫平臺(tái)中的歸檔數(shù)據(jù)在其它平臺(tái)中很難被共享和利用。企業(yè)對(duì)異構(gòu)數(shù)據(jù)庫環(huán)境中的數(shù)據(jù)庫歸檔系統(tǒng)的需求日益迫切,研究和開發(fā)此類歸檔系統(tǒng)具有重要的現(xiàn)實(shí)意義。

        XML在現(xiàn)有的數(shù)據(jù)庫和編程語言中具有很強(qiáng)的通用性,其特有的異構(gòu)性、可擴(kuò)展性及靈活性,使其在數(shù)據(jù)交換和傳輸中成為一種標(biāo)準(zhǔn)。它提供了適合表示半結(jié)構(gòu)化數(shù)據(jù)的松散樹型結(jié)構(gòu),可以用來描述各種復(fù)雜數(shù)據(jù),這些復(fù)雜數(shù)據(jù)可以被不同的程序讀取。目前主流數(shù)據(jù)庫系統(tǒng)都加強(qiáng)了對(duì)XML的支持,這為開發(fā)基于XML的異構(gòu)數(shù)據(jù)庫歸檔系統(tǒng)奠定了基礎(chǔ),提高了系統(tǒng)開發(fā)的可行性。

        本文重點(diǎn)研究XML與關(guān)系數(shù)據(jù)庫之間雙向映射機(jī)制,設(shè)計(jì)歸檔系統(tǒng)的模型,屏蔽異構(gòu)數(shù)據(jù)庫環(huán)境中差異性,完成數(shù)據(jù)的管理、轉(zhuǎn)換和共享,實(shí)現(xiàn)數(shù)據(jù)在異構(gòu)環(huán)境中歸檔的功能。

        1 異構(gòu)數(shù)據(jù)庫歸檔系統(tǒng)整體設(shè)計(jì)

        本系統(tǒng)采用C/S架構(gòu),以實(shí)現(xiàn)多用戶實(shí)時(shí)歸檔,統(tǒng)一管理的目標(biāo)。每一個(gè)歸檔的發(fā)起者都是一個(gè)客戶端,將數(shù)據(jù)庫的結(jié)構(gòu)及約束信息和記錄信息按照統(tǒng)一的格式映射到XML文件中,歸檔的數(shù)據(jù)最終以XML文檔的形式生成。重構(gòu)時(shí)則將XML文檔中含有的數(shù)據(jù)庫信息映射到數(shù)據(jù)庫中,實(shí)現(xiàn)數(shù)據(jù)庫的重構(gòu)。而服務(wù)器主要是管理、存儲(chǔ)和傳送XML文檔,對(duì)客戶端的請(qǐng)求命令進(jìn)行解析,做出正確響應(yīng),滿足客戶端數(shù)據(jù)歸檔、重構(gòu)和信息查詢的要求。

        系統(tǒng)從邏輯上自下而上可以劃分為4個(gè)層次,分別是:底層異構(gòu)數(shù)據(jù)庫環(huán)境、異構(gòu)數(shù)據(jù)庫的統(tǒng)一訪問接口、數(shù)據(jù)的轉(zhuǎn)換和雙向映射以及用戶響應(yīng)和分布式歸檔管理。為了便于開發(fā)實(shí)現(xiàn),將系統(tǒng)的上述4個(gè)層次整合成幾個(gè)主要模塊,將緊密關(guān)系的功能集中在一起,使程序結(jié)構(gòu)更加合理。

        系統(tǒng)主要由客戶端和服務(wù)器端兩部分組成,系統(tǒng)體系結(jié)構(gòu)如圖1所示。

        圖1 數(shù)據(jù)庫歸檔系統(tǒng)框架圖

        網(wǎng)絡(luò)通訊與命令解析模塊在服務(wù)器端和客戶端都存在??蛻舳税l(fā)向服務(wù)端的信息主要有歸檔請(qǐng)求、數(shù)據(jù)庫表的查詢以及其它狀態(tài)檢測(cè)信息。服務(wù)器端也實(shí)時(shí)地向客戶端返回狀態(tài)信息、XML文件以及查詢結(jié)果等。這樣系統(tǒng)就可以實(shí)現(xiàn)分布式遠(yuǎn)程在線歸檔的功能。服務(wù)器端對(duì)歸檔的XML文件進(jìn)行統(tǒng)一管理和存儲(chǔ),建立用戶查詢索引,方便數(shù)據(jù)的重構(gòu)。

        客戶端通過數(shù)據(jù)庫統(tǒng)一訪問接口連接訪問異構(gòu)數(shù)據(jù)庫平臺(tái),用戶需要提供基本信息,如數(shù)據(jù)庫服務(wù)器IP、連接端口、用戶名、密碼、數(shù)據(jù)庫名等,并選擇相應(yīng)的數(shù)據(jù)庫類型,就可以訪問異構(gòu)環(huán)境。這是對(duì)多種數(shù)據(jù)庫訪問方法的一種集成,讓歸檔系統(tǒng)能夠適應(yīng)異構(gòu)數(shù)據(jù)庫環(huán)境。

        客戶端包含了歸檔系統(tǒng)中的兩個(gè)關(guān)鍵模塊,數(shù)據(jù)庫歸檔模塊和數(shù)據(jù)庫重構(gòu)模塊。歸檔模塊中主要是從數(shù)據(jù)庫中獲取表的結(jié)構(gòu)信息和記錄信息,生成統(tǒng)一格式的XML文檔,數(shù)據(jù)庫重構(gòu)模塊則從XML文件中讀取表的結(jié)構(gòu)信息,在數(shù)據(jù)庫中建立表的基本結(jié)構(gòu),再將XML中的記錄值填充到數(shù)據(jù)庫中,實(shí)現(xiàn)整個(gè)重構(gòu)過程。

        2 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn)

        2.1 異構(gòu)數(shù)據(jù)源的統(tǒng)一格式表示

        為了使生成的XML歸檔文件能夠在異構(gòu)數(shù)據(jù)庫環(huán)境中傳遞數(shù)據(jù)信息,將XML文件劃分為結(jié)構(gòu)區(qū)和記錄區(qū),將數(shù)據(jù)庫的表結(jié)構(gòu)和記錄值分別映射到XML文檔的結(jié)構(gòu)區(qū)和記錄區(qū)。建立結(jié)構(gòu)區(qū)的目的是為了保持關(guān)系數(shù)據(jù)庫中的各表及各列的約束條件和內(nèi)外關(guān)系,保證數(shù)據(jù)在結(jié)構(gòu)上的完整性和一致性。任何數(shù)據(jù)庫平臺(tái)都能從XML歸檔文件中獲取到數(shù)據(jù)庫的原貎,這樣在重構(gòu)時(shí)能夠最大限度地與原數(shù)據(jù)保持一致。該系統(tǒng)利用SQL語句,從3種數(shù)據(jù)庫系統(tǒng)中獲取數(shù)據(jù)庫表名、表數(shù)量、主鍵、外鍵、列名、列數(shù)量、列類型、長(zhǎng)度、精度、是否允許為空、默認(rèn)值、外鍵所在的表的表名及在此表的列名等重要信息。當(dāng)然,不同的數(shù)據(jù)庫平臺(tái)還帶有各自特有的信息,如MySQL數(shù)據(jù)庫中表創(chuàng)建時(shí)指定的引擎類型等。這些與庫表信息緊密相聯(lián)的信息映射到XML的結(jié)構(gòu)區(qū),作為重構(gòu)庫表的依據(jù)。

        表結(jié)構(gòu)和約束關(guān)系導(dǎo)出到XML結(jié)構(gòu)區(qū)的格式如下:

        <dbstructure>

        <dbname>mydb</dbname>//表所屬的數(shù)據(jù)庫名

        <dbtype>Oracle</dbtype>//數(shù)據(jù)庫類型

        <tablestructure>//表的結(jié)構(gòu)信息

        <tablename>stu_score</tablename>//表名

        <primarykey> //主鍵信息

        <primarykeyname>stu_id</primarykeyname>

        //主鍵鍵名

        <primarykeytype>number</primarykeytype>

        //主鍵數(shù)據(jù)類型

        </primarykey>

        <foreignkey> //外鍵信息

        <foreignkeyname>course_name</foreignkeyname>//外鍵鍵名

        <foreignkeyftablename>course</foreignkeyftablename>//外鍵所在表名

        <foreignkeyfcolumnname>course_name<foreignkeyfcolumnName>//外鍵關(guān)聯(lián)表中的列名

        </foreignkey>

        <columnsinfo> //列信息

        <columncount>5</columncount>//表中列數(shù)量

        <column>//第一列的信息

        <columnname>stu_id</columnname>//列名稱

        <columntype>number</columntype>//列的數(shù)據(jù)類型

        <columnprecision>2</columnprecision>//列的數(shù)據(jù)位數(shù)

        <columnscale>0</columnscale>//列的精度

        <columnlength>22</columnlength>//列的長(zhǎng)度

        <columnisnullable>NO</columnisnullable>//列是否為空

        <columndefault>0</dolumndefault> //列默認(rèn)值

        </column>

        …//其它列

        </tablestructure>

        2.2 異構(gòu)數(shù)據(jù)庫環(huán)境數(shù)據(jù)類型映射關(guān)系的建立

        在該歸檔系統(tǒng)中,XML歸檔文件中包含的數(shù)據(jù)庫信息可能會(huì)在各個(gè)數(shù)據(jù)庫平臺(tái)中重新構(gòu)建出來,而各數(shù)據(jù)庫平臺(tái)的數(shù)據(jù)類型各異,因此,需要建立異構(gòu)環(huán)境數(shù)據(jù)庫數(shù)據(jù)類型映射表,來實(shí)現(xiàn)庫表的跨平臺(tái)重構(gòu)。

        不同數(shù)據(jù)庫系統(tǒng),都有自己的一套數(shù)據(jù)類型。這些數(shù)據(jù)類型在名稱、長(zhǎng)度和精度上有很大的差異。隨著數(shù)據(jù)庫系統(tǒng)的不斷發(fā)展和升級(jí),數(shù)據(jù)類型的種類也越來越多。雖然如此,數(shù)據(jù)庫在滿足用戶使用的基本要求上,卻有著極大的共性。數(shù)據(jù)類型都分為數(shù)值型、字符型、長(zhǎng)字符型等,這個(gè)共性給數(shù)據(jù)庫數(shù)據(jù)類型轉(zhuǎn)換帶來了可能和方便。通過分析異構(gòu)數(shù)據(jù)庫中各數(shù)據(jù)類型的特征,找出和建立它們之間的對(duì)應(yīng)關(guān)系,達(dá)到數(shù)據(jù)源跨平臺(tái)的目的。

        本文所研究的3種數(shù)據(jù)庫平臺(tái)在數(shù)據(jù)庫重構(gòu)時(shí)存在9種映射關(guān)系(包含自身映射),為了盡可能多地考慮數(shù)據(jù)的完整性和最大兼容性,將表示范圍小的數(shù)據(jù)類型映射到同等范圍或者表示范圍大的數(shù)據(jù)類型中去,盡量避免將表示范圍大的數(shù)據(jù)類型映射到表示范圍小的數(shù)據(jù)類型中去。例如,MySQL的VARCHAR類型映射到Oracle中,依然是VARCHAR,但反過來Oracle的VARCHAR類型映射到MySQL中,對(duì)應(yīng)的則是TEXT類型,因?yàn)镸ySQL中的VARCHAR類型表示的字符存儲(chǔ)容量已不能滿足 Oracle中VARCHAR的需求了。

        在C++程序設(shè)計(jì)中,利用STL中的MAP關(guān)聯(lián)容器來實(shí)現(xiàn)這種對(duì)應(yīng)關(guān)系,將源數(shù)據(jù)庫數(shù)據(jù)類型作為XML文檔的數(shù)據(jù)類型查詢方,而將查詢到的對(duì)應(yīng)項(xiàng)作為重構(gòu)的目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)類型項(xiàng)。

        2.3 表記錄的導(dǎo)出

        目前主流數(shù)據(jù)庫平臺(tái)對(duì)XML給予很大支持,能夠讓用戶方便地將庫表記錄從庫中導(dǎo)出到XML文件中去,但各個(gè)平臺(tái)產(chǎn)生的XML文件格式差異很大,限制了它的通用性。在該系統(tǒng)中,先將數(shù)據(jù)庫中表的記錄通過自身機(jī)制導(dǎo)出到XML文件中去,然后再通過系統(tǒng)中的轉(zhuǎn)換模塊,將記錄的存儲(chǔ)格式轉(zhuǎn)換成統(tǒng)一的格式保存到XML文檔的記錄區(qū)中,和結(jié)構(gòu)區(qū)共同來表達(dá)一個(gè)完整的可重構(gòu)的數(shù)據(jù)表。

        VC++環(huán)境中,通過數(shù)據(jù)庫訪問組件執(zhí)行SQL語句,來完成相應(yīng)的數(shù)據(jù)操作,將數(shù)據(jù)庫中的記錄導(dǎo)出到XML文件中去。

        從Oracle 10g數(shù)據(jù)庫中導(dǎo)出記錄到XML文件中的命令:

        spool F:oracle_arc.xml;

        他是最會(huì)講“段子”的科普達(dá)人,最受青少年歡迎的明星專家。他參與了上海科技館、自然博物館的籌建,并承擔(dān)了上海自然博物館近500塊中英文展板的編寫工作;

        selectDBMS_XMLQuery.getXml('select*from tablename')from dual;

        spool off

        當(dāng)然還必須根據(jù)記錄的大小和要生成的格式設(shè)定其它的參數(shù),比如 pagesize、long、linesize、heading、trimspool等,參數(shù)設(shè)定不當(dāng)會(huì)出現(xiàn)XML文件不完整,記錄值不全的問題。

        從MySQL5數(shù)據(jù)庫中導(dǎo)出記錄到XML文件中的命令:

        mysql-h ip-X-u*-p*-e"use dbname;select*from tablename;" >F:mysql_arc.xml

        上面命令中IP指MySQL服務(wù)器IP地址,*分別表示用戶名和登錄密碼。

        從SQL Server中導(dǎo)出記錄到XML文件中的命令:

        select*from tablename for XML Auto

        再將結(jié)果集利用VC++中的ADO技術(shù)存入到XML文件中即可。

        上面生成的XML文件在格式有一定的差異,通過轉(zhuǎn)換,將導(dǎo)出的數(shù)據(jù)轉(zhuǎn)換成以下格式:

        <tablerecord>//表記錄區(qū)

        <record stu_id="0302001"course_name="英語"stu_score="86"/>//第一條記錄值

        <record stu_id="0302002"course_name="英語"stu_score="65"/>//第二條記錄值

        </tablerecord>

        將記錄導(dǎo)出到XML文件中后,通過對(duì)比原表中記錄的數(shù)量和XML導(dǎo)出的記錄數(shù),檢驗(yàn)數(shù)據(jù)的完整性;通過隨機(jī)比較某些記錄項(xiàng)的值,檢驗(yàn)數(shù)據(jù)的一致性。

        在導(dǎo)出表信息的同時(shí),生成詳細(xì)的日志。記錄下操作者、表名、日期、任務(wù)名稱、是否成功、XML文件名稱和存儲(chǔ)位置等信息,以便用戶查詢分析。

        3 結(jié)束語

        本文設(shè)計(jì)并實(shí)現(xiàn)了基于XML的數(shù)據(jù)庫歸檔系統(tǒng),利用數(shù)據(jù)庫平臺(tái)對(duì)XML的支持, 通過數(shù)據(jù)格式和數(shù)據(jù)類型的轉(zhuǎn)化,屏蔽平臺(tái)差異性,達(dá)到異構(gòu)環(huán)境的數(shù)據(jù)歸檔和重構(gòu)的目的。系統(tǒng)的分布式設(shè)計(jì),使其更貼近企業(yè)的真實(shí)應(yīng)用環(huán)境。在 MSSQL Server 2005,MySQL5,Oracle 10g這3種異構(gòu)數(shù)據(jù)庫環(huán)境的實(shí)際應(yīng)用中,總體效果良好。

        [1]江勇,于建武,劉鎮(zhèn).基于Schema的XML文檔和關(guān)系模式的映射研究[J].科學(xué)技術(shù)與工程,2008,8(2):407-410.

        [2]劉洪星,陳明,張學(xué)敏.幾種基于EER的XML概念模式的研究[J].武漢理工大學(xué)學(xué)報(bào),2006,28(5):25-28.

        [3]劉雍.將關(guān)系數(shù)據(jù)庫的查詢結(jié)果轉(zhuǎn)換為XML文檔[J].瓊州學(xué)院學(xué)報(bào),2009(2):18-21.

        [4]石海霞.基于XML的數(shù)據(jù)庫中間件技術(shù)與應(yīng)用研究[D].杭州:浙江工業(yè)大學(xué),2008:29-30.

        [5]劉偉.基于Schema的XML模式與關(guān)系模式映射算法的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(3):113-115.

        [6]吳潔明,萬勵(lì),莫智懿,等.基于關(guān)系數(shù)據(jù)庫的XML存儲(chǔ)技術(shù)[J].制造業(yè)自動(dòng)化,2011,33(1):7-9.

        [7]任劍嵐.SQL Server 2005對(duì)XML的支持分析報(bào)告[J].電腦知識(shí)與技術(shù),2011,7(2):274-275.

        [8]李為,蔡英蔚,徐輝.基于多線程的異構(gòu)數(shù)據(jù)庫集成平臺(tái)的設(shè)計(jì)實(shí)現(xiàn)[J].現(xiàn)代電力,2008,25(5):69-72.

        [9]陳巍,劉藝雯.數(shù)據(jù)庫數(shù)據(jù)遷移測(cè)試軟件的研究與實(shí)現(xiàn)[J].安徽工程科技學(xué)院學(xué)報(bào),2010,25(4):35-39.

        [10]馮春輝.基于關(guān)系數(shù)據(jù)庫的XML映射機(jī)制研究[J].煤炭技術(shù),2010,29(12):136-137.

        [11]郝少化,韓燮.基于XML技術(shù)的異構(gòu)關(guān)系數(shù)據(jù)庫集成模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(24):5285-5288.

        [12]王軍,張興忠.XML與全文檢索在CMS數(shù)據(jù)歸檔中的應(yīng)用[J].電腦開發(fā)與應(yīng)用,2011,25(1):70-72.

        [13]劉慧琳.基于XML和數(shù)據(jù)庫的數(shù)據(jù)映射研究[J].西南民族大學(xué)學(xué)報(bào),2008,34(3):610-612.

        [14]吳明娟,李晟.基于XML的歷史數(shù)據(jù)歸檔與重構(gòu)策略的研究與應(yīng)用[J].電腦開發(fā)與應(yīng)用,2008,25(2):5-7.

        猜你喜歡
        數(shù)據(jù)庫信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        展會(huì)信息
        亚洲日本va午夜在线电影| 一二三区亚洲av偷拍| 午夜精品久久久久久久99老熟妇 | 欧美中文字幕在线看| 蜜桃色av一区二区三区麻豆| 肥老熟女性强欲五十路| 国模丽丽啪啪一区二区| 亚洲人成亚洲人成在线观看 | 国产精品欧美日韩在线一区| 国产人妖在线免费观看| 久草视频在线手机免费看| 精品www日韩熟女人妻| 亚洲人成电影在线无码| 色中文字幕视频在线观看| 亚洲av五月天一区二区| 精品少妇无码av无码专区| 91av精品视频| 国产一区二区三区免费小视频| 性av一区二区三区免费| 无码人妻av一二区二区三区| 囯产精品无码va一区二区| 日本二区三区视频在线观看| 午夜人妻久久久久久久久| 人妻少妇精品中文字幕av蜜桃| 国产精品天天看大片特色视频 | 乱人伦中文字幕成人网站在线| 男人天堂AV在线麻豆| 国产极品大奶在线视频| 久久天天躁狠狠躁夜夜2020一| 99re这里只有热视频| 国产成人高清精品亚洲一区| 日本强伦姧人妻一区二区| 波多野结衣乳巨码无在线| 日本不卡在线一区二区三区视频| 国产日产亚洲系列首页| 国产精品无码v在线观看| 福利一区视频| 日本高清无卡一区二区三区| 亚洲精品乱码久久久久久不卡| 亚洲av无码av吞精久久| 亚洲啪啪AⅤ一区二区三区|