課件-第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)說明:本文檔由用戶提供并上傳,收益歸屬內(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)系來表示。從邏輯或用戶的觀點(diǎn)來看,關(guān)系就是二維表。

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

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

專門的關(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ù)方式和邏輯方式來表示:代數(shù)方式是通過關(guān)系代數(shù)對(duì)關(guān)系的運(yùn)算來表達(dá)查詢要求的方式。邏輯方式是通過關(guān)系演算、用謂詞表達(dá)對(duì)關(guān)系的查詢要求的方式。現(xiàn)在關(guān)系數(shù)據(jù)庫(kù)已經(jīng)有了標(biāo)準(zhǔn)語言——SQL(StructuredQueryLanguage),它是一種介于關(guān)系代數(shù)和關(guān)系演算的語言。

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

關(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ù)完整性分為三類

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

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

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

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

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

參照關(guān)系和被參照關(guān)系:在關(guān)系數(shù)據(jù)庫(kù)中可以通過外部關(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)系模式的主鍵屬性下面畫一條直線,表示主鍵。(2)在關(guān)系模式的外鍵屬性下面畫一條波浪線,表示外鍵。關(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足球需要說明兩點(diǎn)關(guān)系是元組的集合,集合(關(guān)系)中的元素(元組)是無序的;而元組不是分量di的集合,元組中的分量是有序的。例如,在關(guān)系中(a,b)≠(b,a),但在集合中{a,b}={b,a}。若一個(gè)關(guān)系的元組個(gè)數(shù)是無限的,則該關(guān)系稱為無限關(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ù)類型是固定的,即每一列中的分量是同類型的數(shù)據(jù),來自同一個(gè)值域。不同的列可以出自同一個(gè)值域,每一列稱為屬性,每個(gè)屬性要給予不同的屬性名。列的順序是無關(guān)緊要的,即列的次序可以任意交換,但一定是整體交換,屬性名和屬性值必須作為整列同時(shí)交換。行的順序是無關(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)說明實(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è)不變性。通過一個(gè)例子來說明什么是參照完整性

倉(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ān)鍵字來實(shí)現(xiàn)參照完整性,而說明外部關(guān)鍵字是通過說明引用的主關(guān)鍵字來實(shí)現(xiàn)的,也即通過說明外部關(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)系等類似以上的約束不是關(guān)系數(shù)據(jù)模型本身所要求的,而是為了滿足應(yīng)用方面的語義要求而提出的在用戶定義完整性中最常見的是限定屬性的取值范圍,即對(duì)值域的約束,所以在用戶定義完整性中最常見的是域完整性約束。完整性約束的作用執(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í)體類型都應(yīng)轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性即關(guān)系模式的屬性。(2)E-R圖中聯(lián)系類型情況較復(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)系,用來聯(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)系模式的冗余和異常問題數(shù)據(jù)冗余:指同一數(shù)據(jù)在系統(tǒng)中多次重復(fù)出現(xiàn).

一個(gè)關(guān)系模式設(shè)計(jì)的不好,會(huì)出現(xiàn)像文件系統(tǒng)一樣的數(shù)據(jù)冗余、異常和不一致等問題。例:設(shè)有一個(gè)關(guān)系模式R(學(xué)號(hào),課程號(hào),課程名,教師名)學(xué)號(hào)課程號(hào)課程名教師名S2C4高數(shù)張三S4C4高數(shù)張三S6C4高數(shù)張三S6C2英語李四S4C2英語李四S8C6VB王五下表表示該關(guān)系模式的若干實(shí)例數(shù)據(jù)冗余操作異常(1)修改異常(2)插入異常(3)刪除異常由此可見,上例中的關(guān)系模式的設(shè)計(jì)不是一個(gè)合適的設(shè)計(jì)。“分解”是解決冗余的主要辦法,也是規(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)系,通過消除非主屬性對(duì)主關(guān)鍵字的部分函數(shù)依賴,使之達(dá)到2NF。3、第三范式(3NF):如果一個(gè)關(guān)系滿足2NF,并且除了主鍵以外的其他列都不傳遞依賴于主鍵列,則滿足第三范式(3NF)。分解關(guān)系的基本原則:

關(guān)系規(guī)范化實(shí)際上是關(guān)系逐步逐步分解的過程,通過分解使關(guān)系逐步達(dá)到較高范式。但是分解方法往往不是唯一的,不同的分解可能導(dǎo)致關(guān)系數(shù)據(jù)庫(kù)的性能有很大差別。應(yīng)遵循的原則:(1)分解必須是無損的,即分解后不應(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)算專門的關(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)算可以分為兩大類傳統(tǒng)的集合運(yùn)算

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

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

專門的關(guān)系運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符幾個(gè)概念和專門的符號(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è)元組。廣義笛卡兒積可以記作:專門的關(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è)邏輯條件來指定的。選擇運(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ān)系的外部關(guān)鍵字和被參照關(guān)系的主關(guān)鍵字來控制的,這樣的屬性通常也稱為連接屬性。連接運(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)系中;連接陷阱問題;一般在實(shí)際應(yīng)用中可以父無子,而不可以子無父,否則將破壞參照數(shù)據(jù)完整性。綜合運(yùn)算實(shí)例

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

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

設(shè)有關(guān)系R(X,Y)和S(Y),其中X、Y可以是單個(gè)屬性或?qū)傩约瑒t除法運(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)算來表達(dá),引進(jìn)它們并不增加語言的能力,但是可以簡(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論