課件-第03章關(guān)系數(shù)據(jù)庫(kù)_第1頁(yè)
課件-第03章關(guān)系數(shù)據(jù)庫(kù)_第2頁(yè)
課件-第03章關(guān)系數(shù)據(jù)庫(kù)_第3頁(yè)
課件-第03章關(guān)系數(shù)據(jù)庫(kù)_第4頁(yè)
課件-第03章關(guān)系數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章

關(guān)系數(shù)據(jù)庫(kù)

關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)概述關(guān)系數(shù)據(jù)模型關(guān)系模型的完整性約束關(guān)系代數(shù)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的三層模式結(jié)構(gòu)本演示文稿可能包含觀眾討論和即席反應(yīng)。使用PowerPoint可以跟蹤演示時(shí)的即席反應(yīng),在幻燈片放映中,右鍵單擊鼠標(biāo)請(qǐng)選擇“會(huì)議記錄”選擇“即席反應(yīng)”選項(xiàng)卡必要時(shí)輸入即席反應(yīng)單擊“確定”撤消此框此動(dòng)作將自動(dòng)在演示文稿末尾創(chuàng)建一張即席反應(yīng)幻燈片,包括您的觀點(diǎn)。

關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)概述關(guān)系數(shù)據(jù)庫(kù)的發(fā)展CODASYL于1962年發(fā)表的“信息代數(shù)”一文

E.F.Codd從1970年起發(fā)表了一系列的論文20世紀(jì)70年代末的實(shí)驗(yàn)系統(tǒng)SystemR和Ingres從20世紀(jì)80年代逐步走向成熟關(guān)系數(shù)據(jù)模型概述關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束關(guān)系數(shù)據(jù)結(jié)構(gòu)

關(guān)系數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,在關(guān)系數(shù)據(jù)模型中,現(xiàn)實(shí)世界中的實(shí)體及實(shí)體與實(shí)體之間的聯(lián)系均用關(guān)系來(lái)表示。從邏輯或用戶的觀點(diǎn)來(lái)看,關(guān)系就是二維表。

關(guān)系操作集合傳統(tǒng)的集合運(yùn)算

并(Union)交(Intersection)差(Difference)廣義笛卡爾積(ExtendedCartesianProduct)

專門(mén)的關(guān)系運(yùn)算選擇(Select)投影(Project)連接(Join)除(Divide)有關(guān)的數(shù)據(jù)操作查詢(Query)插入(Insert)刪除(Delete)修改(Update)

關(guān)系是以集合的方式操作的,即操作的對(duì)象是元組的集合,操作的結(jié)果也是元組的集合。這和非關(guān)系模型的操作結(jié)果是一條記錄有著重要區(qū)別。關(guān)系的操作能力可以用代數(shù)方式和邏輯方式來(lái)表示:代數(shù)方式是通過(guò)關(guān)系代數(shù)對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢要求的方式。邏輯方式是通過(guò)關(guān)系演算、用謂詞表達(dá)對(duì)關(guān)系的查詢要求的方式?,F(xiàn)在關(guān)系數(shù)據(jù)庫(kù)已經(jīng)有了標(biāo)準(zhǔn)語(yǔ)言——SQL(StructuredQueryLanguage),它是一種介于關(guān)系代數(shù)和關(guān)系演算的語(yǔ)言。

綜上所述,又可以把關(guān)系數(shù)據(jù)語(yǔ)言分為三類(lèi):關(guān)系代數(shù)語(yǔ)言、關(guān)系演算語(yǔ)言以及具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的SQL語(yǔ)言。

關(guān)系完整性約束

在數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性。它包括兩方面的內(nèi)容:

與現(xiàn)實(shí)世界中應(yīng)用需求的數(shù)據(jù)的相容性和正確性;數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)之間的相容性和正確性。

在關(guān)系數(shù)據(jù)模型中一般將數(shù)據(jù)完整性分為三類(lèi)

實(shí)體完整性參照完整性用戶定義完整性

關(guān)系數(shù)據(jù)模型關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)和基本術(shù)語(yǔ)

關(guān)系的形式定義

對(duì)關(guān)系的限定(關(guān)系的性質(zhì))

關(guān)系模型的基本術(shù)語(yǔ)

參照關(guān)系和被參照關(guān)系:在關(guān)系數(shù)據(jù)庫(kù)中可以通過(guò)外部關(guān)鍵字使兩個(gè)關(guān)系關(guān)聯(lián),這種聯(lián)系通常是一對(duì)多(1:n)的,其中主(父)關(guān)系(1方)稱為被參照關(guān)系,從(子)關(guān)系(n方)被稱為參照關(guān)系。

關(guān)系屬性值域元組關(guān)系模式候選關(guān)鍵字主關(guān)鍵字主屬性非主屬性外部關(guān)鍵字基本概念(1)關(guān)系(Relation):關(guān)系就是二維表,一個(gè)關(guān)系對(duì)應(yīng)一張二維表。(2)元組(Tuple):二維表中的行。(3)屬性(Attribute):二維表中的列。相當(dāng)于記錄中的一個(gè)字段。每一個(gè)屬性對(duì)應(yīng)一個(gè)名稱稱為屬性名。二維表中列的個(gè)數(shù)稱為稱為關(guān)系的元數(shù),一個(gè)二維表如果有n列,則稱為n元關(guān)系。(4)關(guān)鍵字(Key):可唯一標(biāo)識(shí)元組的屬性或?qū)傩约卜Q為關(guān)系鍵或主碼。(5)域(Domain):屬性的取值范圍,如年齡的域是(14~40),性別的域是(男,女)。(6)分量:每一行對(duì)應(yīng)的列的屬性值,即元組中的一個(gè)屬性值也稱數(shù)據(jù)項(xiàng)。元組的每一個(gè)屬性值稱為元組的一個(gè)分量,n元關(guān)系的每一個(gè)元組有n個(gè)分量。(7)關(guān)系模式:二維表的結(jié)構(gòu)稱為關(guān)系模式。是對(duì)關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,……屬性n),如:學(xué)生(學(xué)號(hào),姓名,性別,年齡,系別)。(8)外部關(guān)鍵字(外碼):如果一個(gè)屬性集不是所在關(guān)系的關(guān)鍵字,但是是其他關(guān)系的關(guān)鍵字,則該屬性集稱為外部關(guān)鍵字,也稱外鍵。(9)主屬性:包含在任一候選關(guān)鍵字中的屬性稱為主屬性。超鍵、候選鍵、主鍵關(guān)系模型是怎么實(shí)現(xiàn)關(guān)系之間的聯(lián)系的?約定:(1)在關(guān)系模式的主鍵屬性下面畫(huà)一條直線,表示主鍵。(2)在關(guān)系模式的外鍵屬性下面畫(huà)一條波浪線,表示外鍵。關(guān)系的形式定義笛卡兒積定義:設(shè)D1,D2,…,Dn為任意集合,定義D1,D2,…,Dn的笛卡兒積為:其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組,簡(jiǎn)稱元組,元組中每一個(gè)di叫作元組的一個(gè)分量。關(guān)系的形式定義:笛卡兒積D1×D2…×Dn的任意一個(gè)子集稱為D1,D2,…,Dn上的一個(gè)n元關(guān)系。例子:1301130313071311學(xué)生×籃球排球足球=項(xiàng)目學(xué)生項(xiàng)目1301籃球1301排球1301足球1303籃球1303排球1303足球1307籃球1307排球1307足球1311籃球1311排球1311足球需要說(shuō)明兩點(diǎn)關(guān)系是元組的集合,集合(關(guān)系)中的元素(元組)是無(wú)序的;而元組不是分量di的集合,元組中的分量是有序的。例如,在關(guān)系中(a,b)≠(b,a),但在集合中{a,b}={b,a}。若一個(gè)關(guān)系的元組個(gè)數(shù)是無(wú)限的,則該關(guān)系稱為無(wú)限關(guān)系,否則稱為有限關(guān)系;在數(shù)據(jù)庫(kù)中只考慮有限關(guān)系。關(guān)系的性質(zhì)每一分量必須是不可分的最小數(shù)據(jù)項(xiàng),即每個(gè)屬性都是不可再分解的,這是關(guān)系數(shù)據(jù)庫(kù)對(duì)關(guān)系的最基本的限定。列的個(gè)數(shù)和每列的數(shù)據(jù)類(lèi)型是固定的,即每一列中的分量是同類(lèi)型的數(shù)據(jù),來(lái)自同一個(gè)值域。不同的列可以出自同一個(gè)值域,每一列稱為屬性,每個(gè)屬性要給予不同的屬性名。列的順序是無(wú)關(guān)緊要的,即列的次序可以任意交換,但一定是整體交換,屬性名和屬性值必須作為整列同時(shí)交換。行的順序是無(wú)關(guān)緊要的,即行的次序可以任意交換。元組不可以重復(fù),即在一個(gè)關(guān)系中任意兩個(gè)元組不能完全一樣。

關(guān)系模型的完整性約束

實(shí)體完整性規(guī)則參照完整性規(guī)則用戶定義完整性完整性約束的作用

實(shí)體完整性規(guī)則實(shí)體完整性是要保證關(guān)系中的每個(gè)元組都是可識(shí)別和唯一的。實(shí)體完整性規(guī)則的具體內(nèi)容是:關(guān)系中的主關(guān)鍵字的值不能為空或部分為空。即主關(guān)鍵字不能取空值。實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件,也稱作是關(guān)系的不變性。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)可以用主關(guān)鍵字實(shí)現(xiàn)實(shí)體完整性,這是由關(guān)系系統(tǒng)自動(dòng)支持的。對(duì)實(shí)體完整性規(guī)則的幾點(diǎn)說(shuō)明實(shí)體完整性規(guī)則是針對(duì)關(guān)系而言的,而關(guān)系則對(duì)應(yīng)一個(gè)現(xiàn)實(shí)世界中的實(shí)體集。例如,倉(cāng)庫(kù)關(guān)系對(duì)應(yīng)現(xiàn)實(shí)世界中的倉(cāng)庫(kù)實(shí)體集?,F(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,它們具有某種標(biāo)識(shí)特征;相應(yīng)地,關(guān)系中的元組也是可區(qū)分的,在關(guān)系中用主關(guān)鍵字做唯一性標(biāo)識(shí)。主關(guān)鍵字中取空值,則意味著關(guān)系中的某個(gè)元組是不可標(biāo)識(shí)的,即存在不可區(qū)分的實(shí)體,這與實(shí)體的定義也是矛盾的。參照完整性規(guī)則現(xiàn)實(shí)世界中的實(shí)體間存在著某種聯(lián)系,而在關(guān)系模型中實(shí)體是用關(guān)系描述的、實(shí)體之間的聯(lián)系也是用關(guān)系描述的,這樣就自然存在著關(guān)系和關(guān)系之間的參照或引用。參照完整性也是關(guān)系模型必須滿足的完整性約束條件,是關(guān)系的另一個(gè)不變性。通過(guò)一個(gè)例子來(lái)說(shuō)明什么是參照完整性

倉(cāng)庫(kù)號(hào)職工號(hào)工資

供應(yīng)商號(hào)供應(yīng)商名地址

職工供應(yīng)商倉(cāng)庫(kù)參照關(guān)系和被參照關(guān)系的定義

設(shè)F是關(guān)系R的一個(gè)屬性或?qū)傩越M,但不是關(guān)系R的關(guān)鍵字,另外有主關(guān)鍵字為K的關(guān)系S。如果關(guān)系R的屬性或?qū)傩越MF與關(guān)系S的主關(guān)鍵字K相對(duì)應(yīng),則稱F是關(guān)系R的外部關(guān)鍵字,并稱關(guān)系R是參照關(guān)系、S是被參照關(guān)系(或目標(biāo)關(guān)系)。關(guān)系R和S可以是同一個(gè)關(guān)系。

例如:職員(職員號(hào),工資,上級(jí))參照完整性規(guī)則

如果屬性(或?qū)傩越M)F是關(guān)系R的外部關(guān)鍵字,它與關(guān)系S的主關(guān)鍵字K相對(duì)應(yīng),則對(duì)于關(guān)系R中每個(gè)元組在屬性(或?qū)傩越M)F上的值必須為:●或者取空值(F的每個(gè)屬性均為空值);●或者等于S中某個(gè)元組的主關(guān)鍵字的值。

不允許參照引用與當(dāng)前關(guān)系相聯(lián)系的另一個(gè)關(guān)系中不存在的元組。

在關(guān)系系統(tǒng)中通過(guò)說(shuō)明外部關(guān)鍵字來(lái)實(shí)現(xiàn)參照完整性,而說(shuō)明外部關(guān)鍵字是通過(guò)說(shuō)明引用的主關(guān)鍵字來(lái)實(shí)現(xiàn)的,也即通過(guò)說(shuō)明外部關(guān)鍵字,關(guān)系系統(tǒng)則可以自動(dòng)支持關(guān)系的參照完整性。

用戶定義完整性指用戶對(duì)某一具體數(shù)據(jù)制定的約束條件進(jìn)行檢驗(yàn)。一種與應(yīng)用密切相關(guān)的數(shù)據(jù)完整性約束,如某個(gè)屬性的值必須唯一某個(gè)屬性的取值必須在某個(gè)范圍內(nèi)某些屬性值之間應(yīng)該滿足一定的函數(shù)關(guān)系等類(lèi)似以上的約束不是關(guān)系數(shù)據(jù)模型本身所要求的,而是為了滿足應(yīng)用方面的語(yǔ)義要求而提出的在用戶定義完整性中最常見(jiàn)的是限定屬性的取值范圍,即對(duì)值域的約束,所以在用戶定義完整性中最常見(jiàn)的是域完整性約束。完整性約束的作用執(zhí)行插入操作時(shí)檢查完整性

執(zhí)行插入操作時(shí)需要分別檢查實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性規(guī)則。

執(zhí)行刪除操作時(shí)檢查完整性

執(zhí)行刪除操作時(shí)一般只需要檢查參照完整性規(guī)則。

執(zhí)行更新操作時(shí)檢查完整性

執(zhí)行更新操作可以看作是先刪除舊的元組,然后再插入新的元組。所以執(zhí)行更新操作時(shí)的完整性檢查綜合了上述兩種情況。

從E-R模型到關(guān)系模型的轉(zhuǎn)換1、從E-R圖導(dǎo)出關(guān)系模型的基本原則:(1)E-R圖中每個(gè)實(shí)體類(lèi)型都應(yīng)轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性即關(guān)系模式的屬性。(2)E-R圖中聯(lián)系類(lèi)型情況較復(fù)雜,需根據(jù)不同情況做不同的處理。下面著重討論聯(lián)系的轉(zhuǎn)換方法。兩實(shí)體集間1:n聯(lián)系

兩實(shí)體集間1:n聯(lián)系,可將“一方”實(shí)體的主關(guān)鍵字納入“n方”實(shí)體集對(duì)應(yīng)的關(guān)系中作為“外部關(guān)鍵字”,同時(shí)把聯(lián)系的屬性也一并納入“n方”對(duì)應(yīng)的關(guān)系中。

兩實(shí)體集間m:n聯(lián)系

對(duì)于兩實(shí)體集間m:n聯(lián)系,必須對(duì)“聯(lián)系”單獨(dú)建立一個(gè)關(guān)系,用來(lái)聯(lián)系雙方實(shí)體集。該關(guān)系的屬性中至少要包括被它所聯(lián)系的雙方實(shí)體集的“主關(guān)鍵字”,并且如果聯(lián)系有屬性,也要?dú)w入這個(gè)關(guān)系中。兩實(shí)體集間的1:1的聯(lián)系

假設(shè)A實(shí)體集與B實(shí)體集是1:1的聯(lián)系,聯(lián)系的轉(zhuǎn)換有三種方法:①把A實(shí)體集的主關(guān)鍵字加入到B實(shí)體集對(duì)應(yīng)的關(guān)系中,如果聯(lián)系有屬性也一并加入;②把B實(shí)體集的主關(guān)鍵字加入到A實(shí)體集對(duì)應(yīng)的關(guān)系中,如果聯(lián)系有屬性也一并加入;③建立第三個(gè)關(guān)系,關(guān)系中包含兩個(gè)實(shí)體集的主關(guān)鍵字,如果聯(lián)系有屬性也一并加入。練習(xí):關(guān)系模式的冗余和異常問(wèn)題數(shù)據(jù)冗余:指同一數(shù)據(jù)在系統(tǒng)中多次重復(fù)出現(xiàn).

一個(gè)關(guān)系模式設(shè)計(jì)的不好,會(huì)出現(xiàn)像文件系統(tǒng)一樣的數(shù)據(jù)冗余、異常和不一致等問(wèn)題。例:設(shè)有一個(gè)關(guān)系模式R(學(xué)號(hào),課程號(hào),課程名,教師名)學(xué)號(hào)課程號(hào)課程名教師名S2C4高數(shù)張三S4C4高數(shù)張三S6C4高數(shù)張三S6C2英語(yǔ)李四S4C2英語(yǔ)李四S8C6VB王五下表表示該關(guān)系模式的若干實(shí)例數(shù)據(jù)冗余操作異常(1)修改異常(2)插入異常(3)刪除異常由此可見(jiàn),上例中的關(guān)系模式的設(shè)計(jì)不是一個(gè)合適的設(shè)計(jì)?!胺纸狻笔墙鉀Q冗余的主要辦法,也是規(guī)范化的一條原則。用下面兩個(gè)關(guān)系模式R1和R2代替RR1(學(xué)號(hào),課程號(hào))R2(課程號(hào),課程名,教師名)注意:R分解成R1和R2兩個(gè)模式是否最佳分解,也不是絕對(duì)的函數(shù)依賴概念:是指關(guān)系中屬性之間取值的依賴情況

假定關(guān)系R(A,B,C)中,當(dāng)A有一取值時(shí),便唯一對(duì)應(yīng)一個(gè)B值和C值,則稱B和C依賴于A,或稱A決定了B或C,簡(jiǎn)記為A->B,A->C。關(guān)系中可能存在的不同函數(shù)依賴(1)完全函數(shù)依賴(2)部分函數(shù)依賴(3)傳遞函數(shù)依賴實(shí)例分析有學(xué)生關(guān)系模式學(xué)生(學(xué)號(hào),課程號(hào),姓名,性別,班級(jí),班主任,課程名,學(xué)時(shí)數(shù),成績(jī))范式與規(guī)范化1、第一范式(1NF):如果關(guān)系模式R的每個(gè)屬性都是不可分的原子值,那么稱R是第一范式的模式。2、第二范式(2NF):對(duì)于滿足1NF的關(guān)系,通過(guò)消除非主屬性對(duì)主關(guān)鍵字的部分函數(shù)依賴,使之達(dá)到2NF。3、第三范式(3NF):如果一個(gè)關(guān)系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF)。分解關(guān)系的基本原則:

關(guān)系規(guī)范化實(shí)際上是關(guān)系逐步逐步分解的過(guò)程,通過(guò)分解使關(guān)系逐步達(dá)到較高范式。但是分解方法往往不是唯一的,不同的分解可能導(dǎo)致關(guān)系數(shù)據(jù)庫(kù)的性能有很大差別。應(yīng)遵循的原則:(1)分解必須是無(wú)損的,即分解后不應(yīng)丟失信息;(2)分解后的關(guān)系要相互獨(dú)立,避免對(duì)一個(gè)關(guān)系的修改波及另一個(gè)關(guān)系;(3)遵從“一事一地”原則,即一個(gè)關(guān)系只表達(dá)一個(gè)主題,如果涉及多個(gè)主題,就應(yīng)該繼續(xù)分解關(guān)系。關(guān)系代數(shù)基本概念和符號(hào)傳統(tǒng)的集合運(yùn)算專門(mén)的關(guān)系運(yùn)算基本運(yùn)算及變換

關(guān)系代數(shù)的基本概念關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,關(guān)系代數(shù)的運(yùn)算結(jié)果也是關(guān)系。與一般的運(yùn)算一樣,運(yùn)算對(duì)象、運(yùn)算符和運(yùn)算結(jié)果也是關(guān)系代數(shù)的三個(gè)要素。關(guān)系代數(shù)的運(yùn)算可以分為兩大類(lèi)傳統(tǒng)的集合運(yùn)算

專門(mén)的關(guān)系運(yùn)算

關(guān)系代數(shù)的運(yùn)算符可以分為四類(lèi):集合運(yùn)算符

專門(mén)的關(guān)系運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符幾個(gè)概念和專門(mén)的符號(hào)元組的分量元組的連串元組中屬性的映像集元組的分量設(shè)有關(guān)系模式R(A1,A2,…,An)r∈R表示r是R的一個(gè)元組r.Ai或r[Ai]表示r這個(gè)元組中相應(yīng)于屬性Ai的一個(gè)分量例如,假設(shè)R是倉(cāng)庫(kù)關(guān)系,r=("WH1","北京",370)是倉(cāng)庫(kù)關(guān)系的一個(gè)元組,則r∈R

,r.倉(cāng)庫(kù)號(hào)或r[倉(cāng)庫(kù)號(hào)]為"WH1"。元組的連串設(shè)R為m元關(guān)系,S為n元關(guān)系,并且

r=(r1,r2,…,rm)∈Rs=(s1,s2,…,sn)∈S則稱為元組的連串。這是一個(gè)(m+n)元組,前m個(gè)分量為R中的一個(gè)m元組,后n個(gè)分量為S中的一個(gè)n元組。

元組中屬性的映像集設(shè)有關(guān)系模式R(X,Y),其中X、Y可以是單個(gè)屬性,也可以是屬性集,定義當(dāng)X取值為x時(shí),x在R中的映象集為:

設(shè)有如右上表所示的訂購(gòu)單關(guān)系,把它命名為R,并且進(jìn)一步設(shè)X為屬性職工號(hào),Y為屬性集{供應(yīng)商號(hào),訂購(gòu)單號(hào),訂購(gòu)日期},則當(dāng)X取值為E3時(shí)

{(S7,OR67,2002/06/23),(S4,OR79,2002/07/29),(S6,OR90,2002/07/13),(S3,OR91,2002/10/27)}Yx=?映像集的例子傳統(tǒng)的集合運(yùn)算集合的并運(yùn)算集合的交運(yùn)算集合的差運(yùn)算集合的廣義笛卡爾積運(yùn)算集合的并、交、差運(yùn)算示意集合的廣義笛卡爾積運(yùn)算設(shè)R和S是兩個(gè)關(guān)系,如果R是m元關(guān)系、有k個(gè)元組,S是n元關(guān)系、有l(wèi)個(gè)元組,則廣義笛卡爾積R×S是一個(gè)m+n元關(guān)系、有k×l個(gè)元組。廣義笛卡兒積可以記作:專門(mén)的關(guān)系運(yùn)算選擇運(yùn)算(Select)投影運(yùn)算(Project)連接運(yùn)算(Join)除運(yùn)算(Division)選擇運(yùn)算

選擇運(yùn)算是從指定的關(guān)系中選擇某些元組形成一個(gè)新的關(guān)系,被選擇的元組是用滿足某個(gè)邏輯條件來(lái)指定的。選擇運(yùn)算表示為:

其中R是關(guān)系名,σ是選擇運(yùn)算符,F(xiàn)是邏輯表達(dá)式。選擇運(yùn)算舉例:σ職工號(hào)="E3"(訂購(gòu)單)訂購(gòu)單關(guān)系

從訂購(gòu)單關(guān)系中選擇職工號(hào)為“E3”的元組構(gòu)成新的關(guān)系投影運(yùn)算1)選擇指定的屬性,形成一個(gè)可能含有重復(fù)行的表格;2)刪除重復(fù)行,形成新的關(guān)系。

投影運(yùn)算對(duì)指定的關(guān)系進(jìn)行投影操作,根據(jù)該關(guān)系分兩步產(chǎn)生一個(gè)新關(guān)系:投影運(yùn)算表示為

其中R是關(guān)系名,π是投影運(yùn)算符,A是被投影的屬性或?qū)傩约M队斑\(yùn)算舉例:訂購(gòu)單關(guān)系

選取職工號(hào)和供應(yīng)商號(hào)兩列構(gòu)成新的關(guān)系π職工號(hào),供應(yīng)商號(hào)(訂購(gòu)單)選擇和投影運(yùn)算舉例:

從訂購(gòu)單關(guān)系中,選取出職工號(hào)為E3的所經(jīng)手的訂購(gòu)單號(hào)和與之相關(guān)的供應(yīng)商號(hào)。訂購(gòu)單關(guān)系π供應(yīng)商號(hào),訂購(gòu)單號(hào)(σ職工號(hào)="E3"(訂購(gòu)單))連接運(yùn)算

連接運(yùn)算是兩個(gè)表之間的運(yùn)算,這兩個(gè)表通常是具有一對(duì)多聯(lián)系的父子關(guān)系。所以連接過(guò)程一般是由參照關(guān)系的外部關(guān)鍵字和被參照關(guān)系的主關(guān)鍵字來(lái)控制的,這樣的屬性通常也稱為連接屬性。連接運(yùn)算的概念連接運(yùn)算是將滿足兩個(gè)表之間運(yùn)算關(guān)系的記錄連接成一條記錄,所有這樣的記錄構(gòu)成新的表(連接運(yùn)算的結(jié)果)。連接運(yùn)算可以表示為:

這里Ai是R中的屬性,Bj是S中的屬性,θ是關(guān)系(比較)運(yùn)算符,連接的結(jié)果是一個(gè)廣義笛卡兒乘積的子集,其中的元組滿足Ai和Bj間的θ關(guān)系。當(dāng)θ為“=”時(shí),稱為等值連接;θ為“<”時(shí),稱為小于連接;θ為“>”時(shí),稱為大于連接等等。自然連接在連接運(yùn)算中最常用的連接是自然連接。自然連接運(yùn)算一般表示為:

其中Ai和Bj要出自同一個(gè)值域,并且在實(shí)際應(yīng)用中這兩個(gè)屬性往往具有相同的屬性名。自然連接做了三件事:計(jì)算廣義笛卡爾積R×S

;選擇滿足條件r[Ai]=s[Bj]的所有元組;去掉重復(fù)的屬性。自然連接的例子注意:為了使一個(gè)關(guān)系中的任一元組都參加自然連接,該元組的連接屬性(字段)值必須出現(xiàn)在另一個(gè)參加連接的關(guān)系中;連接陷阱問(wèn)題;一般在實(shí)際應(yīng)用中可以父無(wú)子,而不可以子無(wú)父,否則將破壞參照數(shù)據(jù)完整性。綜合運(yùn)算實(shí)例

根據(jù)以上關(guān)系求出在上海工作的職工的工資值都有哪些?倉(cāng)庫(kù)職工關(guān)系代數(shù)語(yǔ)句為:查詢過(guò)程示意選擇運(yùn)算自然連接運(yùn)算投影運(yùn)算注意

自然連接和等值連接很相象,但它們不同,自然連接要去掉重復(fù)的屬性,而等值連接卻不需要去掉重復(fù)的屬性。除運(yùn)算

設(shè)有關(guān)系R(X,Y)和S(Y),其中X、Y可以是單個(gè)屬性或?qū)傩约?,則除法運(yùn)算定義為:如何理解除運(yùn)算?理解除法運(yùn)算R(X,Y)是被除關(guān)系S(Y)是除關(guān)系商關(guān)系由R中某些X屬性值構(gòu)成,其中的任一X值所對(duì)應(yīng)的一組Y值都包含除關(guān)系S。除運(yùn)算常用于至少…查詢或運(yùn)算除運(yùn)算的例子它的含義是:至少向WH1、WH3、WH5供貨的供應(yīng)商號(hào)?;具\(yùn)算及變換

在關(guān)系代數(shù)運(yùn)算中集合的并運(yùn)算、差運(yùn)算、笛卡爾積運(yùn)算以及選擇運(yùn)算和投影運(yùn)算是5種基本運(yùn)算,另三種運(yùn)算(集合的交運(yùn)算以及連接運(yùn)算和除運(yùn)算)可以用5種基本運(yùn)算來(lái)表達(dá),引進(jìn)它們并不增加語(yǔ)言的能力,但是可以簡(jiǎn)化表達(dá)。兩個(gè)關(guān)系的交運(yùn)算可以表示為R∩S=R-(R-S)兩個(gè)關(guān)系的自然連接運(yùn)算可以表示為兩個(gè)關(guān)系的θ連接運(yùn)算可以表示為兩個(gè)關(guān)系的除運(yùn)算可以表示為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的三層模式結(jié)構(gòu)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論