關(guān)于多數(shù)據(jù)庫系統(tǒng)互聯(lián)機(jī)制的計(jì)算機(jī)論文(2)
關(guān)于多數(shù)據(jù)庫系統(tǒng)互聯(lián)機(jī)制的計(jì)算機(jī)論文篇二
《多媒體數(shù)據(jù)庫的互聯(lián)機(jī)制與策略算法》
摘 要:多媒體數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫研究領(lǐng)域的熱點(diǎn)之一。主要介紹了多媒體數(shù)據(jù)庫DM3及DM3數(shù)據(jù)庫系統(tǒng)間的信息共享機(jī)制,探索了多個(gè)DM3數(shù)據(jù)庫系統(tǒng)間的信息共享的策略算法。
關(guān)鍵詞:多媒體數(shù)據(jù)庫;DM3;聯(lián)邦數(shù)據(jù)庫;數(shù)據(jù)字典
1 多媒體數(shù)據(jù)庫定義
多媒體數(shù)據(jù)庫MMDB(Multimedia Database)是由若干多媒體對象所構(gòu)成的集合,這些數(shù)據(jù)對象按一定的方式被組織在一起,可為其他 應(yīng)用共享。
2 多媒體數(shù)據(jù)庫管理系統(tǒng)DM3
2.1 DM3簡介
DM3是由達(dá)夢公司生產(chǎn)的具有我國自主版權(quán)的分布式多媒體數(shù)據(jù)庫管理系統(tǒng)。能將多媒體信息(如聲音、文字、圖形、圖像等)、地理信息等復(fù)雜對象視同常規(guī)數(shù)據(jù)一樣進(jìn)行一體化地定義、存儲(chǔ)和處理。我們利用該平臺(tái)提供的各種功能,能夠方便、高效地建立復(fù)雜的多媒體信息管理系統(tǒng)。
DM3采用創(chuàng)混合數(shù)據(jù)類型,擴(kuò)展的多媒體和GIS數(shù)據(jù)類型等技術(shù),成功實(shí)現(xiàn)了空間數(shù)據(jù)、多媒體數(shù)據(jù)與常規(guī)數(shù)據(jù)的一體化定義、存儲(chǔ)和管理,在空間信息和多媒體信息管理方面具有明顯優(yōu)勢。
2.2 DM3的特性及主要關(guān)鍵技術(shù)
2.2.1 DM3的特性
(1)跨平臺(tái)的分布式系統(tǒng):DM3是分布式數(shù)據(jù)庫管理系統(tǒng),能夠在多種操作系統(tǒng)上運(yùn)行,DM3分布管理的實(shí)現(xiàn)依賴于DM3全局?jǐn)?shù)據(jù)字典、客戶/服務(wù)器接口、分布數(shù)據(jù)管理及服務(wù)器/服務(wù)器接口等。
(2)DM3支持開放互連接口:ODBC開放數(shù)據(jù)庫互連,定義了所有的數(shù)據(jù)庫系統(tǒng)公用的函數(shù)接口和SQL語法,基于ODBC的應(yīng)用程序可實(shí)現(xiàn)與具體的DBMS無關(guān)。
(3)支持多媒體和地理信息系統(tǒng)功能:
DM3能夠直接管理和處理多媒體信息,實(shí)現(xiàn)了地理信息的分段存儲(chǔ)。
(4) 利用網(wǎng)絡(luò)索引技術(shù)實(shí)現(xiàn)地圖的空間檢索。
2.2.2 主要關(guān)鍵技術(shù)
(1)多線程調(diào)技術(shù): DM3核心系統(tǒng)采用了先多線程調(diào)度技術(shù)。
(2)事務(wù)管理與并發(fā)控制技術(shù): DM3采用的是基于消息通信的多線程客戶/服務(wù)器模型。
(3)查詢優(yōu)化及索引技術(shù):DM3實(shí)現(xiàn)了邏輯優(yōu)化和物理優(yōu)化,采用了性能優(yōu)良的Bn樹索引技術(shù),可以充分利用空間,提高系統(tǒng)的效率。
(4)動(dòng)態(tài)模式修改及空值處理技術(shù):
1)動(dòng)態(tài)模式修改:DM3允許在一個(gè)站點(diǎn)建立任意多個(gè)模式,且可以隨時(shí)增加、隨時(shí)刪除;
2)空值處理:在元組前留(基表屬性個(gè)數(shù)/8)個(gè)前導(dǎo)字節(jié),每一個(gè)二進(jìn)制位對應(yīng)基表的一個(gè)屬性。
(5)DM3存儲(chǔ)過程/函數(shù)機(jī)制:是一種技術(shù),它是執(zhí)行DM3 SQL過程語言的一種機(jī)器.允許用戶使用DM3提供的SQL過程語言創(chuàng)建過程和函數(shù),避免重復(fù)編碼,提高生產(chǎn)率。
(6)DM3異構(gòu)數(shù)據(jù)庫連接技術(shù):DM3提供的ODBC驅(qū)動(dòng)程序、JDBC驅(qū)動(dòng)程序解決了與其它DBMS及通用工具軟件的接口,從而實(shí)現(xiàn)了支持異構(gòu)數(shù)據(jù)庫之間的互操作。
(7)DM3智能報(bào)表工具:DM3智能報(bào)表工具是以DM3 ODBC驅(qū)動(dòng)程序和數(shù)據(jù)倉庫技術(shù)為基礎(chǔ),支持異構(gòu)平臺(tái),支持異構(gòu)數(shù)據(jù)庫之間的互操作,便于報(bào)表數(shù)據(jù)統(tǒng)計(jì)和輔助決策。
2.3 DM3系統(tǒng)的體系結(jié)構(gòu)
DM3采用了基于消息通信的客戶/服務(wù)器總體模型。在這種結(jié)構(gòu)中,一般包含一臺(tái)或多臺(tái)檔次較高的小型機(jī)或工作站作為服務(wù)器,他們互相協(xié)作來完成客戶對數(shù)據(jù)庫的各種請求,用戶的應(yīng)用程序、DM3提供的各種工具集(交互式ISQL、預(yù)編譯系統(tǒng)、ODBC接口、JDBC接口、安裝工具、)運(yùn)行在檔次較低的客戶機(jī)上,客戶機(jī)與服務(wù)器之間、服務(wù)器與服務(wù)器之間通過網(wǎng)絡(luò)聯(lián)接。極端情況下,當(dāng)網(wǎng)絡(luò)系統(tǒng)中的每一臺(tái)機(jī)器都既是服務(wù)器,又是客戶機(jī)時(shí),DM3系統(tǒng)即演化為一個(gè)典型的分布式數(shù)據(jù)庫管理系統(tǒng)。
3 DM3互聯(lián)機(jī)制
分布式數(shù)據(jù)庫管理系統(tǒng)的工作流程是:客戶機(jī)登錄到一臺(tái)服務(wù)器上,這臺(tái)服務(wù)器便成為它的代理服務(wù)器;它接收來自客戶機(jī)的消息,然后根據(jù)全局?jǐn)?shù)據(jù)字典決定是自己獨(dú)立完成該操作,還是與其它服務(wù)器協(xié)作處理這條消息,處理完成之后,再由代理服務(wù)器將處理結(jié)果返回給客戶機(jī)。
4 算法
為了使協(xié)調(diào)器正常工作,我們對底層數(shù)據(jù)庫管理系統(tǒng)DM3進(jìn)行了修改。在基表控制塊TV_CTRL_BLOCK中增加一項(xiàng)IsReplication。建表時(shí),該項(xiàng)初始化為false;當(dāng)為該表建立一個(gè)副本時(shí),該項(xiàng)賦值為true。具體算法如下。
4.1 初始化算法
4.1.1 協(xié)調(diào)器:
?、購挠脩艋驊?yīng)用程序接收待連接的兩個(gè)系統(tǒng)中的服務(wù)器名,需復(fù)制的表名;②分別登錄到兩個(gè)系統(tǒng)的服務(wù)器上;③向存有待復(fù)制表的服務(wù)器發(fā)預(yù)復(fù)制消息;④等待服務(wù)器消息;⑤若失敗,發(fā)一條失敗的消息給服務(wù)器和用戶或應(yīng)用程序,轉(zhuǎn)11);⑥ 若成功,從消息中取出待復(fù)制表的有關(guān)信息,根據(jù)這些信息,發(fā)一條建表消息給另一個(gè)系統(tǒng)的服務(wù)器;⑦等待服務(wù)器消息;⑧ 若失敗,發(fā)一條失敗的消息給服務(wù)器和用戶或應(yīng)用程序,轉(zhuǎn)11; ⑨若成功,調(diào)數(shù)據(jù)轉(zhuǎn)移程序,進(jìn)行數(shù)據(jù)復(fù)制 ;⑩將有關(guān)信息寫入組間字典;?B11?退出。
4.1.2 服務(wù)器
當(dāng)服務(wù)器收到預(yù)復(fù)制消息后,將基表控制塊TV_CTRL_BLOCK中的IsReplication賦為true。同時(shí),取出待復(fù)制表的有關(guān)信息,組成應(yīng)答消息發(fā)給協(xié)調(diào)器。當(dāng)服務(wù)器收到失敗的消息后,將基表控制塊TV_CTRL_BLOCK中的IsReplication賦為false。
4.2 維護(hù)算法
4.2.1 協(xié)調(diào)器
(1)從組間字典讀出相關(guān)信息,根據(jù)這些信息,登錄到相應(yīng)系統(tǒng)上;
(2)等待消息;
(3)從某系統(tǒng)的服務(wù)器上收到一條修改消息后,通過查找組間字典,確定該消息的目的地,然后將它轉(zhuǎn)發(fā)過去;
(4)若失敗,定時(shí)重發(fā),轉(zhuǎn)2.
4.2.2 服務(wù)器:
(1)等待消息;
(2)當(dāng)收到某客戶或應(yīng)用程序的消息后,檢查它是否是修改數(shù)據(jù)的操作(如delete,update或insert等);
(3)若不是,轉(zhuǎn)7;
(4)若是,檢查基表控制塊TV_CTRL_BLOCK中的IsReplication是否為true;
(5)若不是,轉(zhuǎn)7;
(6)若是,向協(xié)調(diào)器發(fā)修改消息;
(7)繼續(xù)執(zhí)行服務(wù)器程序的其它部分。
4.3 恢復(fù)算法
若協(xié)調(diào)器所聯(lián)接的系統(tǒng)中有一個(gè)跨掉了,則對副本的修改無法及時(shí)地反映到跨掉的系統(tǒng)中來這時(shí),需要恢復(fù)算法來進(jìn)行處理。
協(xié)調(diào)器:當(dāng)協(xié)調(diào)器發(fā)現(xiàn)有一個(gè)系統(tǒng)已經(jīng)崩潰后,采取以下步驟
(1)將與該系統(tǒng)相關(guān)的變量open賦值為false;
(2)打開記時(shí)器;
(3)等待消信;
(4)若收到的消息是其它系統(tǒng)發(fā)出的修改崩潰了的系統(tǒng)上的副本的命令,則依次將這些消息存儲(chǔ)起來,轉(zhuǎn)3);
(5)若收到的消息是記時(shí)器發(fā)出的時(shí)間到的消息,則向崩潰的系統(tǒng)發(fā)登錄命令;
(6)若登錄成功,將open的值改為true;
(7)將存儲(chǔ)的消息依次發(fā)送過去,轉(zhuǎn)9;
(8)若登錄失敗,轉(zhuǎn)3;
(9)退出。
5 結(jié)論
我們曾在三個(gè)DM3數(shù)據(jù)庫系統(tǒng)上,用兩個(gè)協(xié)調(diào)器進(jìn)行聯(lián)接,運(yùn)行情況良好,各副本最終都能保證一致,且各副本間存在差異的時(shí)間間隔很短。另外,在出現(xiàn)異常的情況下,協(xié)調(diào)器也能正常工作。
數(shù)據(jù)庫管理系統(tǒng)DM3在數(shù)據(jù)模型、安全技術(shù)、智能報(bào)表等方面具有創(chuàng)造性,在總體設(shè)計(jì)和技術(shù)上處于國內(nèi)領(lǐng)先地位,實(shí)現(xiàn)了數(shù)據(jù)分布和站點(diǎn)的透明性,其通用性、開放性設(shè)計(jì)使DM3可以與oracle、sybase、SQLserver等流行DBMS互連互訪或共存于一個(gè)系統(tǒng)中,符合國家/國際標(biāo)準(zhǔn)的DBMS,為國產(chǎn)DBMS替代進(jìn)口產(chǎn)品奠定了基礎(chǔ)。
參考文獻(xiàn)
[1]?周龍?bào)J.分布式數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)技術(shù)[M].北京: 科學(xué) 出版社.
[2]?王珊.數(shù)據(jù)倉庫技術(shù)與聯(lián)機(jī)分析處理[M].北京:科學(xué)出版社.
[3]?多李瑞軒,盧正鼎.媒體數(shù)據(jù)庫系統(tǒng)原理與技術(shù)[M].北京: 電子 工業(yè) 出版社.
[4]?湯庸,彭重嘉,區(qū)海翔.多媒體數(shù)據(jù)庫與 網(wǎng)絡(luò) 應(yīng)用[M].北京:人民郵電出版社.
關(guān)于多數(shù)據(jù)庫系統(tǒng)互聯(lián)機(jī)制的計(jì)算機(jī)論文相關(guān)文章:
1.關(guān)于計(jì)算機(jī)數(shù)據(jù)庫運(yùn)用方面的論文
2.關(guān)于計(jì)算機(jī)數(shù)據(jù)庫技術(shù)的論文