翻譯大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型(精選.)_第1頁
翻譯大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型(精選.)_第2頁
翻譯大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型(精選.)_第3頁
翻譯大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型(精選.)_第4頁
翻譯大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型(精選.)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、大型共享數(shù)據(jù)庫的數(shù)據(jù)關(guān)系模型E.F.CoddIBM Research Laboratory,SanJose,California未來的數(shù)據(jù)庫使用者一定是和數(shù)據(jù)在機(jī)器中的存儲(即數(shù)據(jù)庫的內(nèi)部模式)相隔離的。而通過提示服務(wù)來提供信息是一個不太令人滿意的解決方法。當(dāng)數(shù)據(jù)的內(nèi)部模式表示發(fā)生改變, 甚至數(shù)據(jù)內(nèi)部表示的多個方面發(fā)生改變時,終端用戶和大多數(shù)應(yīng)用程序的活動都不會受到影響。因此, 查詢、 更新和報告存儲信息類型的自然增長和變動都需要在數(shù)據(jù)表示中表現(xiàn)出來?,F(xiàn)存的不可推斷的、格式化的數(shù)據(jù)系統(tǒng)給用戶提供了樹結(jié)構(gòu)的文件或者更一般的網(wǎng)格模式的數(shù)據(jù)。本文在第一部分討論這些模式的不足之處。并且會介紹一種基于n

2、 元組關(guān)系的模式, 一種數(shù)據(jù)庫關(guān)系的正式形式和通用數(shù)據(jù)子句的概念。第二部分將討論一些關(guān)系的操作(不是邏輯層面的),并且把這些操作應(yīng)用于用戶模式上解決冗余和一致性問題。1 關(guān)系模式和一般模式1.1 簡介這篇文章是關(guān)于系統(tǒng)的基本關(guān)系原理的應(yīng)用,這個原理提供了共享大型格式化數(shù)據(jù)庫的方法。除了Childs1的文章有介紹外,用于數(shù)據(jù)庫系統(tǒng)的關(guān)系的主要應(yīng)用還表現(xiàn)在演繹推理型的問-答系統(tǒng)中。Levein 和 Maron2 提供了大量關(guān)于這個領(lǐng)域的參考資料。 相比之下,這里要解決的問題是一些數(shù)據(jù)獨立性的問題 應(yīng)用程序和終端活動之于數(shù)據(jù)類型增長和數(shù)據(jù)表示變動的獨立性,而數(shù)據(jù)一致性問題即使在非演繹推理型系統(tǒng)中也是

3、很棘手的。在目前流行的非推論性系統(tǒng)中,第一部分要介紹的數(shù)據(jù)的關(guān)系視圖(或叫做模式)在一些方面似乎優(yōu)于圖模式和網(wǎng)格模式3,4。這種模式提供了一種根據(jù)數(shù)據(jù)的自然結(jié)構(gòu)來描述描述數(shù)據(jù)的方式 也就是說,不用為了數(shù)據(jù)的機(jī)器表示而添加其他的將結(jié)構(gòu)。因此,這種模式為高水準(zhǔn)的數(shù)據(jù)語言提供了基礎(chǔ),而這種數(shù)據(jù)語言機(jī)制一方面可以達(dá)到最大化程序之間的獨立性,另一方面也可以最大化數(shù)據(jù)的機(jī)器表示和組織之間的獨立性。關(guān)系模式更高一級的優(yōu)勢在于它構(gòu)成了關(guān)系處理可導(dǎo)性、冗余性和一致性的堅固基礎(chǔ) 這些將在第二部分討論。另一方面,網(wǎng)絡(luò)模型產(chǎn)生了一些混淆,尤其是把連接的源誤作為關(guān)系的源(見第二部分“連接陷阱”)最后, 關(guān)系視圖允許對目

4、前格式化數(shù)據(jù)系統(tǒng)的范圍和邏輯限制的更清晰的估算,并且有在單獨的系統(tǒng)內(nèi)競爭數(shù)據(jù)表示方式的優(yōu)點(從邏輯的觀點)。 更清楚的這個觀點的示例會在本文中的不同部分中被闡釋。但是支持關(guān)系模式的系統(tǒng)實現(xiàn)不會討論。1.2 目前系統(tǒng)的數(shù)據(jù)相關(guān)性最近發(fā)展的信息系統(tǒng)中數(shù)據(jù)描述表的提供是向數(shù)據(jù)獨立性目標(biāo)5,6,7 靠近的重要提高。這些表可以使改變數(shù)據(jù)庫中數(shù)據(jù)表示的某些特征變得更容易些。但是,許多數(shù)據(jù)表示特征可以在不邏輯地削弱一些應(yīng)用程序的情況下被改變的功能仍受到相當(dāng)?shù)南拗?。更進(jìn)一步,與用戶交互的數(shù)據(jù)模式仍然有一些散亂的代表性特征,特別是關(guān)于數(shù)據(jù)收集的描述(如個人名目)。 三個仍然需要提高的數(shù)據(jù)獨立性的主要類型是:排序

5、依賴,索引依賴和存取路徑的依賴。在一些系統(tǒng)中這些依賴之間并不是明確分隔的。1.2.1 順序依賴。數(shù)據(jù)庫中的數(shù)據(jù)元素可以有很多種存儲方式,一些是不考慮順序的,一些是允許一個元素只參與一個排序,而另外一些允許每個元素參與多個排序。 現(xiàn)在讓我們來看看要求或允許數(shù)據(jù)元素存儲在至少一個總排序的現(xiàn)存系統(tǒng), 而這種總體排序是與硬件決定的排序地址密切相關(guān)的。這種系統(tǒng)通常允許應(yīng)用程序自己假定文件記錄的表示順序與其在磁盤上的存儲順序是相同的(或者說是存儲排序的子目)。這些運用文件存儲順序有利條件的應(yīng)用程序, 如果由于某些原因而變得需要用一個新排序替換這種順序時,很可能不能正確運行。以指針方式實現(xiàn)的存儲排序也有相似

6、的問題。我們沒有必要挑選出任何一個系統(tǒng)作為例子,因為現(xiàn)在上市的所有著名的信息系統(tǒng)在清楚區(qū)別表示順序和存儲順序兩方面都是失敗的。重要的實現(xiàn)問題必須得到解決來提供這種獨立性。1.2.2 索引依賴。格式化數(shù)據(jù)的上下文聯(lián)系中,索引通常被看成數(shù)據(jù)表示的一個純粹的效能導(dǎo)向組件。它傾向于提高對查詢和更新的響應(yīng),同時減慢了對插入和刪除的響應(yīng)。從信息的觀點來看,索引是數(shù)據(jù)表示的冗余構(gòu)成成分。如果一個系統(tǒng)王全用索引,并且如果它在變化活動形式的數(shù)據(jù)庫環(huán)境中能夠表現(xiàn)的很好,那么不時地產(chǎn)生和銷毀索引的能力可能是必須的。那么問題產(chǎn)生了:應(yīng)用程序和終端活動在索引項來去的時候仍然能夠不受影響嗎?目前格式化數(shù)據(jù)系統(tǒng)采用很不相同

7、的方法來進(jìn)行索引。TDMS7 無條件地提供了所有屬性上的索引。IMS5 目前發(fā)布的版本為用戶提供了為每一文件選擇的權(quán)利:是完全沒有索引(層次序列的組織)和只有主鍵索引(層次化索引序列組織)之間的選擇。沒有一種會使用戶的應(yīng)用邏輯依賴于無條件提供的索引的存在。但是,IDS8 允許文件設(shè)計者選擇用于索引的屬性和指定用于與索引通過外加鏈的方式組合成文件結(jié)構(gòu)的屬性。運用索引鏈性能的優(yōu)勢的應(yīng)用程序必須通過名字來引用這些鏈。如果這些鏈后來被刪除,那么這些程序就無法正確運行。1.2.3 存取路徑依賴。許多現(xiàn)存格式化數(shù)據(jù)系統(tǒng)為用戶提供了樹結(jié)構(gòu)的文件或者更一般的數(shù)據(jù)網(wǎng)絡(luò)模式。為和這類系統(tǒng)共同工作而發(fā)展的應(yīng)用程序,

8、在樹或網(wǎng)格的結(jié)構(gòu)改變時,往往會在邏輯層受到削弱。一個簡單的例子如下。設(shè)想數(shù)據(jù)庫包含關(guān)于部件和工程的信息。對于每一個部件,其部件號碼、部件名字、部件描述、在手的數(shù)量和訂單上的數(shù)量的信息都被記錄。對于每一個工程,其工程編號、工程名字和工程描述信息被記錄。無論什么時候,一個工程要用特定部件時,用于這個工程的那種部件的數(shù)量也會被記錄。假如系統(tǒng)要求用戶或者文件創(chuàng)作者根據(jù)樹結(jié)構(gòu)聲明或者定義數(shù)據(jù)。那么, 任一層次結(jié)構(gòu)都可以用到如上提到的信息上(見結(jié)構(gòu)1 5) 。Stnieture L Pr&jectB 區(qū)uh倒收linat里 to FartsFM/科ddiF FART purt fp&rt

9、hameputd住工程riptinnqu -i j H ty on-hH nd qtiatjti ty-on-orderPROTECT project fproject nam» project description Quantity eommittedS-ttucture 2. Fut出 Stibarditifltjt to ProjectsP?<理褊*F PROJECT project #project nanic project dnriptinnPARTpart,pajt name ptul dnEGripliuu quantity -un-liaiid quanti

10、ty -on-rd?r quantity gmmit詁dStructure 亂 Farta aii<i Projects as PeersCommitmert ItelaLiohatiip Sub ardi naie to ProjectsF0Jfd*F PART pWpwrt riatne p?irt rificription tjriflntity-<H!i'hand quantity yQ PROJECT proieet §project nsmeprojnet df?*ci-ipticiiPARTpartq.LL!iDU ly conmiittedStrq

11、ctiig 4. Parts and Prajecls as Pc&raCiLiuiiLjiienli Rri&llyuHhip &ubuidi iiiiltf to P&rlaIV*cfnwftfjFul4tFPARTpart /part M&gpt山口 qcisntUy nn-hand qu&Hl.iLy -on-<jrderPROJECT project $Hujintitv eonruitvcdG PROJECT projefft #prujccL 口耳in已 project d-rjptionSiruQUUre 5. Partst

12、 Projects, and KaJuLjoiisJiLp 弁 Peers FiTeJtpvswiFFARTpul /P&Tt IhfiLne part 向呂crEpii 由i qufUitity-on-haud quaMity-on-order G PROJECTp皿#project niine j rojdec ripticmH COMMIT put # pro沁t d quantity committed現(xiàn)在考慮打印用于名為“alpha的'工程每個部件的編號、部件名和數(shù)目。不考慮可用于面向樹的信息系統(tǒng)可以用于解決這個問題,我們可以得到以下的發(fā)現(xiàn)。如果程序P是開發(fā)用于解決這

13、個問題(假設(shè)結(jié)構(gòu)是上面五種結(jié)構(gòu)中的一 種),也就是說 P不會檢測哪一種結(jié)構(gòu)對他來說有效,然而這樣的結(jié)果是P至少在其中三個結(jié)構(gòu)上是失敗的。更具體地,如果P對結(jié)構(gòu)5行之有效,那么在其他結(jié)構(gòu)上就會失?。蝗绻鸓對結(jié)構(gòu)3或4行之有效,那么它至少會在結(jié)構(gòu)1,2,5上是失敗的;如果 P對結(jié)構(gòu)1或2行之有效,那么它至少會在結(jié) 構(gòu)3,4,5上是是小的。對于每一種情況的原因都很簡單。在沒有經(jīng)過檢測來 決定哪種結(jié)構(gòu)是有效的情況下,P會失敗是因為它試圖引用一個不存在的文件(現(xiàn)可用的系統(tǒng)把這種情況視為error)或者是它沒有引用包含它必需信息的文件。有疑問的讀者應(yīng)該找一些樣例程序來理解這個簡單的問題。 由于在一般情況下

14、,開發(fā)可以檢測系統(tǒng)允許的所有樹結(jié)構(gòu)的應(yīng)用程序是不實 際的,而且這種程序在結(jié)構(gòu)需要改變時也會失敗。 為用戶提供網(wǎng)格數(shù)據(jù)模式的系統(tǒng)也會遇到相似的問題。在樹和網(wǎng)格兩種情形下,用戶(或者是用戶的程序)都被要求采用用戶數(shù)據(jù)存取路徑的集合。這 些路徑是否與存儲表示的指針定義的路徑有較近通信是沒有影響的,而在 IDS中這種通信時極其簡單的,但在TDMS中就正好相反了。不考慮存儲表示來看這種問題,結(jié)果就是,終端活動和程序變得依賴于用戶存取路徑的連 續(xù)存在性。對于這個問題的一個解決方案就是采用如下策略:一旦用戶存取路徑被定義了,那么除非所有應(yīng)用這個路徑的所有程序都廢棄了(finish 了),否則這個路徑就不會過

15、時。由于在團(tuán)體總體模式的數(shù)據(jù)庫用戶的存取路徑的數(shù)量最終 可能變得過大,因此這種策略是不實際的。1.3 數(shù)據(jù)的關(guān)系視圖關(guān)系這個詞在這里使用的是其被廣泛認(rèn)可的數(shù)學(xué)意義。給定集合S1,S2,S記些集合沒有必要一定是不同的),如果R是一個滿足如下條件的n元組集合:其每個元素的第一個元素來自S1,第二個元素來自集合S2,以此類推,那么 R就是這n個集合(S1,S2,Sn上的一個關(guān)系。我們用 Sj來表示R的第j個域。正如上面所 定義,R被稱作是n級的。1級的關(guān)系通常叫做一元關(guān)系,2級的被叫做二元關(guān)系,3級的被叫做三元關(guān)系,而n級的叫n元關(guān)系。(更簡單地說,R是S1,S2,這nn個集合的笛卡爾乘積的一個子集

16、) 說明一下,我們將頻繁地使用關(guān)系的數(shù)組表示,但是必須清楚的是這個特定表示并 不是用于解釋關(guān)系視圖必須的部分。用于表示 n元關(guān)R的數(shù)組有如下特征:(1) 每一行代表 R的一個n元組(2) 行的排列順序是無關(guān)緊要的(3) 所有行都是不相同的(4) 列的順序是有意義的 一一列應(yīng)該符合 R定義時的域的順序 S1,s2,Sn但是注意,排序的域和無序的域下標(biāo)之間的關(guān)系)(5) 每個列的意義部分是由命名相應(yīng)域來傳達(dá)的圖1中的例子展示了一個叫做supply 4級的關(guān)系,這個關(guān)系顯示的是特定工程的特定供應(yīng)者的特定數(shù)量的零件發(fā)貨過程。supplier112purlproject5575quantitif)172

17、3Fig. 1.A relation of degree 4有人可能會問:如果列由相應(yīng)域的名字來標(biāo)識,呢?正如圖2中例子顯示的一樣,兩列可以有相同的頭 于這個關(guān)系他們有不同的含義。這里描述的關(guān)系叫做圖1那么為什么列的順序會有影響(表示同樣的域),但是對component 。 它是一個三元關(guān)系,其中前兩個域叫做 part而第三個域叫做 quantity。 Component (x, y, z) 的意思就是部件x部件y的直接構(gòu)成成分(或者子部件),而需要z個白X x部件來 組成一個的y部件。這個關(guān)系在零件擴(kuò)大問題中有重要作用。part212F0.2, A. relfltir»n wi&l

18、t;h two id«nJ irsl Hnmairift一個引人注目事實是, 一些現(xiàn)存的信息系統(tǒng) (主要是基于樹結(jié)構(gòu)文件組織) 不 能夠為有兩個或兩個以上的相同域的關(guān)系提供有效地數(shù)據(jù)表示。IMS/3605的目前版本就是這種系統(tǒng)的一個實例。一個數(shù)據(jù)庫中的總體數(shù)據(jù)可以看做一個隨著時間變化的關(guān)系的集合。這些種類的關(guān)系有各種各樣的級(或度)。隨著時間的前進(jìn),每個 n元關(guān)系都可能經(jīng)歷插入 另外的n元組,刪除現(xiàn)存的 n元組和改變現(xiàn)存任意 n元組的組成部分的操作。但是,在很多商業(yè)、政府和科學(xué)數(shù)據(jù)庫中,一些關(guān)系的度(或作級別)是相當(dāng) 高的(30級的關(guān)系也是很常見的)。用戶通常不能記住任何關(guān)系的所有域

19、的順序(例如,關(guān)系supply中定序的提供者、零件、工程和數(shù)量)。因此,我們提出用戶不必處理域排序的關(guān)系,而處理與其非排序域的有同樣效果的關(guān)系的方法。為了達(dá)到這個目的,關(guān)系中的域必須是在不采用位置時唯一可確認(rèn)的,至少在某個給定的關(guān)系中是這樣的。因此,在有兩個或更多相同域的地方,我們要求對每一種情況下域名都是合格的不同的角色名(role name),這些角色名用于識別給定的關(guān)系中的域所 扮演的角色。例如,在圖 2的component關(guān)系中,第一個域 part可以用合格角色名sub指示,而第二個用super,以便用戶能夠處理component關(guān)系和它的域 sub.partsuper.part,qu

20、antity 而不用考慮這些域之間的任何排序??傊?, 提出多數(shù)用戶應(yīng)該與由隨時間變化的聯(lián)系集合(而不是關(guān)系)組成的數(shù)據(jù)的關(guān)系模式交互。每個用戶不必知道除了關(guān)系的名字和其相應(yīng)的域的名字外的其它更多信息(只要有需要就可以采用角色資格)。甚至信息可以是系統(tǒng)(具有安全和隱私約束)根據(jù)用戶的請求以菜單形式提供的。數(shù)據(jù)庫關(guān)系模型的建立通常還有其他很多可供選擇的方法。為了討論更好的方式(或標(biāo)準(zhǔn)形式),我們必須引入另外幾個概念(活動域、主碼、外碼、非單一域)并建立一些與目前在信息系統(tǒng)編程中使用的術(shù)語的鏈接。在本文后面的部分,我們將不再煩惱地去區(qū)別關(guān)系(relation )和聯(lián)系(relationship )

21、,而在需要顯示他們不同之處的地方我們會顯示地指出。下面考慮這樣一個數(shù)據(jù)庫實例,該數(shù)據(jù)庫包含關(guān)于部件,工程和供應(yīng)者的一系列關(guān)系。一個叫part 的關(guān)系被定義在以下的域上:1 )部件編號(partnumber )2 )部件名稱(partname )3 )部件顏色(partcol or)4 )部件重量(partweight )5 )在手的數(shù)量(quantity on hand )6 )預(yù)訂的數(shù)量(quantity on order )可能還有其他的域。事實上,每個這樣的域都是一池數(shù)值,這些數(shù)值中的一些或全部可以在任一瞬時在數(shù)據(jù)庫中表示出來??梢韵胂?,在某些瞬間,所有部件顏色都被顯示出來,但是難以做到

22、的是把所有可能存在的部件的重量、部件名字和部件編號都顯示出來。我們稱在某個時刻表現(xiàn)出來的值的集合為在那個時刻的活動域( active domain ) 。通常, 一個給定關(guān)系的一個域(或者域的組合)有一組唯一識別該關(guān)系的每一元素( n 元組)的值。這樣的一個域(或組合)被叫做主碼(primary key ) 。在上面的例子中,部件號可能是一個主碼,而部件顏色可能就不是了。主碼是非冗余的,如果他滿足它是一個簡單域(非組合的)或者一個組合,而對于組合的情況,在唯一識別每一元素時參與到這個組合中的簡單域沒有一個是多余的(也就是組合中的所有的簡單域共同構(gòu)成一個唯一識別關(guān)系元素的碼)。一個關(guān)系可以有多個

23、非冗余的主碼。 如果上面所說的部件的名字都互不相同,那么就成了這種情況的一個實例。無論什么時候,只要一個關(guān)系有兩個或者更多非冗的主碼,它們中的任意一個都可以選作這個關(guān)系的主碼。一個普遍的要求就是,關(guān)系當(dāng)中的元素交叉引用同一關(guān)系的其他元素或者引用一個不同關(guān)系的元素。碼提供了一種用于表示這種交叉引用的面向用戶的方式(但不是唯一的方式)。如果一個域(或者域組合)不是關(guān)系R 的主碼,但是它的元素是某個關(guān)系S 的主碼值(排除S 和 R 是同一關(guān)系的可能),那么我們就把關(guān)系R 的這個域(或者域組合)叫做外碼。在圖1supply 關(guān)系中,supplier 、 part、 project是主碼,而這三個域中每

24、一個都被單獨看作是一個外碼。在前面的工作中已經(jīng)顯現(xiàn)出一個很強(qiáng)的趨勢,即把一個數(shù)據(jù)庫中的數(shù)據(jù)看成由兩個部分組成,一個部分由實體描述組成(如supplier 的描述) ,而另一個部分由不同實體間或者實體類型間的關(guān)系組成(如 supply 關(guān)系) 。 當(dāng)一個關(guān)系有任何其他關(guān)系的外碼時,要維持這種區(qū)別是困難的。在用戶的關(guān)系模式中,做出這樣的區(qū)別似乎是沒有益處的(但是,當(dāng)把關(guān)系概念用于用戶聯(lián)系集的機(jī)器表示時,這種區(qū)分可能有些益處)。到目前為止,我們已經(jīng)討論了一系列定義在簡單域上的關(guān)系的例子,而那些簡單域的元素是原子的(非組合的)值。非原子值會在關(guān)系框架中討論。因此,一些 域可以把關(guān)系當(dāng)做元素。相應(yīng)地,這

25、些關(guān)系可以被定義在非簡單域等等。例如,關(guān)系employee定義的其中一個域可以是salary history (薪水歷史)。Salary history域中的一個元素是一個定義在date域和salary域上的二元關(guān)系。 Salary history域就是這種二元關(guān)系的一個集合。在數(shù)據(jù)庫中任意瞬間都會有與employee (員工)數(shù)量相同的salary history關(guān)系實例。相比之下,employee關(guān)系就只有一個實例。在表示數(shù)據(jù)庫的術(shù)語中屬性和重復(fù)組分別在簡單域和非簡單域中是大致相似的?,F(xiàn) 在術(shù)語中的多混淆之處是由于沒能把類型和實例(如在“record中)區(qū)別開和把數(shù)據(jù)的用戶模式的組成和它們

26、相應(yīng)的機(jī)器表示區(qū)別開(再次以“record為例)。1.4標(biāo)準(zhǔn)形式一種所有域都是簡單域的關(guān)系能夠用如上討論過的二維的齊次列數(shù)組來表示其存儲 形式。一些更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)對一個有一個或多個非簡單域的關(guān)系是必要的。由 于這個原因(其他的將在下面舉例),消除非簡單域的潛力似乎值得投資。事實上, 有一種簡單的消除過程,而我們把這個過程叫做標(biāo)準(zhǔn)化。例如,考慮圖3 (a)顯示的關(guān)系集合。Job history和children是employee關(guān)系的非 簡單域。Salary history是job history的一個非簡單域。圖 3 (a)中的樹展示了各個 非簡單域之間相互關(guān)系。jobhistorychi

27、ldrenI ,salaryhistoryemployeebirthdate, jobhistory, children)jqbhi3terF 09bdn%fvtlhistory)aalttryhlfttorysalary)children (childnantet birthyear)圖 3 (a)Fia. 3(a). Unnormslijed setj電bhisLQry' (ma洲"向曲為 title) saJtryhistory' (rrum#, ytfbdate, sdlorydaU. sslary) children* 4險 childnamet birth

28、year)圖 3 (b)Fig. 2(b). Normiiliaed set標(biāo)準(zhǔn)化按如下程序進(jìn)行。從關(guān)系的樹頂端開始,記住它的主碼,并且通過插入主碼域或者域組合來擴(kuò)展每個直屬的下層關(guān)系。每個擴(kuò)展關(guān)系的主碼由從父關(guān)系(即上 一層的關(guān)系)拷貝下來主碼在進(jìn)行擴(kuò)大前的主碼構(gòu)成?,F(xiàn)在,從父關(guān)系中化掉所有 非簡單域,刪除樹的頂節(jié)點,并且在留下的子樹上重復(fù)同樣的操作程序。圖3 (a)中標(biāo)準(zhǔn)化關(guān)系集合的結(jié)果就是圖3 (b)中的集合。每個關(guān)系的主碼都用斜體表示以顯示這些碼值是如何通過標(biāo)準(zhǔn)化來擴(kuò)展的。如果要使得如上所述的標(biāo)準(zhǔn)化是可用的,那么關(guān)系集合的非標(biāo)準(zhǔn)化必須滿足如下條件:(1 )非簡單域之間的相互關(guān)系圖是一個

29、樹集合。(2)沒有主碼是由非簡單域構(gòu)成的作者不知道哪個應(yīng)用是不嚴(yán)格滿足以上這些條件的。那這類標(biāo)準(zhǔn)化的更進(jìn)一步的操作就可進(jìn)行了。這些在本文中不會討論。當(dāng)所有關(guān)系都以標(biāo)準(zhǔn)形式出現(xiàn)時,變得可行的數(shù)組表示的簡單性不僅有利于存儲的目的,而且有利于廣泛采用不同數(shù)據(jù)表示的系統(tǒng)之間的大量數(shù)據(jù)的通信。這種通信形式是數(shù)組表示的一個相稱的壓縮版本,并且有如下有利條件:(1 )沒有指針(值地址或值替換)(2)避免了所有對哈希選址方式的依賴性(3 )不包含索引和有序列表如果用戶的關(guān)系模式以標(biāo)準(zhǔn)形式建立,那么數(shù)據(jù)庫中數(shù)據(jù)項的名字可以是一種更簡單的形式,反之亦然。一個通用的名字有如下形式:R (g).r.d其中 R 是關(guān)系

30、名字;g 是同輩標(biāo)識符(可選的);r 是角色名(可選的);d 是域名。由于 g 只有在當(dāng)一個給定的關(guān)系中多個同輩存在時才需要,而且 r 只有在當(dāng)關(guān)系R 有兩個或更多名為d 的域時才需要,所以簡單形式R.d 通常是恰當(dāng)?shù)摹?.5 一些語言方面如上所述,數(shù)據(jù)關(guān)系模式的采用使基于實用謂詞演算的通用數(shù)據(jù)子語言的發(fā)展成為可能。如果關(guān)系結(jié)合是標(biāo)準(zhǔn)形式的,那么一階謂詞演算就足夠了。這種語言為所有其它提議的數(shù)據(jù)語言提供了語言影響力的一個衡量標(biāo)準(zhǔn),并且它自己也是嵌入(有適當(dāng)?shù)木浞ㄐ薷模┰谠S多其它主流語言(編程,面向命令的或面向問題的)中的一種強(qiáng)勢的候選者。雖然詳細(xì)地描述這樣一種語言不是本文的目的,但是它顯著的特

31、征有如下幾點。我們用 R 標(biāo)記數(shù)據(jù)子語言,用H 標(biāo)記主語言。R 允許關(guān)系及他們的域的聲明。每一個關(guān)系的聲明都為這個關(guān)系確定了它的主鍵。聲明過的關(guān)系被添加到系統(tǒng)資料庫,從而被任何擁有合適權(quán)限的使用者群體的一員使用。H 允許支持聲明,這些聲明可能沒那么永久性的表明了這些關(guān)系在存儲時時如何表示的。R 允許定義數(shù)據(jù)庫中的任何數(shù)據(jù)子集的檢索。這樣的一個檢索請求之后能發(fā)生的動作受制于安全限制條件。數(shù)據(jù)子語言的普適性是由它的描述能力決定的(而非它的計算能力), 在一個大型數(shù)據(jù)庫中,每一個數(shù)據(jù)子集都擁有大量的可能的(而且合理的)描述。即使我們假設(shè)(正如我們所做的)系統(tǒng)有權(quán)使用的、確定搜索數(shù)據(jù)合格性的功能子程序

32、的有限集合只有一個。因此,能夠應(yīng)用于集規(guī)范資格表達(dá)式的集合的必須擁有對應(yīng)用謂詞演算的格式規(guī)范的公式集合的描述能力。眾多周知,為了維護(hù)這種描述能力,不必要表示(無論選擇的是什么語法)選中的謂詞演算的所有公式。比如,那些以前束規(guī)范格式的就夠了。在搜索體驗行業(yè)的合格性或其他方面可能要用到算術(shù)函數(shù)。這些函數(shù)用H 語言定義,用R 語言調(diào)用。這樣指定的一個集合可能僅用于查詢,或者用于可能發(fā)生的變化。插入采用向已聲明的關(guān)系中加入新的元素的形式實現(xiàn),同時不考慮在機(jī)器中表示的順序。刪除對公共組都有效(而不是個人用戶或子組),刪除以從已聲明的關(guān)系中移除元素的形式實現(xiàn)。如果指定關(guān)系之間的刪除和更新依賴性已經(jīng)用R 語

33、言聲明,那么一些刪除和更新可能會由其他的刪除和更新引發(fā)產(chǎn)生。用這種視圖看數(shù)據(jù),對查詢數(shù)據(jù)的語言有一個重大的影響,這個影響就是數(shù)據(jù)元素和集合的命名。這其中的一些方面已經(jīng)在上一節(jié)討論過。使用通常的網(wǎng)絡(luò)視圖,用戶常常為創(chuàng)造和使用更多的而不是完全有必要的關(guān)系名稱所累。因為名稱適合路徑(或路徑類型)有關(guān),而不是和關(guān)系有關(guān)。一旦用戶意識到存儲了某個特定的關(guān)系,他會希望使用他的已知參數(shù)和未知參數(shù)的任意組合來利用這個關(guān)系,因為信息(如珠穆朗瑪峰)是存在的。這是一個系統(tǒng)特征,我們叫做(邏輯上)關(guān)系的對稱利用。當(dāng)然,性能上的對稱性是不可能的。為了支持一個二元關(guān)系的對稱性利用,需要兩條直接路徑。對于一個n 元的關(guān)系

34、,被命名和控制的路徑數(shù)量是n 的階乘。同樣,如果采取這樣的關(guān)系視圖:每一個n元關(guān)系必須被用戶以只包含2 元關(guān)系的一張網(wǎng)狀表達(dá)式表示出來(比如,參見Feldman LsEAP 系統(tǒng)),那么必須創(chuàng)造2n-1 個名稱而不僅僅是1.2 節(jié)描述的n+1個擁有直接n 元標(biāo)記的名稱。例如,圖片1 這的 4 元關(guān)系 supply ,它以 n 元標(biāo)記初始化了 5 個名稱,用如下形式表示P (supplier, & (part, R (project, quantity)以網(wǎng)狀二元標(biāo)記,包含7 個名稱。這種表示方式的進(jìn)一步的缺點是它的不對稱性。盡管這種不對稱性不會禁止對稱性利用,它肯定會使用戶的一些詢問操

35、作很不方便表示(比如,對于跟給定的使用 Q 和 R 寫的項目相關(guān)的那些部分和數(shù)量的查詢)。1.6 可表達(dá)的、已命名的而且已存儲的關(guān)系有兩個關(guān)系集合跟資料庫有關(guān):命名集和可表達(dá)集。命名集市用戶群能夠通過一個簡單名字(或標(biāo)識)識別的所有關(guān)系的集合。當(dāng)恰當(dāng)授權(quán)的用戶聲明R 時,關(guān)系 R 擁有了命名集的成員資格。當(dāng)恰當(dāng)授權(quán)的用戶取消R 的聲明時,它失去了成員資格。可表達(dá)集是能夠用數(shù)據(jù)語言中的表達(dá)式表示的所有關(guān)系的集合。這些表達(dá)式是由名字集中關(guān)系的簡單名字組建起來的。階段的名稱、角色和域、邏輯連接詞、謂詞演算的量詞以及某些常量關(guān)系符號,如= ,> 。名字集是可表達(dá)集的一個子集 通常是一個很小的子集

36、。由于名稱集合中的某些關(guān)系可能是集合中其它關(guān)系的時間無關(guān)的組合,將名稱集和定義這些時間無關(guān)的限制條件的語句的集合聯(lián)系起來考慮很有用。我們將推遲討論這個,直到我們介紹了對關(guān)系的幾種操作(參看第二節(jié))。為用戶設(shè)計一個支持關(guān)系模型的數(shù)據(jù)系統(tǒng)時,設(shè)計者所面臨的主要問題之一是確定支持存儲表示所用的集合。理想情況下,允許的數(shù)據(jù)表現(xiàn)形式的多樣性應(yīng)該正好足夠覆蓋性能安裝總集合要求的范圍。太大的范圍導(dǎo)致不必要的存儲開銷和連續(xù)的對當(dāng)先結(jié)構(gòu)描述的重新解釋。對于任意選定的存儲表示集合,數(shù)據(jù)系統(tǒng)必須提供把用關(guān)系模型的數(shù)據(jù)語言表達(dá)的用戶需求轉(zhuǎn)換成相應(yīng)且有效的當(dāng)前存儲表示的方法。對于高層數(shù)據(jù)語言,這好似一個具有挑戰(zhàn)性的設(shè)計

37、問題。不過,隨著更多的用戶擁有了對大型資料庫的訪問權(quán)限,這就變成了一個必須解決的問題。同時,也能為從個人用戶到數(shù)據(jù)系統(tǒng)提供有效的響應(yīng)和吞吐量。2 冗余和兼容2.1 對關(guān)系的操作由于關(guān)系是集合,所有普通的集合操作也都適用于關(guān)系。不過,結(jié)果可能不是一個關(guān)系,比如,一個二元關(guān)系和三元關(guān)系的連接不是一個關(guān)系。下面討論的操作是專門針對關(guān)系的。介紹這些關(guān)系是因為它們在從其他關(guān)系中派生出關(guān)系上扮演重要角色。它們主要應(yīng)用在非推理的信息系統(tǒng)中,這種系統(tǒng)不提供邏輯推理服務(wù),盡管當(dāng)類似的服務(wù)被添加后不一定會損害它們的適用性。大多數(shù)用戶不會直接關(guān)心這些操 作。然而,信息系統(tǒng)設(shè)計人員和與資料庫控制相關(guān)的人員應(yīng)該徹底熟悉

38、它們。2.1.1 置換。 一個二元關(guān)系有一個具有兩列的數(shù)組表示。將這兩個列換位得到逆關(guān)系。更一般的,如果一個置換被應(yīng)用于一個n 元關(guān)系的列,由此產(chǎn)生的列被稱作給定序列的排列。例如,圖 1 中有關(guān)系supply 的 4! =24 種排列,如果我們包括不改變列順序的恒等排列。2.1.2 投影。假設(shè)我們從一個關(guān)系中選出特定的某些列(剔除其它的列),然后從結(jié)果中刪除數(shù)組中的任何行重復(fù)。最終的數(shù)組表示了一個叫做給定關(guān)系的投影的關(guān)系。選擇算子 兀被用來獲取任何所需的排列、投影或兩個操作的組合。因此,如果L是K個標(biāo)記的列表 L = i1, i2,;,Rk是一個n元關(guān)系(n>=k),那么兀1(R) 一個

39、k元關(guān)系,這個關(guān)系的第j列是R的第ij歹U (j=1,2,),k同時結(jié)果的行中的冗余也將移除??紤]圖1 中的關(guān)系supply ,圖 4 展示了這個關(guān)系的置換投影。注意,在這個特殊的情況下,投影比產(chǎn)生該投影的關(guān)系的n 元組要少。2.1.3 連接。 假設(shè)給定兩個二元關(guān)系,它們有一部門共同域。在什么情況下我們可以結(jié)合這兩個關(guān)系,以形成一個三元關(guān)系,其中保留了所給關(guān)系的所有信息?圖5中的例子顯示了兩個可以進(jìn)行無信息損失連接的兩個關(guān)系R,S,圖6顯示了 R和S的連接。如果存在一個三元關(guān)系 U,滿足 m2 ( U ) = R且 或3 (U) = S., 則二元關(guān)系R和S則是可連接的。任意這樣的三元關(guān)系都叫

40、做R和S的連接。如果R,S是二元關(guān)系且 茂(R)=m(S ,則R和S是可連接的。自然連接是肯定 存在的一個連接,定義為R*S = (a, b, c):R(a, b) A S(b, c)其中,如果(a,b)是R的一個成員且和S(b,c)相似,則R(a,b)的值是真。即n12 (R*S) = R 且加3 (R*S) = S.注意,圖6中顯示的連接是圖5中的R和S的自然連接,圖7顯示了;另一個連 接。word.II浦魏 ppEy)(projectsupplier)51521472Fin. 4 A permuted projeetiou of the relation in Figure 1Rpari

41、)S (part project)111 121122221Fig. 5.Two joinaWe relationsR*S (suppler part project)1111 122 11212221FiQk 6. The fl&luhU join of R 科:山 H from Eigure 5)U (supplierp“£pr&jcC)112211221Fto» 7, Another jiiin of R with S (from Figure 5)檢查這些關(guān)系展示了域 part (連接操作發(fā)生的域)中的一個元素(元素1), 該元素有性質(zhì):它擁有在R和

42、S中不止一個關(guān)系。正是這個元素引起了連接的多元化。在連接域里這樣的元素叫做有關(guān)R和S連接的歧義點。如果 加1 (R )或R是一個函數(shù),在R和S的連接中不會出現(xiàn)歧義點。在這種情況下,R和S的自然連接就是 R和S的連接。注意反復(fù)的限定"和S”是必需的,應(yīng)為 S可能和S可連接(R和S同樣),而且這個連接應(yīng)該完全 分開考慮。在圖5中,關(guān)系R,戒1 (R ) , S,戒1 (S )都不是一個函數(shù)。R和S連接中的歧義點有時可以用其它關(guān)系消除。假設(shè)我們被給定,或者可以從R,S中產(chǎn)生一個關(guān)系 T,關(guān)系在域project和supplier上擁有以下性質(zhì):(1)水T)=吸俗),才±(T)=(3

43、)牙/內(nèi)一即解&#) A 8納力3(4)正出/)1布(S3,)A ")% S(ptj)3s(T(j)八 R® 6)這樣我們可能形成 R,S,T的三路連接,也就是一個三從關(guān)系,如下:= E,才物)=以 f(0) = T.這樣的一個連接被叫做循環(huán)三路連接以和線性三路連接區(qū)別開來,后者將會是一個四元關(guān)系 V,如下:r12(V) = K, (F) = St (F) = 7.盡管可能存在不止一個循環(huán)三路連接(參看圖8, 9),這種情況可能發(fā)生的環(huán)境比2元關(guān)系的多元性要發(fā)生該情況的環(huán)境要有更嚴(yán)格的限制Fig-. S. Binary relation with撲 T O'

44、 #dd1ed2de2ee2plurality of cyclic 3-joinaFig. - Two cyoLic 3-joins ofthe relations in Fiffure 8具體來說,關(guān)系 R,S,T必須處理關(guān)于 R和S連接(假設(shè)是點 x) , S和T 的連接(假設(shè)是y)和T和R的連接(假設(shè)是z)的歧義點。而且,更進(jìn)一步, y必須是x在S下的一個關(guān)系,z是y在T下的一個關(guān)系,x是z在R下的一 個關(guān)系。注意在圖 8中,點x=a;y=d;z=2有這個屬性。3個2元關(guān)系R,S,T的自然線性三路連接如下:R*5*T = & M 外 孫Ji b) A S他A T(ct d)其中,

45、因為是2元自然連接,等號左邊不用圓括號。為了獲取循環(huán)副本,我們引入操作符號r,它可以通過將一個 n元關(guān)系的首位相連產(chǎn)生一個 n-1元的 關(guān)系。因此,如果 R是一個n元關(guān)系(n>=2 ) , R產(chǎn)生的環(huán)由下面的公示定 義:¥(/?) = | (的 丁 曲, ,(的,他,-* f%)人的=4,我們現(xiàn)在可以用下面的表達(dá)式表不R,S,T的自然循環(huán)三路連接:CR.SW).線性概念,循環(huán) S-連接和n元關(guān)系的連接的自然副本的擴(kuò)展很明顯。然 而,考慮到一些進(jìn)行連接的關(guān)系不一定是二元的,所以可能需要一些額外的描述??紤]關(guān)系R (r元),S (s元)的情況,在它們的 p個域上連接兩個關(guān)系。 簡單

46、的說,假設(shè)這p個域是R的r個域中白最后p個域和S的s個域中的前p 個域。如果不是這樣,我們可以總是采用適當(dāng)?shù)呐帕惺顾@樣?,F(xiàn)在,取得 R 的前r-p個域的笛卡爾乘積, 并且叫這個新的域為 A。取得R的后p個域的笛 卡爾乘積,并稱之為 B。取得S的后s-p個域的笛卡爾乘積,并稱之為C。我們可以把R看作是在域 A.B上的二元函數(shù)。類似的,我們可以把S看作是域B,C上的二元關(guān)系。線性和循環(huán) S-連接的概念現(xiàn)在成為可以直接接受的了???以對線性的和各種元的 n個關(guān)系的循環(huán)n元連接也采用這種方法。2.1.4 組成。讀者很可能對應(yīng)用在函數(shù)上的組成概念非常熟悉。我們將會討論這個 概念的概括而且首先把它應(yīng)用到

47、二元關(guān)系上。我們對組成和可組合型的定義是直接基于以上給出的聯(lián)合和可聯(lián)合性的定義上的。假設(shè)我們被給予兩個關(guān)系 R,So T是R和S的組合,如果存在一個 R和S的連接且滿足丫 =o因此,當(dāng)且僅當(dāng)兩個關(guān)系是可連接的時,它們是可組合的。然而,存在多于一個的 R和S的連接并不意味著存在多余一個 的R和S的組合。與R與S的自然連接相應(yīng)的是 S伴隨R的自然組成,定義為:R?S = 13 (R*S)將關(guān)系R和S從表5中提取出來看,他們的天然組成由表 10展示,而另個組成由表11展示(與表7展示的連接相區(qū)別)R+S (jrt-qfeci1111 22 13 J表10. S伴隨R的天然組成(由表 5所得)T(pr

48、ey retsuppHar)1221表11. S伴隨R的另一個組成(由表 5所得)當(dāng)存在2個或更多的連接時,不同白組成數(shù)量可能少至1個也可能多至與不同連接數(shù)目相同。表 12展示了一個有許多連接關(guān)系但是只有一個組成的2個關(guān)系的例子。注意到在由 S組成R時,點c的不確定性丟失了,因為通過 點a,b,d,e造成了確定性的關(guān)聯(lián)。1 bbf2 C0f3 c。片4 dd%5 paf表12.多個連接,只有一個組成多對非必須二元(可能是多維的)的關(guān)系的組成的擴(kuò)展與這種關(guān)系成對連 接的情況如出一轍。對于關(guān)系組合了解的缺乏導(dǎo)致許多系統(tǒng)設(shè)計員陷入了一種我們稱為連接陷阱的困境。這種陷阱可能被依照以下舉例描述。假設(shè)每個

49、供應(yīng)商的描述與供應(yīng)商供應(yīng)的每一部分的描述相關(guān)聯(lián),并且每一部分的描述近似地與使用這些部分的工程描述相關(guān)聯(lián)。通常,現(xiàn)在就可以得出一個錯誤的結(jié)論:換句話說,如果所有可能的通道通過供應(yīng)商在工程中供應(yīng)的部分來遵循供應(yīng)商,就可以得到一個該供應(yīng)商供應(yīng)的所有工程的有效集。這樣一個結(jié)論只有在非常特殊的情況下才是正確的,即是目標(biāo)的工程和供應(yīng)商關(guān)系實際上是另兩個關(guān)系的自然組成 而我們通常必須加上一個詞對于所有時間”,因為這通常是在跟蹤控制技術(shù)的要求中暗示到的。*別的作者傾向于忽略組成而不是自然組成,于是把這一特別的組成看做那個組成”看,舉個例子,Kelley 的"General TopoOgy"

50、.2.1.5限制。一個關(guān)系的子集還是一個關(guān)系。關(guān)系S可能對關(guān)系R操作從而形成一個R的子集的一種途徑是通過S對R進(jìn)行限制操作。這個操作是函數(shù)對子集的域的限制的一般化,它的定義如下。設(shè)L,M為等長目錄列表,L=ii,i2, ;ik, M=ji, j2, kj其中kWR的維數(shù)且 kWS的維數(shù)。則L,M對由S對R的限制Rl|mS表示R的最小子集R',立(R') =m(S)。這個操作只有當(dāng)相等可以對于h=1,2,k應(yīng)用到 m(R)的成員和 加(R)之間才被定義。表13中R,S,R這3個關(guān)系滿足等式 R' = R3) |(1,2) Sos <p j) R' a p j

51、)&K1鼻AqB2aAbB2bB表13.限制舉例 我們現(xiàn)在立足于考慮這些操作在關(guān)系上的應(yīng)用。2.2 冗余一個指定關(guān)系集的冗余必須可以與存儲陳述集的冗余相區(qū)別。在這里我們主要關(guān)心的是前者。首先,我們需要一個關(guān)于關(guān)系的可導(dǎo)出性的精確概念。假設(shè)0是關(guān)系上的一個操作集合, 而且每個操作都有對每個操作數(shù)產(chǎn)生一個唯一關(guān)系的性質(zhì)(因此自然連接是合理的,但是連接是不合理的)。如果一個關(guān)系R 在所有情況下存在一個集合 0的操作序列,使R從S的一個成員中產(chǎn)生,則R對一個關(guān)系集合 S0可導(dǎo)。在所有情況下”這一描述是現(xiàn)在時的,因為我們正在處理隨時間變化的關(guān)系,而且我們的興趣在于保持一段關(guān)鍵時期的可導(dǎo)性。對于非

52、推理性系統(tǒng)上的指定關(guān)系,似乎一個恰當(dāng)?shù)募?01包含了一下操作:投影,自然連接,束縛和限制。排列是不相干的且自然成分需要被包含,因為在進(jìn)行連接然后投影的情況下是可行的。對于表示的存儲集來說,一個恰當(dāng)?shù)膶?集合的操作會包含排列和更多的關(guān)于子集合和合并關(guān)系的操作,并且排列和關(guān)聯(lián)它們的元素。2.2.1 強(qiáng)冗余。如果一個關(guān)系集包含了最少一個關(guān)系,這個關(guān)系控制了一個不同于其他關(guān)系集投影的投影,我們就稱這個關(guān)系集是強(qiáng)冗余的。以下兩個例子是為了解釋為什么強(qiáng)冗余性是這樣定義的,和證明它的實際作用。在第一個關(guān)系系列的例子中包含了下面這個關(guān)系:Employee( serial #, name, manager#,

53、 managername)其中 serial# 是主鍵而manager# 是外鍵。讓我們用 來指定有效域,并假設(shè)對于所有時間t 滿足: t( manager# ) ? t( serial# )且 t( managername ) ? t( name)這種情況下的冗余就很明顯了:域managername 就是不必要的。要證明這個是我們在之前定義的強(qiáng)冗余,我們發(fā)現(xiàn)7134 (employee) = 12 (employee) 斗質(zhì)(employee)。在第二個關(guān)系系列的例子中包含了一個描述供應(yīng)商的關(guān)系S, S 的主鍵為s#, 一個關(guān)系描述部門的關(guān)系D, D的主鍵為d#, 一個描述工程的關(guān)系J, J

54、的主鍵為j#,以及一下關(guān)系:P (s#, d#,), Q(s#,j#,,)R(d#,j#,)其中表示除了 s#, d#, j#的其他域。讓我們假設(shè)接下來一個情況C,已知C保持時間的圖理性:供應(yīng)商s當(dāng)且僅當(dāng)他提供的工程J (關(guān)系Q)是部門d可以被分配到的工程時(關(guān)系R), s才將這個部門d (關(guān)系P)提供出來。然 后,我們就可以寫出這個等式并因此展示出一個強(qiáng)冗余:E2(P) = 12 (Q)? 21 (R)強(qiáng)冗余存在于指定關(guān)系系列的一個重要原因是用戶方便性。對此一個特別的情況是指定關(guān)系集特征關(guān)系的保持,從而從名字上涉及到它們的舊程序可以繼續(xù)正確運行。關(guān)于指定集強(qiáng)冗余存在性的知識使一個系統(tǒng)或者數(shù)據(jù)

55、庫管理員得以在選擇展示形式上有更多自由行,從而在處理當(dāng)前流量時更高效。如果一個指定集的強(qiáng)冗余直接被存儲集的強(qiáng)冗余影響(或者如果其他強(qiáng)冗余被引入這一存儲集),那么一般來說,將會在一些查詢的時間和裝載中央處理器時間突然變化的同時,消耗更多存儲空間和更新時間。2.2.2 弱冗余。第二種類型的冗余可能存在。與強(qiáng)冗余相反,它不是用一個等式來描述的。如果一個關(guān)系系列包含了一個關(guān)系,這個關(guān)系包含一個無法區(qū)別于其他成員的工程,但是這個關(guān)系對于任何時候都是一個該集合關(guān)系中其他投影連接的投影,那么這一關(guān)系系列就是弱冗余的。我們可以用第二個強(qiáng)冗余的例子(前面提到的)來展示一個弱冗余,并且假設(shè)現(xiàn)在狀態(tài) C并不能在所有時間下保持穩(wěn)定。關(guān)系兀12 ( P),兀12 ( Q) , 7112(R)是復(fù)雜關(guān)系,在潛在的任兩個關(guān)系連接的同時觀點模糊的可能性時不時產(chǎn)生。 在這種情況下,沒有一個關(guān)系可以區(qū)分于另外兩個。但是,在他們之間確實存在約束,因為每一個關(guān)系都是這3 個關(guān)系循環(huán)鏈接的投

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論