時間:2022-12-20 22:30:01 | 來源:信息時代
時間:2022-12-20 22:30:01 來源:信息時代
泛關(guān)系 : 用戶觀念上的數(shù)據(jù)庫中的一種特殊關(guān)系。在數(shù)據(jù)庫設(shè)計時,為了使函數(shù)依賴模式不存在弊病,需要對不屬于范式的函數(shù)依賴模式進行分解,然而分解就會使函數(shù)依賴模式的數(shù)目增加,函數(shù)依賴模式越多,用戶使用就越不方便。在存儲時按分解后的函數(shù)依賴模式存儲,在使用時讓用戶仍把數(shù)據(jù)庫中所有屬性的集合想象成是一個整體的關(guān)系模式,所有函數(shù)依賴都認為是這個關(guān)系模式上的函數(shù)依賴,所有數(shù)據(jù)都理解成是這個關(guān)系模式上的單一關(guān)系中的數(shù)據(jù)。用戶的所有操作也都理解成是對這個單一關(guān)系的,這個想象中的單一關(guān)系就稱為“泛關(guān)系”。
“泛關(guān)系”的研究是在1976年Bernstein提出泛屬性集的觀點后開始的。早期的研究工作因為受了泛關(guān)系上的元組也不允許有空值這樣一個默認的假設(shè)的束縛,所以進展并不大。1980年,Honeyman、Lander及Yannakakis開始研究了含空值的泛關(guān)系的理論,提出了全投影、泛例、有效模式、元組的淹沒、關(guān)系的淹沒、代表泛例等全新概念,使“泛關(guān)系”的研究有了新起色,出現(xiàn)了許多新成果。后來,為了對泛關(guān)系進行查詢,人們還提出了窗口函數(shù)的思想。1982年,Fagin、Mendelzon及Ullman等提出了一種語義結(jié)構(gòu)窗口,這種窗口很適合于查詢語義的表達。1983年,Sagiv定義了鍵依賴,擴展連接及唯一性模式的新概念,并用唯一性模式作為查詢的一種窗口。1986年,Maeir等推廣了這個結(jié)果,允許不是鍵依賴的函數(shù)依賴集形成窗口。
由于泛關(guān)系是一種用戶觀念上想像的數(shù)據(jù)庫,所以它的可用性在歷史上曾受到置疑。Kent(1981年)、Atzeni(1982年初)及Parker(1982年初)都發(fā)表文章認為泛關(guān)系作為一種數(shù)據(jù)模型是不合適的。1982年10月,Ullman則著文給以反駁。1983年,Kent又兩次提出對泛關(guān)系的反對意見。同年Ullman又給予反駁。有趣的是關(guān)系數(shù)據(jù)庫理論的創(chuàng)始人Codd竟然也反對泛關(guān)系的思想,1988年他發(fā)表文章支持早期對泛關(guān)系的那些反對意見。特別還舉例說明泛關(guān)系領(lǐng)域中無法處理的以下查詢: 關(guān)系模式R={雇員,城市,倉庫},基本語義單位S1={雇員,城市}表示雇員所居住的城市,基本語義單位S2={城市,倉庫}表示倉庫所在的城市(基本語義單位請見本條目后面的說明)。查:其居住地有一個倉庫或多個倉庫的雇員。但在同年,Vardi等就給予了反駁,他們給出了基于唯一性模式窗口及語義結(jié)構(gòu)窗口的對這個查詢的查詢解釋。總體來看,現(xiàn)在大多數(shù)人還都是認為泛關(guān)系理論是適宜的。
泛關(guān)系的謂詞定義如下:設(shè)U是數(shù)據(jù)庫中全部屬性的集合,Ω={R,…,Rn}是U上的一個數(shù)據(jù)庫模式(數(shù)據(jù)庫模式請參看關(guān)系數(shù)據(jù)庫條目)。Si={Ai1,…,Ait}U, 〈xi1, …,xit〉是Si上的變量元組,Pi是以xi1,…,xit為變量的謂詞,簡稱Si上的謂詞,記號Pi(Si)表示相應(yīng)的謂詞公式。u是對xi1,…,xit的一個賦值。若u(xi1),…,u(xit)能使
Pi為真,則稱u使Pi(Si)為真。如果這里的每個Pi都不能再分成兩個謂詞的合取,而且每個Si都是某個Rj的子集,而〈xi1,…,xit〉是整個U上的變量元組,且u使P1(S1)∧…∧Pk(Sk)為真,則稱〈u(x1),…,u(xn)〉為U上的由謂詞公式集合P1(S1),…,Pk(Sk)決定的一個元組,并稱集合{〈u(x1),…,u(xn)〉|u使P1(S1)∧…∧Pk(Sk)為真}為U上由謂詞公式集合P1(S1),…,Pk(Sk)決定的泛關(guān)系。每個Si都稱為基本語義單位,并稱Γ={S1,…,Sk}為U上的語義結(jié)構(gòu)。
若r是U上的一個泛關(guān)系,r中允許有空值。XU, 則r在X上的全投影, 記作r[[X]], 是集合{u[X]|u∈r,u在X上沒有空值}。例如U={A,B,C,D},U上的泛關(guān)系r如表1所示。則r[[AB]]={〈a,b〉}, r[[AC]]={〈a, c〉,〈e,f〉}, r[[BD]]=∅。
表1 一個含空值的泛關(guān)系(其中丄表示空值)
A | B | C | D |
a | b | c | ⊥1 |
e | ⊥2 | f | ⊥3 |
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。