999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

元倉庫與源數據庫的元數據同步策略的研究與設計

2010-04-12 00:00:00葉國權,寧
現代電子技術 2010年17期

摘 要:在課題組針對生物數據源的特點建立的元倉庫的基礎上,重點討論元倉庫與源數據庫的元數據信息同步的策略,該方案解決了當源數據庫結構發生變化引起其元數據改變時,元倉庫中元數據的懸掛問題。關鍵詞:元數據; 異構數據庫; 同步; 懸掛

中圖分類號:TP311文獻標識碼:A

文章編號:1004-373X(2010)17-0146-04

Research and Design of Metadata Synchronization Strategy of Source

Database and Metadata Warehouse

YE Guo-quan1,2, NING Hong2

(1.School of Computer Science, National University of Defense Technology, Changsha 410073, China; 2.Medical College of CAPF, Tianjin 300162, China)

Abstract: The synchronization strategy of the source database and metadata warehouse is introduced based on the established metadata warehouse according to the characteristics of biological data source. This method solved the problem of metadata′s suspension in the metadata warehouse when the metadata changed by the source database structure.Keywords: metadata; heterogeneous database; synchronization; suspension

0 引 言

近年來,隨著蛋白質組學技術的普及和基礎研究的深入,生物信息學正面臨一系列新的挑戰。對高度復雜的海量蛋白質組學實驗數據進行存儲、共享與整合即是其中最重要的問題之一。各個數據源在物理上的分布、結構上的互異以及語義上的差異成為了對實驗數據進行共享與整合的三大瓶頸。

各個數據源的元數據不僅包含了數據的名稱、類型等信息,還提供了數據的上下文描述信息,如果將各數據源的元數據按照一個統一的標準提取出來集中存放在一個元數據庫中,將集成的元數據信息與用戶建立的用戶模式的相應字段進行關聯,就能夠通過解析用戶模式得到對應的各數據源數據信息;將獲得的各數據源查詢結果進行連接、合并等操作,并按用戶模式進行輸出,就能夠實現數據的共享和整合。根據以上分析,課題組提出了基于元數據的蛋白質組學數據資源共享與整合方案,并在此基礎上已經實現了針對關系數據庫中各異域異構的源數據庫中的元數據信息集成到CWM的元倉庫模型中。但是元倉庫的管理員并不能控制源數據庫(以下的源數據庫均為關系數據庫)中的元數據的變化,如果源數據庫的元數據信息發生了改變,而元倉庫不能進行及時更新同步的話,就有可能造成元數據的懸掛,對用戶的查詢結果產生不可估量的影響。如何捕獲源數據庫中的結構變化信息,并將該元數據追加到元數據倉庫中去,成為解決問題的重點。

1 現有同步策略的分析與選擇

目前關于數據同步策略的研究大多針對數據庫中數據的變化,而不是針對源數據庫結構的變化,但其思想可以借鑒。數據同步的基礎是對象變化捕獲,它直接決定了數據同步的更新方式和選時方式。變化捕獲不僅要獲得復制對象的變化序列或當前映像,還要在對等式復制時提供盡可能詳細的控制信息。通過對當前使用捕獲方法的綜合分析,目前主要有6種基本變化捕獲形式,它們是:基于快照法;基于觸發器法;基于日志法;基于API法;影子表法;變更軌跡表法。由于基于快照發、影子表法和變更軌跡法的核心思想是變化后的數據庫信息與原數據庫信息進行比較,最終得出變化的結果,這種方法效率比較低下,而且主流的數據庫管理系統并沒有提供關于數據庫結構的快照信息,因此這三種方式不太適合對數據庫結構變化的捕捉;基于API法主要適用于小型的非關系型的數據庫,并且其是無法捕捉到的那些不經過API的操作;基于觸發器法和基于日志法這兩種方法運行的效率和通用性都比較高,但基于日志法的實現方法相對而言更加復雜。在綜合分析上述6種方法的基礎上,考慮到目前課題組主要考慮關系數據庫的集成,并且各主流的RDBMS如SQL Server,Oracle,MySQL,DB2等都提供了DDL(該觸發器主要在響應數據定義語言語句時執行存儲過程)的觸發器,這里選擇基于觸發器法來捕獲數據庫結構的變化信息。這樣可以利用DDL觸發器來捕捉類似“用戶建立新表”這類結構變化操作。

2 基于DDL觸發器的元數據同步策略設計

經過以上分析,最終設計了一個基于DDL觸發器的元倉庫與源數據庫的元數據信息同步策略,其基本思想如圖1所示。該方法首先通過各關系數據庫的DDL觸發器捕獲到其元數據的變化信息并保存到源數據庫結構變化信息表中,當元倉庫的管理者向各數據源發送同步請求時,將信息表中的信息經過SQL語句清理緩沖器整理后,通過網絡傳送到管理元倉庫的服務器中,元倉庫服務器最終經過詞法分析器將源數據庫的結構變化信息更新到元倉庫中。

圖1 元倉庫與源數據庫的元數據信息同步的流程圖

2.1 DDL觸發器介紹

DDL觸發器是一種特殊的觸發器,它在響應數據定義語言(DDL)語句時觸發。它們可以用于在數據庫中執行管理任務,例如,審核以及規范數據庫操作。使用DDL觸發器,可以達到以下幾種目的:第一,要防止對數據庫架構進行某些更改。 第二,希望數據庫中發生某種情況以響應數據庫架構中的更改。 第三,要記錄數據庫架構中的更改或事件。與標準的DML觸發器一樣,DDL觸發器在響應事件時執行存儲過程。 但與標準的DML觸發器不同的是,它們并不在響應對表或視圖的UPDATE,INSERT或DELETE語句時執行存儲過程。 它們主要在響應數據定義語言(DDL)語句執行存儲過程。 這些語句包括 CREATE,ALTER,DROP,GRANT,DENY,REVOKE和UPDATE STATISTICS等語句,然而這些語句正是引起源數據庫的元數據信息改變的操作,所以通過DDL觸發器就能夠方便地獲得源數據庫的結構變化信息。

2.2 源數據庫變化捕捉器的設計

首先根據源數據庫不同的DBMS編寫相應的模塊,通過該模塊調用DDL觸發器,將源數據庫中的結構變化的信息保存到源數據庫結構變化信息表中。以關系數據庫中的SQLServer為例,可以通過在其內部建立DDL觸發器捕獲捕獲其的結構變化信息,例如:特定數據庫中某些表的信息變化,表的刪除、添加和表的屬性字段的更新等,都可以通過DDL觸發器捕獲到。在數據庫中建立好一個DDL觸發器后,調用SQLServer系統自帶的函數 ChangeCatch(),就可以捕獲有關激發 DDL 觸發器的事件的信息,并將其保存到ChangeInfor日志表中。但是ChangeCatch()函數捕捉到的是xml 值,而這里需要的是SQL腳本,因此要采用以下的命令對其進行解析:

SET@cmd=LTRIM(RTRIM(REPLACE(@cmd,″,″)))

這樣當對源數據庫進行修改時,DDL觸發器就會將修改的信息捕捉,并保存到數據庫的ChangeInfor的數據庫結構變化信息表中。下面的數據,是通過以上方法在SQLServer數據庫中捕獲到的結構變化信息的SQL腳本,其結果如圖2所示。

圖2 源數據庫結構變化信息表

以上的示例展示了該方法在關系數據庫SQLServer中的實現方法,在其他的關系數據庫中,也可以效仿上面的方法,實現數據庫結構信息變化的捕獲,這里不再贅述。

2.3 SQL語句清理緩沖器的設計

由DDL觸發器捕獲的數據庫的結構變化信息是將源數據庫中所有的結構變化信息,都以SQL語句的形式存儲到相應的表格信息中。由于這些信息沒有經過篩選和清理,因此這些數據信息是雜亂無章的,如果直接用這些數據信息對元倉庫進行更新的話,有可能會造成一些操作的冗余和無效的操作,浪費元倉庫服務器的資源。例如:在一個源數據庫中,由于某種需要,對庫中的某個表格A的結構進行了一些相應的改動后,DBA又將該表刪除。那么無疑DDL觸發器會將對表格A的改動操作和刪除操作的SQL語句都進行了保存,如果直接通過DDL觸發器得到的信息與元倉庫中的元數據進行同步一致的話,那么原來對表A的修改操作,使得在元倉庫中相應的元數據也應進行修改。毋庸置疑這些操作基本上對元倉庫的最終結構來說是無用的。因為最終該表在源數據庫中被刪除。以上這種情況在源數據庫與元倉庫的一致性過程中還有很多。為了避免這些無用的操作,這里設計一個源數據庫的SQL緩沖清理器。設計的基本原則是:首先將DDL觸發器捕捉到的源數據庫的變化信息保存到一張臨時的信息表中,當元倉庫的管理者向源數據庫提出獲得變化信息的請求時,先對這些信息進行清理,拿上面表A的例子來說,通過緩沖清理器的分析處理之后,只需要最終把表A刪除的信息傳送到元倉庫的服務器的相應模塊中進行處理即可。這樣不但解決了元倉庫更新時無效操作等問題,還減少了網絡間數據的傳送量。源數據庫結構變化捕捉器的總體結構如圖3所示。

圖3 源數據結構變化捕捉器的總體結構圖

2.4 元倉庫更新的設計

當元倉庫的管理者決定對元倉庫進行更新時,首先通過Internet獲得源數據庫的結構變化信息,然后利用語法分析器對這些結構變化的SQL語句進行語法分析,提取變化的元數據,對元倉庫進行相應修改。一般與關系數據庫結構變化相關的SQL語句主要有表1所列情況。

表1 SQL的數據定義語句

操作對象操作方式

創建刪除修改

模式Create SchemaDrop Schema

表Create TableDrop TableAlter Table

視圖Create ViewDrop View

索引Create IndexDrop Index

SQL通常不提供修改模式定義、修改視圖定義和修改索引定義等操作。用戶如果想修改這些對象,只能先將他們刪除掉,然后再進行重建。此外,SQL語言用Alter Table 語句修改基本表,修改的內容一般有以下幾種情況:

Alter Table <表名>

添加:[ ADD <新列名> <數據類型> [完整性約束] ]

刪除:[ Drop Column <列名> <完整性約束名> ]

修改:[ Alter Column <列名> <數據類型> ]

故此,只需設計語法分析器,分析上述SQL語句,一種結構變化對應一個模塊函數。提取函數是按照SQL腳本的BNF范式進行提取的。例如,當語法分析器分析得到某條SQL語句中包含“Create Table”,則自動調用CreateTable(),將此新建的表及其所屬的內容的元數據信息提取出來,并把這些元數據信息轉換成元倉庫中對應類的對象。其他的操作方式也是通過類似的方法,遇到Drop時調用刪除模塊進行提取,遇到Alter時則需要根據其對表的不同的操作,采取不同的應對措施。

當元數據提取完畢并通過完整性檢查后,元數據以對象的形式存在于緩存模塊中,根據元數據的更新情況將其分成兩組,一組為需要添加的元數據,另一組為需要刪除的元數據。由于修改操作被分成了刪除和添加兩部分,為了避免添加過程的冗余,先對元倉庫中的元數據進行刪除,然后再進行添加。元倉庫的更新流程如圖4所示。

圖4 元倉庫更新流程圖

為了更好地支持數據信息的查詢,在元倉庫中的元數據上建立了用戶模式和語義元數據,因此在元數據刪除的過程中要對其進行判斷是否建立了映射關系,如果已經建立了映射關系的則提示映射關系的建立者該元數據已經不存在,然后再將元數據刪掉。

元數據之間存在若干依賴性(或稱相關性),它們制約著元數據提取與導入的先后順序:被依賴的元數據必須先于依賴的元數據進行提取與導入。因此將要添加的元數據分成兩類:基本元數據和相關元數據。因此導入的時候需要分成兩步,第一步首先向平臺元數據庫導入基本元數據,即各種實體類的對象,遍歷每種實體類的實體對象(實現時用鏈表管理),將其依次導入平臺元數據庫。第二階段待所有基本元數據導入完成后,便可以導入相關元數據,即通過遍歷每種關聯類的關聯對象(實現時用關聯對象中的引用屬性管理)依次導入平臺元數據庫。這種導入順序確保了導入相關元數據時平臺元數據庫中已經存放了該數據可能用到的基本元數據,有效解決了元數據相關性問題。經過以上過程,最終達到了元倉庫與源數據庫的元數據的同步。

3 結 語

本文給出了在當源數據庫的結構發生變化時,如何對相應的元倉庫中的元數據進行更新的方法,并解決了因此種情況而引起的元數據懸掛的問題。課題組的最終目的是:通過本體標注元數據和用戶模式的形式對各源數據信息進行智能化的查詢。通過本體標注元數據后,元倉庫發生變化時,智能地解決本體標注和用戶模式懸掛的問題也在考慮解決中,相關工作會在后續的文章中介紹。

參考文獻

[1]黎建輝,佘懷化,閻保平.基于元數據的關系數據庫語義集成方法[J].計算機工程,2008,34(6):54-56.

[2]林毅,寧洪,王挺,等.基于元數據的數據整合平臺的設計與研究[J].計算機應用,2008(S2):69-71.

[3]劉文杰,寧洪,王挺,等.面向蛋白質組學數據庫的元數據提取與導入工具[J].計算機工程與科學,2009(23):40-42.

[4]OMG. Common warehouse metamodel specification version 1.0[R/OL]. [2003-04-01]. http://www.omg.org/docs.

[5]OMG. XML metadata interchange specification version 1.1[R/OL]. [2001-06-01]. http://www.omg.org/ cgi-bin.

[6]OMG. Meta Object Facility Specification version1.4. http://www.omg.org/docs/formal/00-04-03.pdf.

[7]郭超,寧洪,王挺,等.基于元數據的異構生物數據源集成技術研究[C]//2008年中國高校通信類院系學術研討會論文集.北京:國防工業出版社,2008.

[8]丁建華,彭政,王飛.生物數據倉庫研究及應用[J].計算機工程與應用,2005,12(5):192-194.

[9]林毅,寧洪,王挺,等.基于本體的生物信息集成研究[C]//第五屆中國軟件工程大會論文集.北京:華北計算技術研究所,2008:16-18.

[10]蔣敏.基于網絡隔離的異構數據庫同步技術的研究與實現[D].杭州:浙江大學,2005.

[11]沈敏,許華虎,季永華,等.基于XML的分布式異構數據庫數據同步系統的研究[J].計算機工程與應用,2005(5):184-186.

[12]者敬.開放式異構數據庫復制框架的研究與實現[D].北京:中國科學院軟件研究所,2002.

[13]楊正洪,鄭齊健,孫延輝.中文SQL Server 2000關系數據庫系統管理和開發指南[M].北京:機械工業出版社,2001.

主站蜘蛛池模板: 精品偷拍一区二区| 国产亚洲男人的天堂在线观看| 成年人国产网站| 国产波多野结衣中文在线播放| 午夜性爽视频男人的天堂| 中文字幕乱码二三区免费| 99久久国产综合精品2023| 欧美午夜久久| 日韩123欧美字幕| 亚洲视频在线网| 国产偷倩视频| 欧美精品啪啪| 免费女人18毛片a级毛片视频| 亚洲无码高清视频在线观看| 成人另类稀缺在线观看| 高潮爽到爆的喷水女主播视频| 成人国内精品久久久久影院| 色天天综合久久久久综合片| 拍国产真实乱人偷精品| 天天爽免费视频| 伊人精品视频免费在线| 天堂网亚洲综合在线| 丁香五月激情图片| 欧美另类精品一区二区三区| 国产人成午夜免费看| 欧美成人精品在线| 无码日韩人妻精品久久蜜桃| 亚洲一级毛片免费观看| 亚洲色图欧美一区| 国产精品久久久久久久伊一| 久久精品人人做人人爽电影蜜月 | 中文字幕波多野不卡一区| 亚洲精品无码高潮喷水A| 色悠久久综合| 毛片视频网| 无码有码中文字幕| 国产成人亚洲欧美激情| 99精品在线视频观看| 国产h视频在线观看视频| 亚洲一区二区三区国产精品 | 免费在线播放毛片| 国产免费看久久久| 国产99视频免费精品是看6| 538国产视频| 免费中文字幕一级毛片| 亚洲欧美另类日本| 欧美三級片黃色三級片黃色1| 日本午夜三级| 少妇露出福利视频| 丝袜亚洲综合| 国产精品99久久久久久董美香| 亚洲浓毛av| 久草性视频| 中文字幕1区2区| 91丝袜乱伦| 午夜福利无码一区二区| 国产成人三级在线观看视频| av在线手机播放| 国内精品久久久久久久久久影视| 欧美人与牲动交a欧美精品| 国产日本欧美亚洲精品视| 国产原创第一页在线观看| 99久久99视频| 福利一区在线| 国产xxxxx免费视频| 青青青视频蜜桃一区二区| 男女性色大片免费网站| 久久综合五月| 精品视频在线一区| 亚洲天堂啪啪| 国产精品成人免费综合| 亚洲人成影院午夜网站| 欧美一级一级做性视频| 亚洲国产日韩欧美在线| 国产在线精彩视频二区| 国产欧美性爱网| 国产一区二区免费播放| 狠狠色香婷婷久久亚洲精品| 日本免费a视频| 国产青榴视频| 国产亚洲精品97在线观看| 久久久久久久久亚洲精品|