關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)修改_第1頁(yè)
關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)修改_第2頁(yè)
關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)修改_第3頁(yè)
關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)修改_第4頁(yè)
關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)修改_第5頁(yè)
已閱讀5頁(yè),還剩81頁(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)介

會(huì)計(jì)學(xué)1關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)修改第2章關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)學(xué)習(xí)目標(biāo):了解關(guān)系模型的基本概念;熟悉關(guān)系數(shù)據(jù)結(jié)構(gòu)、完整性約束條件;掌握關(guān)系代數(shù)的各種運(yùn)算操作;結(jié)合實(shí)際、綜合應(yīng)用關(guān)系代數(shù)操作第1頁(yè)/共86頁(yè)教學(xué)內(nèi)容2.1關(guān)系模型的基本概念2.2關(guān)系代數(shù)第2頁(yè)/共86頁(yè)2.1.1關(guān)系模型概述

關(guān)系模型是數(shù)據(jù)庫(kù)系統(tǒng)中最重要的一種模型。它由數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和完整性約束三部分組成。 最早提出關(guān)系模型的是美國(guó)IBM公司的E.F.Codd(埃德加·科德)博士1970年提出關(guān)系數(shù)據(jù)模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念1972年提出了關(guān)系的第一、第二、第三范式1974年提出了關(guān)系的BC范式第3頁(yè)/共86頁(yè)2.1.1關(guān)系模型概述

1.數(shù)據(jù)結(jié)構(gòu)。

單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系.現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示

數(shù)據(jù)的邏輯結(jié)構(gòu)----二維表.從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。第4頁(yè)/共86頁(yè)

2.關(guān)系操作。

關(guān)系操作采用集合操作方式,即操作的對(duì)象和結(jié)果都是集合。這種方式也稱為一次一集合的方式。

非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一記錄的方式。

關(guān)系模型中常用的關(guān)系操作:查詢操作:選擇、投影、連接、除、并、交、差。更新操作:增加、刪除、修改。

表達(dá)關(guān)系操作的關(guān)系數(shù)據(jù)語(yǔ)言:

(1)關(guān)系代數(shù)語(yǔ)言。(用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢要求的方式。)(2)關(guān)系演算。(用謂詞來(lái)表達(dá)查詢要求的方式。)(3)介于關(guān)系代數(shù)和關(guān)系演算之間的語(yǔ)言SQL。第5頁(yè)/共86頁(yè)3.完整性約束。實(shí)體完整性通常由關(guān)系系統(tǒng)自動(dòng)支持參照完整性通常由關(guān)系系統(tǒng)自動(dòng)支持用戶定義的完整性反映應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語(yǔ)義約束用戶定義后由系統(tǒng)支持第6頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念關(guān)系關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)第7頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)一、關(guān)系1.域(Domain)定義是一組具有相同數(shù)據(jù)類型的值的集合。域一般用大寫字母D表示,如D1,D2,…,Dn等。其中域中數(shù)據(jù)的個(gè)數(shù)叫域的基數(shù)。舉例:整數(shù)實(shí)數(shù)指定長(zhǎng)度的字符串集合介于某個(gè)取值范圍的整數(shù){‘男’,‘女’}介于某個(gè)取值范圍的日期第8頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)2.笛卡爾積(CartesianProduct)定義:

給定一組域D1,D2,…,Dn,這些域中可以存在相同的域。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}說(shuō)明:所有域的所有取值的一個(gè)組合不能重復(fù)第9頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)

笛卡爾積可表示為一個(gè)二維表。舉例:【例2-1-2】設(shè)D1={a,b},D2={c,d,e},D3={f,g}則D1×D2×D3={(a,c,f),(a,c,g),(a,d,f),(a,d,g),(a,e,f),(a,e,g),(b,c,f),(b,c,g),(b,d,f),(b,d,g),(b,e,f),(b,e,g)}。第10頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)結(jié)果用二維表格表示如表2-3所示D1D2D3acfacgadfadgaefaegbcfbcgbdfbdgbefbeg表2-3用二維表格表示D1×D2×D3第11頁(yè)/共86頁(yè)元組(Tuple)笛卡爾積中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-tuple)或簡(jiǎn)稱元組,即行。例:(a,c,f)分量(Component)元素(d1,d2,…,dn)中的每一個(gè)值叫作一個(gè)分量,即列。第12頁(yè)/共86頁(yè)2.笛卡爾積(CartesianProduct)基數(shù)

如果Di(i=1,,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),

則D1×D2×…×Dn的基數(shù)=m1×m2×…×mn,即笛卡爾積的基數(shù)等于所有域的基數(shù)累乘。在例2-1-3中:

D1的基數(shù)m1=2,

D2的基數(shù)m1=2,

D3的基數(shù)m3=3D1×D2×D3的基數(shù)=m1×m2×m3=2×2×3=12。第13頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)

【例2-1-3】

D1(表示導(dǎo)師的集合)={張清玫、劉逸

}D2(表示專業(yè)的集合)={計(jì)算機(jī)專業(yè)、信息專業(yè)}D3(表示學(xué)生的集合)={李勇、劉晨、王敏}D1×D2×D3的笛卡爾集為:第14頁(yè)/共86頁(yè)

2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)第15頁(yè)/共86頁(yè)3.關(guān)系(Relation)假設(shè):導(dǎo)師與專業(yè):1:1導(dǎo)師與研究生:1:n第16頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)定義:D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的關(guān)系,用R(D1,D2,…,Dn)表示。這里R表示關(guān)系的名字,n是關(guān)系的目或度(Degree)。說(shuō)明:關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系。當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系。第17頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)可見(jiàn)關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性(Attribute)。N目關(guān)系必有n個(gè)屬性,屬性的名稱要唯一。若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼(Candidatekey)。若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primarykey)。主碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何侯選碼中的屬性稱為非碼屬性(Non-keyattribute)。在最簡(jiǎn)單的情況下,侯選碼只包含一個(gè)屬性。在最極端的情況下,關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的侯選碼,稱為全碼(All-key)。第18頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)舉例:【例2-1-3】學(xué)生選課數(shù)據(jù)庫(kù)中有三個(gè)關(guān)系:學(xué)生(學(xué)號(hào),姓名,性別,年齡,籍貫,班級(jí),系別)課程(課號(hào),課名)成績(jī)(學(xué)號(hào),課號(hào),成績(jī))其中帶下劃線的部分給出了每個(gè)關(guān)系的候選碼(或稱主碼)。第19頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)4.關(guān)系的性質(zhì)關(guān)系是用集合代數(shù)的笛卡兒積定義的,是元組的集合,因此關(guān)系具有以下性質(zhì):列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來(lái)自同一個(gè)域;不同的列可出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名;列的順序無(wú)所謂,即列的次序可以任意交換;任意兩個(gè)元組不能完全相同;行的順序無(wú)所謂,即行的次序可以任意交換;所有屬性值都是原子的,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng),不允許屬性又是一個(gè)二維關(guān)系;第20頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)舉例:下面的工資關(guān)系(如表2-4)不符合關(guān)系的規(guī)范化要求,在數(shù)據(jù)庫(kù)中是不被允許的,因?yàn)楸硎竟べY的屬性不是一個(gè)原子分量。姓名工資基本工資職貼獎(jiǎng)金李立500120600周濤800200500表2-4工資關(guān)系第21頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)5.關(guān)系模式定義:關(guān)系的描述稱為關(guān)系模式(RelationSchema)。一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)五元組。它可以形式化地表示為:R(U,D,dom,F)。其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來(lái)自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。說(shuō)明:關(guān)系模式通??梢院?jiǎn)記為:R(A1,A2,…,An)。其中R為關(guān)系名,A1,A2,…,An為屬性名。而域名及屬性向域的映象常常直接說(shuō)明為屬性的類型、長(zhǎng)度。舉例:【例2-1-5】一個(gè)表示學(xué)生的關(guān)系可以簡(jiǎn)記為:

學(xué)生(學(xué)號(hào),姓名,性別,年齡,籍貫,班級(jí),系別)第22頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)6.關(guān)系數(shù)據(jù)庫(kù)

在一個(gè)給定的現(xiàn)實(shí)世界領(lǐng)域中,相應(yīng)于所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)也有型和值之分。關(guān)系數(shù)據(jù)庫(kù)的型也稱為關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述,是關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫(kù)的值也稱為關(guān)系數(shù)據(jù)庫(kù),是關(guān)系的集合。關(guān)系數(shù)據(jù)庫(kù)模式與關(guān)系數(shù)據(jù)庫(kù)通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫(kù)。第23頁(yè)/共86頁(yè)2.1.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)

總結(jié):關(guān)系實(shí)際上就是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。也就是說(shuō),關(guān)系模式是型,關(guān)系是它的值。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫(kù)中的數(shù)據(jù)。但在實(shí)際當(dāng)中,常常把關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系,可以從上下文中加以區(qū)別。第24頁(yè)/共86頁(yè)2.1.3關(guān)系的完整性關(guān)系的完整性概述實(shí)體完整性參照完整性用戶定義的完整性第25頁(yè)/共86頁(yè)2.1.3關(guān)系的完整性的概述

數(shù)據(jù)完整性由完整性規(guī)則來(lái)定義,關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束。在關(guān)系模型中,數(shù)據(jù)的約束條件通過(guò)三類完整性約束條件來(lái)描述,它們是:實(shí)體完整性參照完整性用戶定義的完整性

為了維護(hù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)完整性,在對(duì)關(guān)系數(shù)據(jù)庫(kù)執(zhí)行插入、刪除和修改等操作時(shí),必須遵守這三類完整性規(guī)則。第26頁(yè)/共86頁(yè)1.

實(shí)體完整性(EntityIntegrity)實(shí)體完整性規(guī)則

若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。

例:學(xué)生(學(xué)號(hào),姓名,性別,年齡,籍貫,班級(jí),系別)

學(xué)號(hào)作為學(xué)生關(guān)系的主屬性,則學(xué)號(hào)不能取空值例:選課(學(xué)號(hào),課號(hào),成績(jī))

學(xué)號(hào)和課號(hào)一起作為選課關(guān)系的主屬性,則學(xué)號(hào)和課號(hào)都不能取空值。

在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,用戶在建立關(guān)系模式時(shí),應(yīng)定義該模式的實(shí)體完整性規(guī)則。設(shè)置某些屬性為主鍵,在這些屬性中不能設(shè)置取空值,以保證關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的任何一個(gè)關(guān)系都滿足實(shí)體完整性約束條件。

第27頁(yè)/共86頁(yè)1.

實(shí)體完整性(EntityIntegrity)實(shí)體完整性規(guī)則的說(shuō)明

關(guān)系模型是用關(guān)系來(lái)描述實(shí)體及實(shí)體間的關(guān)系,所以在數(shù)據(jù)庫(kù)中一個(gè)關(guān)系對(duì)應(yīng)現(xiàn)實(shí)世界中的一個(gè)實(shí)體集,關(guān)系中的每一個(gè)元組對(duì)應(yīng)一個(gè)實(shí)體?,F(xiàn)實(shí)世界中的每一個(gè)實(shí)體都是可以區(qū)分的,在關(guān)系中用主鍵唯一地標(biāo)識(shí)一個(gè)實(shí)體(元組)。若一個(gè)實(shí)體(元組)的主鍵值為空(所謂空值是“不知道”或“不確定”的值),說(shuō)明存在某個(gè)未知的實(shí)體,這和實(shí)體的概念相矛盾。

第28頁(yè)/共86頁(yè)2.參照完整性(1).關(guān)系間的引用在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)描述的,因此可能存在著關(guān)系與關(guān)系間的引用。

例3:學(xué)生實(shí)體、專業(yè)實(shí)體 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)主碼學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號(hào)”。學(xué)生關(guān)系中的“專業(yè)號(hào)”值必須是確實(shí)存在的專業(yè)的專業(yè)號(hào)

,即專業(yè)關(guān)系中有該專業(yè)的記錄。第29頁(yè)/共86頁(yè)(2).外鍵(ForeignKey)外鍵的定義

設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外鍵(外碼)基本關(guān)系R稱為參照關(guān)系(ReferencingRelation)基本關(guān)系S稱為被參照關(guān)系(ReferencedRelation)或目標(biāo)關(guān)系(TargetRelation)第30頁(yè)/共86頁(yè)(2).外鍵(ForeignKey)例:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡);

專業(yè)(專業(yè)號(hào),專業(yè)名)

“專業(yè)號(hào)”屬性是學(xué)生關(guān)系的外碼專業(yè)關(guān)系是被參照關(guān)系,學(xué)生關(guān)系為參照關(guān)系例:學(xué)生(學(xué)號(hào),年齡,性別);

課程(課號(hào),課名);

選修(學(xué)號(hào),課號(hào),成績(jī))。

“學(xué)號(hào)”和“課程號(hào)”是選修關(guān)系的外碼。學(xué)生關(guān)系和課程關(guān)系均為被參照關(guān)系。選修關(guān)系為參照關(guān)系。第31頁(yè)/共86頁(yè)3.參照完整性(Referentialintegrity)參照完整性規(guī)則

若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值目標(biāo)關(guān)系S的主碼Ks和參照關(guān)系的外碼F必須定義在同一個(gè)(或一組)域上。外碼并不一定要與相應(yīng)的主碼同名,當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時(shí),往往取相同的名字,以便于識(shí)別。第32頁(yè)/共86頁(yè)3.參照完整性(Referentialintegrity)例:學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號(hào)”屬性只取兩類值:空值,表示尚未給該學(xué)生分配專業(yè)非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號(hào)”值,表示該學(xué)生不可能分配一個(gè)不存在的專業(yè)例:選修(學(xué)號(hào),課程號(hào),成績(jī))

“學(xué)號(hào)”和“課程號(hào)”可能的取值:選修關(guān)系中的主屬性,不能取空值只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值第33頁(yè)/共86頁(yè)4.用戶定義的完整性用戶自定義的完慗性

關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)還允許用戶定義某一具體數(shù)據(jù)庫(kù)所涉及的數(shù)據(jù)必須滿足的約束條件。這種約束條件是對(duì)數(shù)據(jù)在語(yǔ)義范疇的描述,由具體應(yīng)用環(huán)境來(lái)決定,這就是用戶定義的完整性。例如:限定學(xué)生關(guān)系中學(xué)生的年齡在13~35之間針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能第34頁(yè)/共86頁(yè)4.用戶定義的完整性例:課程(課程號(hào),課程名,學(xué)分)“課程號(hào)”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值{1,2,3,4}第35頁(yè)/共86頁(yè)練習(xí)1用二維表數(shù)據(jù)來(lái)表示實(shí)體之間聯(lián)系的模型叫做________

A)網(wǎng)狀模型

B)層次模型

C)關(guān)系模型

D)實(shí)體聯(lián)系模型C第36頁(yè)/共86頁(yè)練習(xí)2關(guān)于關(guān)系模式碼的敘述中,哪一項(xiàng)是不正確的

A當(dāng)候選碼多于一個(gè)時(shí),選定其中一個(gè)作為主碼

B主碼可以是單個(gè)屬性,也可以是屬性組

C不包含在主碼中的屬性稱為非主屬性

D若一個(gè)關(guān)系模式中的所有屬性構(gòu)成碼,則稱為全碼C第37頁(yè)/共86頁(yè)練習(xí)3主鍵約束用來(lái)強(qiáng)制數(shù)據(jù)的

完整性。

A)域B)實(shí)體

C)參照D)ABC都可以B第38頁(yè)/共86頁(yè)練習(xí)4如果把學(xué)生看為實(shí)體,某個(gè)學(xué)生的姓名叫“張三”,則張三應(yīng)看成是()

A)記錄型

B)記錄值

C)屬性型

D)屬性值D第39頁(yè)/共86頁(yè)練習(xí)5設(shè)有關(guān)系SC(SNO,CNO,GRADE),主碼是(SNO,CNO).遵照實(shí)體完整性規(guī)則A)只有SNO不能取空值B)只有CNO不能取空值C)只有GRADE不能取空值D)SNO與CNO都不能取空值D第40頁(yè)/共86頁(yè)練習(xí)6在下面的兩個(gè)關(guān)系中、職工號(hào)和部門號(hào)分別為職工關(guān)系和部門關(guān)系的主鍵(或稱主碼)。職工(職工號(hào)、職工名、部門號(hào)、職務(wù)、工資)

部門(部門號(hào)、部門名、部門人數(shù)、工資總額)

在這兩個(gè)關(guān)系的屬性中,只有一個(gè)屬性是外鍵(或稱外來(lái)鍵、外碼、外來(lái)碼)。它是________。

A)職工關(guān)系的“職工號(hào)”

B)職工關(guān)系的“部門號(hào)”

C)部門關(guān)系的“部門號(hào)”

D)部門關(guān)系的“部門名”B第41頁(yè)/共86頁(yè)練習(xí)7設(shè)有關(guān)系模式R(A,B,C)和S(E,A,F),若R.A是R的主碼,S.A是S的外碼,則S.A的值或者等于R中某個(gè)元組的主碼值,或者取空(null)。這是

完整性規(guī)則參照第42頁(yè)/共86頁(yè)強(qiáng)化練習(xí):1.構(gòu)成E-R圖的基本要素是什么?2.請(qǐng)?jiān)O(shè)計(jì)一個(gè)圖書館數(shù)據(jù)庫(kù),此數(shù)據(jù)庫(kù)中對(duì)每個(gè)借閱者保存的記錄包括:讀者號(hào),姓名,地址,性別,年齡,單位。對(duì)每本書保存有:書號(hào),書名,作者,出版社。對(duì)每本被借出的書保存有讀者號(hào)、借出日期和應(yīng)還日期。要求:給出該圖書館數(shù)據(jù)庫(kù)的E-R圖,再將其轉(zhuǎn)換為關(guān)系模型。第43頁(yè)/共86頁(yè)3.圖4-1是某個(gè)教務(wù)管理數(shù)據(jù)庫(kù)的E-R圖,請(qǐng)把它們轉(zhuǎn)換為關(guān)系模型(圖中關(guān)系、屬性和聯(lián)系的含義,已在旁邊用漢字標(biāo)出)。強(qiáng)化練習(xí):第44頁(yè)/共86頁(yè)4.圖4-2是一個(gè)銷售業(yè)務(wù)管理的E-R圖,請(qǐng)把它轉(zhuǎn)換成關(guān)系模型。強(qiáng)化練習(xí):第45頁(yè)/共86頁(yè)5.設(shè)有一家百貨商店,已知信息有:1)每個(gè)職工的數(shù)據(jù)是職工號(hào)、姓名、地址和他所在的商品部。2)每一商品部的數(shù)據(jù)有:它的職工,經(jīng)理和它經(jīng)銷的商品。3)每種經(jīng)銷的商品數(shù)據(jù)有:商品名、生產(chǎn)廠家、價(jià)格、型號(hào)(廠家定的)和內(nèi)部商品代號(hào)(商店規(guī)定的)。4)關(guān)于每個(gè)生產(chǎn)廠家的數(shù)據(jù)有:廠名、地址、向商店提供的商品價(jià)格。請(qǐng)?jiān)O(shè)計(jì)該百貨商店的概念模型,再將概念模型轉(zhuǎn)換為關(guān)系模型。注意某些信息可用屬性表示,其他信息可用聯(lián)系表示。強(qiáng)化練習(xí):第46頁(yè)/共86頁(yè)2.2

關(guān)系代數(shù)1.

概述2.傳統(tǒng)的集合運(yùn)算3.專門的關(guān)系運(yùn)算第47頁(yè)/共86頁(yè)2.2.1關(guān)系代數(shù)概述

關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言,是關(guān)系數(shù)據(jù)操縱語(yǔ)言的一種傳統(tǒng)表達(dá)方式,它是利用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢的。任何運(yùn)算都是將一定的運(yùn)算符作用于一定的運(yùn)算對(duì)象上,得到預(yù)期的運(yùn)算結(jié)果。關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。第48頁(yè)/共86頁(yè)運(yùn)算符(續(xù))集合運(yùn)算符將關(guān)系看成元組的集合從關(guān)系的“水平”方向即行的角度來(lái)進(jìn)行運(yùn)算專門的關(guān)系運(yùn)算符不僅涉及行而且涉及列算術(shù)比較符輔助專門的關(guān)系運(yùn)算符進(jìn)行操作邏輯運(yùn)算符輔助專門的關(guān)系運(yùn)算符進(jìn)行操作第49頁(yè)/共86頁(yè)傳統(tǒng)的集合運(yùn)算符∪-∩×并差交笛卡爾積比較運(yùn)算符>≥<≤=<>大于大于等于小于小于等于等于不等于運(yùn)算符含義運(yùn)算符含義關(guān)系代數(shù)運(yùn)算符

2.2.1關(guān)系代數(shù)概述專門的關(guān)系運(yùn)算符σπ

÷選擇投影連接除邏輯運(yùn)算符∧∨非與或第50頁(yè)/共86頁(yè)2.2.1傳統(tǒng)的集合運(yùn)算

設(shè)關(guān)系R和關(guān)系S是相容的,t代表元組變量,現(xiàn)將各種運(yùn)算分別介紹如下:并(Union)關(guān)系R與關(guān)系S的并記作:R∪S={t|t∈R∨t∈S}結(jié)果關(guān)系是由屬于R或?qū)儆赟的元組組成,且結(jié)果仍為n目關(guān)系,但結(jié)果關(guān)系要消除重復(fù)元組。交(Intersection)關(guān)系R與關(guān)系S的交記作:R∩S={t|t∈R∧t∈S}結(jié)果關(guān)系由既屬于R又屬于S的元組組成,且仍為n目關(guān)系。第51頁(yè)/共86頁(yè)2.2.1傳統(tǒng)的集合運(yùn)算差(Difference)關(guān)系R與關(guān)系S的差記作:R-S={t|t∈R∧tS}R和S的差,結(jié)果關(guān)系由屬于R而不屬于S的所有元組組成,且仍為n目關(guān)系,即在關(guān)系R中減去R和S的相同元組,廣義笛卡爾積(ExtendedCartesianProduct)兩個(gè)分別為n目和m目的關(guān)系R和S的廣義笛卡爾積是一個(gè)(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。若R有k1個(gè)元組,S有k2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1×k2個(gè)元組。記作:R×S={(a1,a2,…am,b1,b2,…bn)|(a1,a2,…am)∈R∧(b1,b2,…bn)∈S}。第52頁(yè)/共86頁(yè)1.并(Union)R和S具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性)相應(yīng)的屬性取自同一個(gè)域R∪S

仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成

R∪S={t|t

R∨tS}第53頁(yè)/共86頁(yè)2.交(Intersection)R和S具有相同的目n相應(yīng)的屬性取自同一個(gè)域R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成

R∩S={t|t

R∧tS}

第54頁(yè)/共86頁(yè)3.差(Difference)R和S具有相同的目n相應(yīng)的屬性取自同一個(gè)域R-S

仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成

R-S={t|tR∧tS}第55頁(yè)/共86頁(yè)4.笛卡爾積CartesianProduct)嚴(yán)格地講應(yīng)該是廣義的笛卡爾積R:n目關(guān)系,k1個(gè)元組S:m目關(guān)系,k2個(gè)元組R×S

列:m+n列元組的集合元組的前n列是關(guān)系R的一個(gè)元組后m列是關(guān)系S的一個(gè)元組行:k1×k2個(gè)元組R×S={tr

ts|tr

R∧tsS}第56頁(yè)/共86頁(yè)4.笛卡爾積CartesianProduct)第57頁(yè)/共86頁(yè)2.2.2專門的關(guān)系運(yùn)算

選擇投影連接除第58頁(yè)/共86頁(yè)先引入幾個(gè)記號(hào)(1)R,tR,t[Ai]

設(shè)關(guān)系模式為R(A1,A2,…,An),它的一個(gè)關(guān)系設(shè)為R,tR表示t是R的一個(gè)元組,t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量。

2.2.2專門的關(guān)系運(yùn)算第59頁(yè)/共86頁(yè)(2)trtsR為n目關(guān)系,S為m目關(guān)系。trR,tsS,trts稱為元組的連接。trts是一個(gè)n+m列的元組,前n個(gè)分量為R中的一個(gè)n元組,后m個(gè)分量為S中的一個(gè)m元組。(3)象集Zx

給定一個(gè)關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時(shí),x在R中的象集(ImagesSet)為:

Zx={t[Z]|tR,t[X]=x}

它表示R中屬性組X上值為x的諸元組在Z上分量的集合。2.2.2專門的關(guān)系運(yùn)算第60頁(yè)/共86頁(yè)x1在R中的象集

Zx1

={Z1,Z2,Z3},x2在R中的象集

Zx2

={Z2,Z3},x3在R中的象集

Zx3={Z1,Z3}象集舉例

2.2.2專門的關(guān)系運(yùn)算第61頁(yè)/共86頁(yè)2.2.2專門的關(guān)系運(yùn)算

Student(a)

學(xué)生-課程-選修關(guān)系:

學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC學(xué)號(hào)Sno姓名Sname性別Ssex年齡Sage所在系Sdept200215121李勇男20CS200215122劉晨女19IS200215123王敏女18MA200215125張立男19IS課程號(hào)Cno課程名Cname先行課Cpno學(xué)分Ccredit1數(shù)據(jù)庫(kù)542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語(yǔ)言64Course(b)SC(c)學(xué)號(hào)Sno課程號(hào)Cno成績(jī)Grade200215121192200215121285200215121388200215122290200215122380第62頁(yè)/共86頁(yè)2.2.2專門的關(guān)系運(yùn)算選擇運(yùn)算選擇又稱為限制選擇運(yùn)算符的含義關(guān)系R上的選擇操作是根據(jù)某些條件對(duì)關(guān)系R做水平分割,即從行的角度選擇符合條件的元組。在關(guān)系R中選擇滿足給定條件的諸元組記作:σF(R)={t|t∈R∧F(t)=‘真’}F:選擇條件,是一個(gè)邏輯表達(dá)式,取邏輯值“真”或“假”,

選擇運(yùn)算是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組,是從行的角度進(jìn)行的運(yùn)算σ第63頁(yè)/共86頁(yè)F:選擇條件,是一個(gè)邏輯表達(dá)式基本形式為:X1θY1

θ:比較運(yùn)算符(>,≥,<,≤,=或<>)X1,Y1:屬性名、常量、簡(jiǎn)單函數(shù).屬性名也可以用它的序號(hào)來(lái)代替;第64頁(yè)/共86頁(yè)1.選擇(selection)[例1]查詢信息系(IS系)全體學(xué)生

σSdept

='IS'

(Student)

σ5='IS'(Student)

結(jié)果:SnoSnameSsexSageSdept200215122劉晨女19IS200215125張立男19IS[例2]查詢年齡小于20歲的學(xué)生

σSage<20(Student)

或σ4<20(Student)

結(jié)果:SnoSnameSsexSageSdept200215122劉晨女19IS200215123王敏女18MA200215125張立男19IS第65頁(yè)/共86頁(yè)2.投影(Projection)投影運(yùn)算符的含義從R中選擇出若干屬性列組成新的關(guān)系

πA(R)={t[A]|tR} A:R中的屬性列投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)π第66頁(yè)/共86頁(yè)2.投影(Projection)[例3]查詢學(xué)生的姓名和所在系即求Student關(guān)系上學(xué)生姓名和所在系兩個(gè)屬性上的投影

πSname,Sdept(Student)

或π2,5(Student)SnameSdept李勇CS劉晨IS王敏MA張立IS[例4]查詢學(xué)生關(guān)系Student中都有哪些系

πSdept(Student)

結(jié)果:SdeptCSISMA結(jié)果:第67頁(yè)/共86頁(yè)3.連接(Join)

連接也稱為θ連接連接運(yùn)算的含義

從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組

RS={|tr

R∧ts

S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運(yùn)算符

連接運(yùn)算從R和S的廣義笛卡爾積R×S中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系θ的元組

AθBtrts第68頁(yè)/共86頁(yè)3.連接(Join)[例5]關(guān)系R和關(guān)系S

如下所示:一般連接RS的結(jié)果如下:C<E

第69頁(yè)/共86頁(yè)

3.連接(Join)兩類常用連接運(yùn)算等值連接(equijoin)

什么是等值連接θ為“=”的連接運(yùn)算稱為等值連接

等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧tsS∧tr[A]=ts[B]}A=Btrts第70頁(yè)/共86頁(yè)等值連接R

S的結(jié)果如下:R.B=S.B

第71頁(yè)/共86頁(yè)

3.連接(Join)自然連接(Naturaljoin)

自然連接是一種特殊的等值連接兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義R和S具有相同的屬性組B

R

S={|trR∧tsS∧tr[B]=ts[B]}trts第72頁(yè)/共86頁(yè)3.連接(Join)

自然連接R

S的結(jié)果如下:

第73頁(yè)/共86頁(yè)3.連接(Join)一般的連接操作是從行的角度進(jìn)行運(yùn)算。

自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。

AθBRS第74頁(yè)/共86頁(yè)4.除(Division)

給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合,記作:

R÷S={tr[X]|trR∧πY(S)Yx}

Yx:x在R中的象集,x=tr[X]第75頁(yè)/共86頁(yè)4.除(Division)[例6]設(shè)關(guān)系R、S分別為下圖的(a)和(b),R÷S的結(jié)果為圖(c)

第76頁(yè)/共86頁(yè)分析

設(shè)關(guān)系R,S,分別為例6中的(a)和(b),R÷S的結(jié)果為圖(c),關(guān)系R中A可以取四個(gè)值{a1,a2,a3,a4},其中:a1的象集為{(b1,c2),(b2,c1),(b2,c3)}a2的象集為{(b3,c7),(b2,C3)}a3的象集為{(b4,c6)}a4的象集為{(b2,c3)}S在(B,C)上的投影為{(b1,c2),(b2,c1),(b2,c3)}顯然只有a1的象集包含了S在(B,C)屬性組上的投影,所以R÷S={a1}。第77頁(yè)/共86頁(yè)4.除(Division)除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算

÷RS第78頁(yè)/共86頁(yè)綜合舉例[例8]查詢選修了2號(hào)課程的學(xué)生的學(xué)號(hào)。

πSno(σCno='2'(SC))

[例9]查詢至少選修了一門其直接先行課為5號(hào)課程的學(xué)生姓名

πSname(σCpno='5'(CourseSCStudent))或πSname(σCpno='5'(Course)SCπSno,Sname(Student))

[例10]

溫馨提示

  • 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)論