基本信息
聯邦資料庫技術的提出就是為了實現對相互獨立運行的多個資料庫的互操作。通常稱相互獨立運行的資料庫系統為單元資料庫系統。所謂聯邦資料庫系統是一組彼此協作且又相互獨立的單元資料庫系統的集合。它將單元資料庫系統按不同程度進行集成。對該系統提供整體控制和協同操作的軟體叫聯邦資料庫管理系統。它允許資料庫管理人員定義數據子集,這些子集統一形成一個虛擬資料庫,提供給聯邦系統內的其他用戶使用。
聯邦資料庫系統(FDBS)是一個彼此協作卻又相互獨立的單元資料庫(CDBS)的集合,它將單元資料庫系統按不同程度進行集成,對該系統整體提供控制和協同操作的軟體叫做聯邦資料庫管理系統(FDBMS),一個單元資料庫可以加入若干個聯邦系統,每個單元資料庫系統DBMS的可以是集中式的,也可以是分散式的,或者是另外一個FDBMS。
聯邦資料庫的體系結構如下圖所示。
分類
聯邦資料庫系統是多資料庫系統中的一種。對多資料庫系統,可以依據其設計、通信和執行的不同將其分類。多資料庫系統設計的不同體現在部件資料庫系統選擇它自己的設計方案的能力,包括選擇被管理的數據、選擇數據的表達、語義,限制、操作和共享方式和選擇實現方法通信的不同體現在部件資料庫管理系統決定是否要跟其他部件資料庫管理系統通信的能力執行的不同體現在部件資料庫管理系統不受外部操作的干擾而執行局部操作的能力和決定執行外部操作的次序的能力下圖是關於分類的示意圖:
圖中的非聯邦資料庫系統(nonfederated database system)是非自治的部件資料庫管理系統的集成,它僅具有一層管理,所有的操作被統一地執行,不區分局部的非局部的用戶例如,僅具有單一的全局模式(schema)的分散式資料庫系統即屬於此類。
聯邦資料庫由自治的而且參於聯邦的部件資料庫系統組成,該聯邦允許部分地且有控制地共享它們的數據聯邦資料庫系統支持兩種類型的操作局部的和全局的或稱聯邦的全局操作使用聯邦資料庫管理系統訪問數據,並且可以涉及由多個部件資料庫系統管理的數據部件資料庫系統必需提供訪問它管理的數據的授權局部操作被直接提交給某個部件資料庫系統,它僅涉及在這個部件資料庫系統中的數據。
基於怎樣集成聯邦和由誰來管理聯邦,即根據構成聯邦的各成員資料庫之間的禍合程度,可以把聯邦資料庫系統分為松禍合型和緊禍合型。如果由用戶負責建立和維護聯邦,而且不存在由聯邦系統和它的管理員實施的控制,則聯邦資料庫系統是松禍合的如果聯邦和它的管理員負責建立和維護聯邦,並且主動地控制對部件資料庫的存取,則聯邦資料庫系統是緊禍合的。
緊耦合數據集成方法與緊耦合型FDBS
緊密耦合的資料庫集成方法建立在資料庫模式集成之上。它通過定義一個概念模型或元模型來實現聚合,將各套用系統的組件資料庫模式轉換到一個統一的模式上,這樣建立的集成系統具有一個集成的全局模式,就像一個單一資料庫一樣。
緊密耦合方法的優點在於它允許用戶像使用一個集中的資料庫一樣透明的訪問各異構的、自治的、分布的資料庫,數據的集成度較高。缺點是實現這一方法花費巨大每當現存的組件資料庫模式發生變化或一個新的組件資料庫加入到系統中,就必須重新生成一次全局模式,使得維護全局模式十分困難。在緊耦合型FDBS中,聯邦是由聯邦機構和其管理員負責創建和維護的,並且主動控制對成員資料庫的訪問,這種方法也稱為公共數據模型語言方法,它通過模式集成構造出聯邦模式,通過數據字典來管理聯邦模式。各成員都有一個輸出模式,表示可以提供給聯邦使用的數據子集。聯邦模式是集成多個輸出模式後形成的,它提供了定位、複製和分布透明性。透明性由在聯邦模式和輸出模式之間的映射管理,聯邦用戶以典型的查詢語言來查詢,他會覺得自己好象在單個系統中訪問,而松耦合型則沒有這種功能。
松耦合數據集成方法與松耦合型FDBS
鬆散耦合的異構資料庫集成方法將集成的任務交給用戶,集成系統提供一套工具,使用戶能使用工具來完成集成的工作。如,要集成一組件資料庫,用戶可使用工具將該組件的資料庫的內容和結構加入到集成系統即可。
鬆散耦合方法對數據的集成度不高,但更新組件資料庫時非常靈活,繼承系統不許維護一個全局模式而且對原有套用系統不必加以任何改造,各套用系統可在原模式下運行,自治度高。它的缺點是對用戶的要求較高用戶必須了解組件資料庫的內容和結構,且用戶的負擔較重。當組件資料庫數量不斷增長時,用戶實質上仍然無法了解與完全查詢所需的所有組件資料庫的相關知識。
在松耦合型FDBS中,聯邦由聯邦用戶負責創建和維護,聯邦系統及其管理員沒有控制能力。松耦合FDBS沒有集中的數據字典,各成員之間的信息共享和交換通過輸入輸出模式(import/export schema)來表達。由於存在著模式的差異,對於個成員資料庫,需要構造。個成員間的翻譯器。松耦合型的優點包括用戶能準確地指明輸出模式中各個對象間聯繫或映射可以支持多語義性,這在聯邦用戶的需求經常變化時是很有效的。但是,松耦合型也有以下缺點沒有全局系統控制沒有定位、分布、複製透明性不適合更新操作,其更新會破壞數據完整性。
兩種集成方法的適用條件
緊密耦合方法適用於組件資料庫較多,其數據變動不是很頻繁的環境而鬆散藕合方法則要求有較高水平的用戶或者用戶有資料庫專家的支持才一行。具體使用哪一種方法,取決於被集成的各套用系統組件資料庫的數量、異構程度、穩定程度及用戶的套用水平等。
特徵
聯邦資料庫系統FDBS最重要的特徵就是:一個單元資料庫系統在繼續本地操作的同時可以參加聯邦系統的活動。單元DBS的集成可以由聯邦系統的用戶來管理,也可由聯邦系統的管理員和單元DBS的管理員來共同管理,整體系統集成的程度取決於聯邦系統用戶的要求、取決於加入聯邦系統並共享聯邦系統資料庫的單元的管理員的要求。包含多種資料庫系統的,其特徵還體現在分布性、異質性、獨立性和透明性這四個方面。
分布性
數據可按不同方式在多個資料庫之間分布,而且這些資料庫可能存儲在單個或多個計算機系統中。這些系統可能在同一物理場地,也可能處於以通信系統相連的地理分布的場地,這些資料庫可通過通信系統關聯。FDBS的大部分數據分布問題,是由於在FDBS構造之前,已存在多個分散的DBS而造成的。
異質性
許多類型的異質來源於技術上的不同,如硬體、系統軟體和通訊系統的不同。資料庫系統的異質性可以分為以DBMS的不同而引起的異質和以語義的不同而引起的異質兩類。DBMS的異質是由於不同的數據模型提供不同的結構基元或者支持不同的約束條件,以及查詢語言不同。數據模型有三個要素數據結構、數據操作和完整性約束,這三方面的不同都可以導致異構。DBMS在系統方面的不同也會導致異構。系統級異構的例子有事務管理原語和技術包括並發控制、提交協定和恢復等,硬體和系統軟體以及通信功能的不同等。當對數據意義的理解、解釋和對相同或相關數據的用意產生差別時,就會導致語義異構。語義異構主要體現在以下三種情況名字衝突、標量衝突、數據類型和長度精度不同、結構差異等。異質性是各數據源之間的差異程度。數據源在許多方面可以不同。它們可以運行在不同的硬體上,可以使用不同的網路協定,以及使用不同的軟體來管理它們的數據存儲。它們可能具有不同的查詢語言、不同的查詢能力甚至不同的數據模型。它們處理錯誤的方式可能不同,或者提供不同的事務語義。聯邦資料庫需要容納所有這些差異,將上述這些系統封裝在一個無縫的透明聯邦體中。
獨立性
管理不同DBS組織實體通常都是獨立的,主要表現在以下四點。
設計獨立。單元DBS在數據管理、數據元素表達、數據的概念化和語義解釋、數據管理的約束條件、系統功能、同其他系統的關聯和共享、以及工具等方面涉及資助。
通訊獨立。單元DBMS決定是否同其他DBMS通訊,及何時和怎樣回答其他的請求。
執行獨立。單元DBMS執行本地操作而不受外部干擾,以及決定外部操作執行順序的能力。
相關獨立。單元DBS決定是否同其他系統共享其功能和資源以及在多大程度上共享。包括同聯邦關聯或解除關聯的能力及單元加入一個或更多聯邦的能力。
透明性
聯邦系統是透明的,它對用戶掩蓋了底層數據源的差異、特質和實現。最理想的情況是,它使一組聯邦數據源對用戶而言像是一個系統。用戶應該無需知道數據存儲在哪裡位置透明;無需知道數據源支持何種語言或編程接口調用透明如果使用,無需知道數據源支持哪種語支語言透明;不需要知道數據是以哪種物理方式存儲的,或者數據是否被分區和或被複製物理數據獨立性、分段和複製透明性或者無需知道使用何種網路協定網路透明性。用戶應該看到一個統一的接口,包括單一的一組錯誤代碼錯誤代碼透明性。
體系結構
下圖所示是聯邦資料庫系統的參考結構,它將處理程式劃分為四類—每一類都針對數據操作命令和訪問的數據完成不同功能,並為了處理FDBS的分布性,異質性和獨立性,提出了不同於集中式的標準三級模式結構模式、內模式、外模式的五級模式結構。由圖可知,FDBS的系統結構由5級模式組成,稱為5級模式結構。這些模式與相應的處理器有機的相結合,構成一個完整的聯邦式系統。從圖可以看出,聯邦模式是聯邦式資料庫系統的核心,它既是多個成員庫輸出模式的集成,又是各外部模式的基礎,為了進一步理解FDBS的系統結構,下面分別對個處理器的功能及各模式的含義作簡要說明。
處理器
處理器是用來操作命令和處理數據的軟體模組。各種數據管理結構的差別在於所能提供的處理器類型和它們之間的關係不同。一般有四種類型的處理器轉換處理器、過濾處理器、構造處理器、存取處理器。每類對數據操作命令和數據進行不同的處理。
轉換處理器
轉換處理器把一種語言源語言的命令,轉換成另一種語言目標語言的命令,或是將數據由一種格式源格式轉換成另一種格式目標格式。轉換處理器能夠提供一種稱為數據模型透明性的數據獨立性。通過它,使得一個處理器所使用的數據結構和命令,對其它處理器是不可見的。數據模型透明性隱藏了查詢語言和數據格式的差異。
過濾處理器
過濾處理器限制傳給其它處理器的命令和數據。與每個過濾處理器相聯繫的是描述命令和數據約束的映射。這些約束或者以過濾處理器的邏輯編程,或者存儲在分離的數據結構中。過濾處理器的例子有語法約束檢查器、語義一致性約束檢查器、存取控制器等。
構造處理器
構造處理器把單個處理器提交的命令進行分解或複製成為兩個或多個其它處理器能夠接受的命令。它也把多個處理器產生的數據,合併成為單個數據集,以供另外的單一處理器使用。由於提交命令的處理器不必知道位置、分布性和處理提交的命令所涉及的處理器數目,所以構造處理器要支持位置、分布性和複本透明性。構造處理器能夠處理的工作有模式集成、查詢命令的分解和最佳化、全局事務管理等。
存取處理器
存取處理器負責接受命令,並通過對資料庫執行相應的操作來提供數據。它可能從多個處理器接受命令,並交錯處理這些命令。存取處理器所涉及的問題主要有局部並發控制、提交協定、備份和恢復。
五層模式
傳統的集中型DBS具有標準的三層模式體系結構,即所謂的內模式、概念模式和外模式。在聯邦資料庫系統中把它擴展成五層,以適應在FDBS中關於分布性、自治性和異構性的要求。這五層包括
局部模式Local schema
這是一個部件DBS的概念模式,局部模式用這個部件DBMS的本地的數據模型表達。因此不同的局部模式可以用不同的數據模型表達。
部件模式Component schema
通過把局部模式翻譯成FDBS的公共數據模型一導出部件模式,之所以用定義部件模式有兩條理由:
它們有一種單一的表達方法描述不同的局部模式。
在局部模式中遺漏的語義能被加到它的部件模式中去
於是,部件模式使得在開發緊耦合時執行的磋商和集成容易實現。類似地,它們也使得在松耦合FDBS中的視圖view和多資料庫查詢的磋商和規範說明容易實現。
從局部模式到部件模式的模式翻譯過程產生了在部件模式對象和局部模式對象之間的映射,這裡的轉換類處理器使用這些映射把在部件模式之上的命令轉換為相應的局部模式之上的命令,那樣的轉換類處理器和部件模式支持FDBS的異構特性。
輸出模式Export schema
輸出模式表示成員模式中能為聯邦所使用的數據子集,也可能包括有關特定聯邦用戶的不同的存取控制信息。定義輸出模式的目的是為了便利對相關自治性的控制和管理,能夠用一個過濾類處理器提供在輸出模式中所規定的存取控制,它限制了能夠被提交到相應的部件模式之上的可允許的操作的集合,那樣的過濾類處理器和輸出模式支持FDBS自治特性。
聯邦模式Federated schema
聯邦模式是多個輸出模式的集成。聯邦模式也包括數據分布的信息,這些信息是在集成輸出模式時產生的。有些系統使用所謂分布模式或分配模式來包含這些信息,用一個建造類處理器把在聯邦模式之上的命令轉換到在一個或多個輸出模式之上的命令,這個建造類處理器和聯邦模式支持FDBS的分布特性。
外部模式External schema
外部模式為用戶或一類用戶和/或為應用程式或一類應用程式定義模式一個過濾類處理器分析加在外部模式之上的命令,以保證它們遵守聯邦模式的存取控制和集成限制。