powerpoint 演示文稿 - 關(guān)系數(shù)據(jù)庫(kù)_第1頁(yè)
powerpoint 演示文稿 - 關(guān)系數(shù)據(jù)庫(kù)_第2頁(yè)
powerpoint 演示文稿 - 關(guān)系數(shù)據(jù)庫(kù)_第3頁(yè)
powerpoint 演示文稿 - 關(guān)系數(shù)據(jù)庫(kù)_第4頁(yè)
powerpoint 演示文稿 - 關(guān)系數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第二章 關(guān)系數(shù)據(jù)庫(kù) 2.1 系模型概述 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng). 關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。 一、單一的數(shù)據(jù)結(jié)構(gòu)關(guān)系 二、關(guān)系操作 關(guān)系模型中常用的關(guān)系操作有: 選擇(Selsct)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)、等查詢(xún)(Query)操作和增加(Insert)、刪除(Delete)、修改(Update)兩大部分。 三、關(guān)系的三類(lèi)完整性約束 關(guān)系模型允許定義三類(lèi)完整性約束:實(shí)體完整性、參照完整性和用戶(hù)定義的完整性。 2.2 關(guān)系數(shù)

2、據(jù)結(jié)構(gòu)及形式化定義 2.2.1 關(guān) 系 1. 域(Domain) 定義2.1 域是一組具有相同數(shù)據(jù)類(lèi)型的值的集合. 2. 笛卡爾積(Cartesian Produce) 定義2.2 給定一組域D1,D2,Dn,這些域中可以有相同的。D1,D2,,Dn的笛卡爾積為: D1D2Dn(d1,d2,dn) | diDi, i=1,2,3,n) 若Di(i=1,2,n)為有限集,其基數(shù)為 mi(i=1,2,n), 則D1D2Dn的基數(shù)為 m=mi 例如給出三個(gè)域: D1=導(dǎo)師集合SUPERVISOR=張清玫,劉逸 D2=專(zhuān)業(yè)集合SPECIALITY=計(jì)算機(jī)專(zhuān)業(yè),通信專(zhuān)業(yè) D3=研究生集合POSTGRAD

3、UATE=李勇,劉晨,王敏 則D1,D2,D3的笛卡爾積為: D1D2D3=(張清玫,計(jì)算機(jī)專(zhuān)業(yè),李勇), (張清玫,計(jì)算機(jī)專(zhuān)業(yè),劉晨), (張清玫,計(jì)算機(jī)專(zhuān)業(yè),王敏), (張清玫,通信專(zhuān)業(yè),李勇), (張清玫,通信專(zhuān)業(yè),劉晨), (張清玫,通信專(zhuān)業(yè),王敏), (劉逸,計(jì)算機(jī)專(zhuān)業(yè),李勇), (劉逸,計(jì)算機(jī)專(zhuān)業(yè),劉晨), (劉逸,計(jì)算機(jī)專(zhuān)業(yè),王敏), (劉逸,通信專(zhuān)業(yè),李勇), (劉逸,通信專(zhuān)業(yè),劉晨), (劉逸,通信專(zhuān)業(yè),王敏), i=1n 3. 關(guān) 系 D1D2Dn 的子集叫做在域D1,D2,Dn上的關(guān)系, 用R(D1,D2,Dn)表示 這里R表示關(guān)系的名字,n是關(guān)系的目或度. 當(dāng)n=1時(shí),

4、稱(chēng)為單元關(guān)系. 當(dāng)n=2時(shí),稱(chēng)為二元關(guān)系. 關(guān)系是一張二維表,表的每一行對(duì)應(yīng)一個(gè)元組,表的每一列對(duì)應(yīng)一個(gè)域.由于域可以相同,為了加以區(qū)分,對(duì)每列取一個(gè)名字,稱(chēng)為屬性.n目關(guān)系必有n個(gè)屬性.SUPERVISORSPECIALITYPOSTGRADUATE張清玫計(jì)算機(jī)專(zhuān)業(yè)李勇張清玫計(jì)算機(jī)專(zhuān)業(yè)劉晨劉 逸通 信 專(zhuān) 業(yè)王敏 表2.2 SAP關(guān)系 數(shù)據(jù)庫(kù)中的基本關(guān)系有以下性質(zhì): 1、列是同性質(zhì)的,即每一列中的分量是同一類(lèi)型的數(shù)據(jù),來(lái)自同一個(gè)域。 2、不同的列可出自同一個(gè)域,每一列稱(chēng)為屬性,要給予不同的屬性名。 3、列的順序無(wú)所謂,即列的次序可以任意交換。 4、任意兩個(gè)元組不能全同。 5、行的順序無(wú)所謂,

5、即行的次序可以任意交換。 6、每一分量必須是不可分的數(shù)據(jù)項(xiàng)。 關(guān)系的三種類(lèi)型:基本關(guān)系, 查詢(xún)表, 視圖表 .關(guān)系模型要求關(guān)系必須是規(guī)范化的,即要求關(guān)系模式必須滿(mǎn)足一定的規(guī)范條件. 2.2.2 關(guān)系模式 關(guān)系的描述稱(chēng)為關(guān)系模式(Relation Schema)。 可形式化表示為: R(U, D, dom, F) 關(guān)系模式通??梢院?jiǎn)記為: R(U) OR R(A1,A2,An)。 R為關(guān)系名, A1,A2,An為屬性名.屬性向域的映象常常直接說(shuō)明為屬性的類(lèi)型、長(zhǎng)度。 2.2.3 關(guān)系數(shù)據(jù)庫(kù) (1).關(guān)系數(shù)據(jù)庫(kù)的型 (2).關(guān)系數(shù)據(jù)庫(kù)的值 2.3 關(guān)系的完整性 一、實(shí)體完整性(Entity Int

6、egrity) 規(guī)則2.1 實(shí)體完整性規(guī)則 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值. 對(duì)實(shí)體完整性規(guī)則的說(shuō)明: (1) 實(shí)體完整性規(guī)則是針對(duì)基本關(guān)系而言的. (2) 現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí). (3) 相應(yīng)地,關(guān)系模型中的以主碼作為唯一性標(biāo)識(shí). (4) 主碼中的屬性即主屬性不能取空值. 二、參照完整性(Referential Integrity) 例1 學(xué)生實(shí)體和專(zhuān)業(yè)實(shí)體可以用下面的關(guān)系表示,其中主碼用下劃線標(biāo)識(shí). 學(xué)生(學(xué)號(hào),姓名, 性別, 專(zhuān)業(yè)號(hào), 年齡) 專(zhuān)業(yè)(專(zhuān)業(yè)號(hào), 專(zhuān)業(yè)名) 例2 學(xué)生、課程、學(xué)生與課程之間的多對(duì)多的聯(lián)系可用如下三個(gè)關(guān)系表示:

7、學(xué)生(學(xué)號(hào),姓名, 性別, 專(zhuān)業(yè)號(hào), 年齡) 課程(課程號(hào),課程名,學(xué)分) 選修(學(xué)號(hào),課程號(hào),成績(jī)) 例3 在關(guān)系 學(xué)生2(學(xué)號(hào),姓名, 性別, 專(zhuān)業(yè)號(hào), 年齡,班長(zhǎng))中, “學(xué)號(hào)”屬性是主碼,“班長(zhǎng)”屬性表示該學(xué)生所在班級(jí)的班長(zhǎng)的學(xué)號(hào)。 設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系RF與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱(chēng)F是基本關(guān)系的外碼(Foreing Key),并稱(chēng)基本關(guān)系R為參照關(guān)系(Referencing Relation).基本關(guān)系S為被參照關(guān)系(Referenced Relation)或目標(biāo)關(guān)系(Target Relation). 參照完整性規(guī)則 若屬性(或?qū)傩越M)F是基本關(guān)系R

8、的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則對(duì)于R中每個(gè)元組在F上的值必須為: 或者取空(F的每個(gè)屬性值均為空); 或者等于S中某個(gè)元組的主碼值. 三、用戶(hù)定義的完整性(User-defind Integrity) 用戶(hù)定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件. 它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿(mǎn)足的語(yǔ)義要求. 2.4 關(guān) 系 代 數(shù) 一、關(guān)系代數(shù)的運(yùn)算的分類(lèi) 1. 傳統(tǒng)的集合運(yùn)算 2. 專(zhuān)門(mén)的關(guān)系運(yùn)算 關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系.運(yùn)算結(jié)果亦為關(guān)系。 二、關(guān)系代數(shù)用到的運(yùn)算符 (1)集合運(yùn)算符: (并),(差),(交) (2)算術(shù)比較符=, (3)專(zhuān)門(mén)的關(guān)系運(yùn)算符: (選擇),(投影),

9、 (連接),(除) (廣義笛卡爾積)(4)邏輯運(yùn)算符:, , 2.4.1 傳統(tǒng)的集合運(yùn)算 設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則可以定義四種運(yùn)算如下: 1. 并(Union) 關(guān)系R和關(guān)系S的并記為: RS t | t R t S. 結(jié)果仍為nR或?qū)儆赟的元組組成. 2. 差(Difference) 關(guān)系R和關(guān)系S的差記為:R-S=t|t R t S. 結(jié)果仍為n目關(guān)系.由屬于R而不屬于S的元組組成. 3. 交(Intersection) 關(guān)系R和關(guān)系S的交記為: R S =t | t R t S 結(jié)果仍為n目關(guān)系.由既屬于R有屬于S的元組組成. 關(guān)系的交可由關(guān)系的差表示

10、,即RS=R-(R-S). 4. 廣義笛卡爾積(Extended cartesian product) 兩個(gè)分別為n、m目阿關(guān)系R和S的廣義笛卡爾積RS是一個(gè)(n+m)n個(gè)分量是R的一個(gè)元組,后m個(gè)分量是SR有k1個(gè)元組,S有k2個(gè)元組,則RS有k1k2個(gè)元組. A B C a1 a1 a2 b1 b2 b2 c1 c2 c1 A B C a1 a1 a2 b2 b3 b2 c2 c2 c1RS A B C a1 a1 a2 a1 b1 b2 b2 b3 c1 c2 c1 c3 A B C a1 b1 c1 A B C a1 a2 b2 b2 c2 c1 圖 4-1 ( c )RS圖 4-1

11、( e )RS圖 4-1 ( d ) R-S( a )( b ) 2.4.2 專(zhuān)門(mén)的關(guān)系運(yùn)算 一. 幾個(gè)記號(hào) 1. 設(shè)關(guān)系模式為R(A1,A2,An). 它的一個(gè)關(guān)系設(shè)為R. TR表示t是R的一個(gè)元組。TAi則表示元組t中相應(yīng)屬于Ai的一個(gè)分量。A=Ai1,Ai2,Ai3,Aik,其中Ai1,Ai2,Ai3,Aik 是A1,A2,A3,An中的一部分,則A稱(chēng)為屬性列或域列.A則表示A1,A2,A3,An中去掉Ai1,Ai2,Ai3,Aik后剩余的屬性組.tA=(tAi1,tAi2,tAik)表示元組t在屬性列A上諸分量的集合. 3. R為n目關(guān)系,S為m目關(guān)系 tr R , ts S tr t

12、s 稱(chēng)為元組的連接(Concatenation).這是一個(gè)(n+m)列的元組,前n個(gè)分量是R的一個(gè)n元組,后m個(gè)分量是S中的一個(gè)m元組. 4. 給定一個(gè)關(guān)系R(X , Z), X,Z為屬性組. 我們定義當(dāng)X=x時(shí),x在R中的象集(Image Set)為: Zx=tz| tR,tX=x 表示R中屬性組X上值為x的諸元組在Z上分量的集合. 二. 各種關(guān)系運(yùn)算的定義 1. 選擇(Selection) 亦稱(chēng)為限制(Restriction).在關(guān)系R中選擇滿(mǎn)足給定條件的諸元組,記為: F( R)=t|tRF(t)=真 F是一個(gè)公式,它的取值為真或假. F由邏輯運(yùn)算符(,)連接各算術(shù)表達(dá)式組成。算術(shù)表達(dá)式

13、的基本形式為: X1Y1 選擇運(yùn)算是從關(guān)系R中選取使公式F為真的元組.這是從行的角度進(jìn)行的運(yùn)算. 舉例說(shuō)明選擇運(yùn)算: 設(shè)有學(xué)生課程關(guān)系數(shù)據(jù)庫(kù),學(xué)生關(guān)系Student、課程關(guān)系Course和學(xué)生選課關(guān)系SC,分別如圖2.3 (a ), ( b ), ( c )所示 學(xué)號(hào) Sno姓 名 Sname性別Ssex年齡Sage所在系Sdept95001950029500395004李勇劉晨王敏張立男女女男 20 19 18 19CSISMAISStudent課程號(hào)Cno課程名 Nname先行課Cpno學(xué)分Ccredit1234567數(shù)據(jù)庫(kù)數(shù) 學(xué)信息系統(tǒng)操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)處理PASCAL語(yǔ)言516764

14、243424Course學(xué)號(hào)Sno課程號(hào)Cno成績(jī)Grade9500195001950019500295002123239285889080SC ( a )( b )( c ) 圖 2.3 學(xué)生-課程數(shù)據(jù)庫(kù) 例1. 查詢(xún)信息系(IS系)的全體學(xué)生. 解: 在學(xué)生關(guān)系中找出Sdept為IS的學(xué)生. Sdept=IS(Student)或5=IS(Student) 學(xué)號(hào) Sno姓 名 Sname性別Ssex年齡Sage所在系Sdept9500295004劉晨張立女男 19 19ISIS 例2. 查詢(xún)年齡小于20歲的學(xué)生. 解: 在學(xué)生關(guān)系中找出Sage小于20的學(xué)生. 即: Sage19(Stude

15、nt)或419(Student) 學(xué)號(hào) Sno姓 名 Sname性別Ssex年齡Sage所在系Sdept950029500395004劉晨王敏張立女女男191819ISMAIS 2. 投影(Projection) 關(guān)系R上的投影是從R中選擇若干屬性列組成新的關(guān)系.記作: A( R )=tA | t R A為R中的屬性列. 例3. 求學(xué)生(Student)關(guān)系在學(xué)生姓名和所在系這兩個(gè)屬性上的投影. 解: Sname , Sdept( Student ) 或 2 , 5( Student ) 結(jié)果如圖2.5(a)所示. 例4. 查詢(xún)關(guān)系Student 在所在系屬性上的投影. 解: Sdept( S

16、tudent ) 或5 ( Student ) 結(jié)果如圖2.5 (b) 3. 連接(Join)亦稱(chēng)為連接連接運(yùn)算是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿(mǎn)足一定條件的元組.記作: RS = tr ts | trRtsS trA tsBAB 自然連接(Natural join)R和S具有相同的屬性組B,則自然連接定義如下: RS = tr tsB | trRtsS trB =tsB 例5. 設(shè)關(guān)系R,S分別為 圖2.6中的( a),(b ). RS 的結(jié)果如圖2.6( c ). RS 等值連接的結(jié)果如圖2.6( d ). CE RS 自然連接的結(jié)果如圖2.6( e ). 4. 除(Division)

17、給定關(guān)系R(X,Y)與S(Y,Z), 其中X,Y,Z為屬性列,R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集.定義除法: RS= trX | trRr(S) Yx) Yx為x在R中象集,x= trX . 除法結(jié)果是R中滿(mǎn)足下列條件的元組在X屬性列上的投影: 元組在X上分量值x的象集Yx包含S在Y上投影的集合. 例6 設(shè)關(guān)系R,S分別為圖2.7中(a) 和(b), RS的結(jié)果如圖(c) 在關(guān)系R中,A可以取四個(gè)值a1,a2,a3,a4 a1的象集為:(b1,c2),(b2,c3),(b2,c1) a2的象集為:(b3,c7),(b2,c3) a3的象集為:(b4,c6) a4的象集為

18、:(b6,c6) S在(B,C)上的投影為(b1,c2), (b2,c1),(b2,c3) 例7: 求至少選修1號(hào)課程和3號(hào)課程的學(xué)生的學(xué)號(hào). 解: 設(shè)一個(gè)臨時(shí)關(guān)系K: Sno,Cno(SC)K=95001Cno13 例8: 查詢(xún)選修了2號(hào)課程的學(xué)生的學(xué)號(hào) Sno(Cno=2 (SC)=95001,95002 例9: 查詢(xún)至少選修了一門(mén)其先行課為5號(hào)課程的學(xué)生姓名. Sname(Cpno=5 (Course) SC Sno, Sname(Student) ) 例10: 查詢(xún)選修了全部課程的學(xué)生的學(xué)號(hào)和姓名. Sno , Cno(SC) Cno (Course) Sno, Sname(Stude

19、nt) 2.5.1 元組關(guān)系演算語(yǔ)言ALPHA ALPHA語(yǔ)言的基本格式 操作語(yǔ)句 工作空間名(表達(dá)式): 操作條件 各部分的具體說(shuō)明: :=GET | PUT | HOLD | UPDATA | DELETE |DROP :=(, , ). 2.5 關(guān)系演算 關(guān)系演算按謂詞變?cè)牟煌煞譃樵M關(guān)系演算和域關(guān)系演算.我們首先介紹元組關(guān)系演算然后介紹域關(guān)系演算,都是先討論抽象語(yǔ)言然后介紹一種實(shí)際語(yǔ)言。 一. 檢索操作 1. 簡(jiǎn)單檢索 例1. 求所有被選修的課程的課程號(hào)碼. GET W (SC.Cno) 例2. 求所有學(xué)生的數(shù)據(jù). GET W (Student) 2. 限定的檢索 例3. 求信息系

20、(IS)中年齡小于20歲的學(xué)生的學(xué)號(hào)和年齡. GET W (Student.Sno,Student.Sage): Student.Sdept=ISStudent.Sage19 例4. 求計(jì)科系年齡大于19歲的學(xué)生的學(xué)號(hào). 查詢(xún)的條件是: Sdept=CS和Sage19兩個(gè)條件的與. (1). 把兩個(gè)條件寫(xiě)在同一行上;StudentSnoSnameSsexSageSdept P.95001 19 CS StudentSnoSnameSsexSageSdept P.95001P.95001 19 CS (2). 把兩個(gè)條件寫(xiě)在不同行上,但使用相同的示例元素值 例5.查詢(xún)計(jì)科系或者年齡大于19歲的學(xué)

21、生的學(xué)號(hào).StudentSnoSnameSsexSageSdept P.95001P.95002 19 CS 例6. 查詢(xún)既選修了1號(hào)課程又選修了2號(hào)課程的學(xué)生的學(xué)號(hào). 例7. 查詢(xún)選修1號(hào)課程的學(xué)生姓名. 該查詢(xún)涉及兩個(gè)關(guān)系: SC和Student. SC SnoCno Grade P.95001 P.95001 12StudentSnoSnameSsexSageSdept P.95001P.李勇 SC SnoCno Grade P.95001 1 例8. 查詢(xún)未選修1課程的學(xué)生姓名. 用邏輯非的查詢(xún). 例9. 求有兩個(gè)人以上選修的課程號(hào)碼. 在一個(gè)表內(nèi)連接的查詢(xún)StudentSnoSnam

22、eSsexSageSdept P.95001P.李勇 SC SnoCno Grade P.95001 1 SC SnoCno Grade 9500195001P.1 1 3. 集函數(shù) CNT 對(duì)元組計(jì)數(shù) SUM 求總和 AVG 求平均值 MAX 求最大值 MIN 求最小值 例10. 查詢(xún)信息系學(xué)生的平均年齡.StudentSnoSnameSsexSageSdept P.AVG.ALL.IS 4. 對(duì)查詢(xún)結(jié)果排序 例11. 查詢(xún)?nèi)w男生的姓名,要求查詢(xún)結(jié)果按所在系升序排列,對(duì)相同系的學(xué)生按年齡降序排列.StudentSnoSnameSsexSageSdept P. 李勇 男DO (2).AO (

23、1). 二. 更新操作 1. 修改操作(U) 例12. 把95001學(xué)生的年齡改為18.例14. 將計(jì)算機(jī)科學(xué)系所有學(xué)生的年齡都增加1歲. StudentSnoSnameSsexSageSdept 95001 U.18 (1).將操作符“U.”放在值上.(2).將操作符“U.”放在關(guān)系上.StudentSnoSnameSsexSageSdept 95001 U.18 例13. 把95001學(xué)生的 年齡增加1歲. StudentSnoSnameSsexSageSdept U.9500195001 1717+1 StudentSnoSnameSsexSageSdept U.9500895008 1818+1 CS 3.刪除操作(D) 例16. 刪除學(xué)生95089. 2. 插入操作( I ) 例15. 把信息系女生95701,姓名張三,年齡20存入數(shù)據(jù)庫(kù)中.StudentSnoS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論