sql基本知識大全第三章.ppt_第1頁
sql基本知識大全第三章.ppt_第2頁
sql基本知識大全第三章.ppt_第3頁
sql基本知識大全第三章.ppt_第4頁
sql基本知識大全第三章.ppt_第5頁
已閱讀5頁,還剩97頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理,主講:趙海霞,河南科技大學電信學院,第二章 關(guān)系數(shù)據(jù)庫,學習要點 關(guān)系模型概述 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 關(guān)系的完整性 關(guān)系代數(shù) 關(guān)系演算,關(guān)系模型簡史,E.F.Codd的論文” A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM, (1970年) IBM在加里福利亞的San Jose研究所開發(fā)的實驗性關(guān)系數(shù)據(jù)庫管理系統(tǒng)System R (1976年) 加州大學伯克利分校開發(fā)的INGRES(交互式圖形檢索系統(tǒng))項目 (1976年) IBM在Peterlee的科研中心所開發(fā)

2、的Peterlee關(guān)系測試工具(1976年) 上世紀80-90年代,涌現(xiàn)了幾百個關(guān)系數(shù)據(jù)庫管理系統(tǒng),值得記住的 1970年,E.F.Codd提出關(guān)系數(shù)據(jù)庫理論基礎(chǔ) 關(guān)系數(shù)據(jù)庫試驗系統(tǒng)System R, INGRES 目前流行的RDBMS DB2, Oracle, Ingres, Sybase, Informix等,2.1 關(guān)系模型概述,關(guān)系模型由以下三部分組成: 單一的數(shù)據(jù)結(jié)構(gòu)-關(guān)系 任何一個關(guān)系數(shù)據(jù)庫都是由若干張互相關(guān)聯(lián)的表組成 關(guān)系模式和關(guān)系 關(guān)系操作 查詢操作:選擇、投影、連接、除、并、交、差 更新操作:增加、刪除、修改 關(guān)系的三類完整性約束 實體完整性、參照完整性和用戶定義的完整性,關(guān)

3、系的兩個不變性, 由系統(tǒng)自動支持,由應用語義約束,關(guān)系模型語言,關(guān)系操作特點: 操作對象和結(jié)果都是集合 高度非過程化的語言,不必借助循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作,能嵌入高級語言中使用,關(guān)系數(shù)據(jù)語言,關(guān)系代數(shù)語言,關(guān)系演算語言,具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言,元組關(guān)系演算語言,域關(guān)系演算語言,例如ISBL,例如APLHA, QUEL,例如QBE,例如SQL,關(guān)系模型語言,關(guān)系代數(shù)語言 把關(guān)系當作集合,用集合運算和特殊的關(guān)系運算來表達查詢要求和條件 是一種抽象的查詢語言 關(guān)系演算語言 用謂詞來表達查詢要求和條件 謂詞變元的基本對象可以是元組變量或域變量,故可分為元組關(guān)系演算和域關(guān)系演算兩類 是

4、一種抽象的查詢語言 SQL 介于關(guān)系代數(shù)和關(guān)系演算之間 集DDL、DML和DCL一身的關(guān)系數(shù)據(jù)語言,2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義,關(guān)系的定義及基本術(shù)語 關(guān)系模式 關(guān)系數(shù)據(jù)庫,關(guān)系的形式化定義,定義1:域(Domain) 一組具有相同數(shù)據(jù)類型的值的集合。 每個屬性有一個允許的值的集合稱為該屬性的域。 定義2:笛卡兒積(Cartesian Product) D1 D2 Dn= (d1,d2, ,dn)| di Di , i=1,2, ,n (d1,d2, ,dn)叫做一個n元組(n-tuple),或簡稱元組 di 叫做一個分量(Component),笛卡爾積,計算實例 例1:D1=甲,乙, D2

5、=1,2, D3=a,b,c 1)D1,D2,D3基數(shù)分別是多少? 2)D1D2?(基數(shù)?) 3)D1D2D3?(基數(shù)?) 笛卡爾集可表示為一個二維表 表中的每行對應一個元組,表中的每列對應一個域,請將例子表示為二維表,例2已知三個域 D1=導師集合張清正,劉逸 D2=專業(yè)集合計算機,信息 D3=學生集合李勇,劉晨,王敏,計算思考 1)每個域的基數(shù)? 2)計算D1D2D3?基數(shù)? 3)計算結(jié)果中的元組有無實際意義?,關(guān)系的形式化定義,定義:關(guān)系 D1 D2 Dn的子集叫做在域D1, D2 , , Dn上的關(guān)系,表示為R(D1,D2 , ,Dn)。即:將關(guān)系定義為一系列域上的笛卡爾集的子集。,例

6、已知三個域 D1=導師集合S張清正,劉逸 D2=專業(yè)集合SP計算機,信息 D3=學生集合P李勇,劉晨,王敏 計算思考 從笛卡爾集中取出一個子集,選擇有意義的結(jié)果組成關(guān)系 R(導師,專業(yè),研究生) 一個研究生只能有一個專業(yè),如李勇和王敏是計算機專業(yè)、劉晨是信息專業(yè),導師S,專業(yè)SP,研究生P,張清正計算機李勇 張清正計算機劉晨 張清正計算機王敏 張清正信息李勇 張清正信息劉晨 張清正信息王敏 劉逸計算機李勇 劉逸計算機劉晨 劉逸計算機王敏 劉逸信息李勇 劉逸信息劉晨 劉逸信息王敏,D1,D2,D3的笛卡爾積(上圖),現(xiàn)在導師與研究生是什么關(guān)系?,限定一個學生只能有一個導師,如張是計算機導師,劉是

7、信息專業(yè)導師,現(xiàn)在導師與研究生是什么關(guān)系?,關(guān)系的基本術(shù)語,關(guān)系模型(relational model) 用二維表格結(jié)構(gòu)表示實體類型,外鍵表示實體間聯(lián)系的模型稱為關(guān)系模型。 屬性(指字段、數(shù)據(jù)項) 屬性值、屬性的值域DOM(A)(指字段值、字段的值域) 元組 (指記錄) 關(guān)系模式 (指記錄類型) 關(guān)系或?qū)嵗ㄖ讣o錄的集合) 元數(shù)(指關(guān)系中屬性的個數(shù)) 基數(shù)(指關(guān)系中元組的個數(shù)),屬性(列),元組(行),屬性名,學生登記表,關(guān)系,整數(shù),字符串,16,17 .,字符串,男 女,域,.,.,.,.,.,元數(shù),基數(shù),基本術(shù)語,基本術(shù)語,鍵(碼) 超鍵(super key) :在一個關(guān)系中,能唯一標識元

8、組的屬性集稱為關(guān)系模式的超鍵; 候選鍵(candidate key) :如果一個屬性集能唯一標識元組,且又不含有多余屬性,則該屬性集稱為候選鍵;候選關(guān)鍵字必為超關(guān)鍵字,反之不一定成立 主鍵(primary key) :關(guān)系模式中用戶正在使用的候選鍵稱為主鍵; 外鍵(foreign key):如果關(guān)系R中某屬性集是其它模式的主鍵,則該屬性集對模式R而言是外鍵。,基本術(shù)語,主屬性 指主鍵的諸屬性 非碼屬性 不包含在任何候選碼中的屬性,基本術(shù)語,三類關(guān)系 基本關(guān)系(基本表或基表) 實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示 查詢表 查詢結(jié)果對應的表 視圖表 由基本表或其他視圖表導出的表,是虛表,不對應實

9、際存儲的數(shù)據(jù),基本關(guān)系的6個性質(zhì),列是同質(zhì)的 每一列中的分量是同一類型的數(shù)據(jù),來自同一個域 不同的列可出自同一個域 其中的每一列稱為一個屬性 不同的屬性要給予不同的屬性名 列的順序無所謂 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時,永遠是插至最后一列但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了屬性順序,基本關(guān)系的6個性質(zhì),任意兩個元組不能完全相同 由笛卡爾積的性質(zhì)決定 但許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì)( Oracle,F(xiàn)oxPro ) 行的順序無所謂 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),插入一個元組時永遠插至最后一行 但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒

10、有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了元組的順序,基本關(guān)系的6個性質(zhì),分量必須取原子值 每一個分量都必須是不可分的數(shù)據(jù)項 這是規(guī)范條件中最基本的一條,2.2.2關(guān)系模式和關(guān)系,關(guān)系模式 對關(guān)系的描述 靜態(tài)的、穩(wěn)定的 關(guān)系 關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容 動態(tài)的、隨時間不斷變化的 實際應用中常常將關(guān)系模式和關(guān)系都稱為關(guān)系,關(guān)系模式的定義,關(guān)系的描述稱為關(guān)系模式(Relation Schema) 關(guān)系模式形式化地表示為:,關(guān)系模式舉例,表示學生實體類型和課程實體類型間多對多關(guān)系的ER圖,關(guān)系模式舉例,學生關(guān)系模式 S(S#, SNAME, AGE, SEX) 學生課程關(guān)系描述 SC(S#, C

11、#, GRADE) 課程關(guān)系模式 C(C#, CNAME, TEACHER),S,SC,C,子模式舉例,子模式是用戶用到的那部分數(shù)據(jù)。除了用戶用到的數(shù)據(jù)外,還應指出數(shù)據(jù)與概念模式中相應數(shù)據(jù)的關(guān)系。,G,S,SC,成績子模式 G(S#, SNAME, C#, GRADE),2.2.3關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫 在一個給定的應用領(lǐng)域中,所有實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫也有型和值之分,思考:給出導師、學生、專業(yè)三個實體可能組成的關(guān)系數(shù)據(jù)庫及其概念模型(E-R圖),2.3 關(guān)系模型的三類完整性規(guī)則,實體完整性:元組在組成主鍵的屬性上不能有空值; 參照完整性(引用完整性):不

12、允許引用不存在的元組。 用戶定義的完整性(域完整性) 其中:前二者是關(guān)系模型必須滿足的完整性約束條件,是關(guān)系的兩個不變性,應當有關(guān)系系統(tǒng)自動滿足。,實體完整性(Entity Integrity),若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值 例如: 學生(學號,姓名,性別,專業(yè)號,年齡) 課程(課程號,課程名,學分) 選修(學號,課程號,成績) 實體應該是可區(qū)分的,主鍵是區(qū)分實體的唯一性標識,因此不能為空(即不能不知道)。,例:學生實體與專業(yè)實體間的關(guān)系: 學生(學號,姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)號,專業(yè)名) 關(guān)系參照圖,例:學生,課程,學生與課程之間的多對多聯(lián)系: 學生(學號,

13、姓名,性別,專業(yè)號,年齡) 課程(課程號,課程名,學分) 選修(學號,課程號,成績) 關(guān)系參照圖,參照關(guān)系,學生關(guān)系專業(yè)關(guān)系,專業(yè)號,學生關(guān)系 選修關(guān)系課程關(guān)系,學號,課程號,參照完整性,主碼?外碼?,參照完整性,定義:外碼 設(shè)F是參照關(guān)系R的一個或一組屬性,但不是R的碼,若F與被參照關(guān)系S的主碼相對應,則稱F是R的外碼(詳細定義見教材P54) 規(guī)則:參照關(guān)系R中每個元組在外碼F上的值必須為: 或者取空值(F的每個屬性值均為空值) 或者等于S中某個元組的主碼值,例:學生(學號,姓名,性別,專業(yè)號,年齡,班長),參照關(guān)系,被參照關(guān)系,外碼,用戶定義完整性(User-defined Integri

14、ty),用戶定義的、具體應用中的數(shù)據(jù)必須滿足的約束條件 例如:成績:0100之間 身份證、身份證和生日對應關(guān)系,2.3關(guān)系的完整性規(guī)則,完整約束條件是數(shù)據(jù)模型的一個重要組成部分,它保證數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性 考慮屬性的取值、主關(guān)鍵字以及諸關(guān)系屬性之間的一些制約 此外許多系統(tǒng)支持數(shù)據(jù)庫設(shè)計者說明特殊的約束以及違反約束時的處理過程,關(guān)系模型的優(yōu)點,關(guān)系模型提供單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡明性和精確性; 關(guān)系模型的邏輯結(jié)構(gòu)和相應的操作完全獨立于數(shù)據(jù)存儲方式,具有高度的數(shù)據(jù)獨立性; 關(guān)系模型使數(shù)據(jù)庫的研究建立在比較堅實的數(shù)學基礎(chǔ)上。,本講簡要總結(jié),目的與要求:掌握關(guān)系模型有關(guān)術(shù)語、關(guān)鍵字和

15、完整性約束的概念; 理解基本關(guān)系的6條性質(zhì) 授課重點:關(guān)系的定義、關(guān)系模式、候選關(guān)鍵字、關(guān)系的完整約束等 授課難點:侯選關(guān)鍵字、引用完整性約束,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運算 專門的關(guān)系運算 綜合應用,概述,關(guān)系代數(shù)語言 用傳統(tǒng)的集合運算和專門的關(guān)系運算來表達查詢的抽象語言。 關(guān)系代數(shù)運算符 集合運算符:(并) (交) (差) 關(guān)系運算符:(笛卡兒積) (選擇) (投影) (連接) (除) 比較運算符: 邏輯運算符: ,說明,關(guān)系代數(shù)按運算符的不同可以分為: 傳統(tǒng)的集合運算 并、交、差、廣義笛卡爾積 專門的關(guān)系運算 選擇、投影、連接、除法,2.4

16、 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運算 專門的關(guān)系運算 綜合應用,1. 并(union),R和S 具有相同的目n(即兩個關(guān)系都有n個屬性) 相應的屬性取自同一個域 RS 仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成 RS = t|t Rt S ,并(續(xù)),R,S,RS,2.差(Difference),R和S 具有相同的目n 相應的屬性取自同一個域 R - S 仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成 R -S = t|tRtS ,差(續(xù)),R,S,R-S,S-R?,3. 交(Intersection),R和S 具有相同的目n 相應的屬性取自同一個域 RS 仍

17、為n目關(guān)系,由既屬于R又屬于S的元組組成 RS = t|t Rt S 思考:RS 用差能不能表示?,交 (續(xù)),R,S,R S,4. 廣義笛卡爾積(Extended Cartesian Product),R n目關(guān)系,k1個元組 S m目關(guān)系,k2個元組 RS 列:(n+m)列的元組的集合 元組的前n列是關(guān)系R的一個元組 后m列是關(guān)系S的一個元組 行:k1k2個元組 RS = tr ts |tr R tsS ,廣義笛卡爾積 (續(xù)),R,S,R S,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運算 專門的關(guān)系運算 綜合應用,1. 選擇,記號:tR表示t是R的一個元組

18、 選擇 從關(guān)系R中選取使邏輯表達式F為真的元組,行選。記作 邏輯表達式F由邏輯運算符連接算術(shù)表達式,算術(shù)表達式基本形式為 X1 Y1 其中表示比較運算符,X1,Y1是屬性名或常量或簡單函數(shù),屬性名可以用它的序號來代替,例:學生課程數(shù)據(jù)庫,包括Student,Course,SC三個關(guān)系,Sno Sname Ssex Sage Sdept 95001 李勇 男 20 CS 95002 劉晨 女 19 IS 95003 王敏 女 18 MA 95004 張立 男 19 IS,Student,Cno Cname Cpqo Ccredit 1 數(shù)據(jù)庫 5 4 2數(shù)學 2 信息系統(tǒng) 1 4 4 操作系統(tǒng)

19、6 3 5 數(shù)據(jù)結(jié)構(gòu) 7 4 6 數(shù)據(jù)處理 2 7 Pascal語言 6 4,Course,Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80,SC,查詢信息系全體學生: Sdept = IS(Student) 或 = IS(Student) 查詢年齡小于20歲的學生: Sage (Student) 或 (Student) 結(jié)果如下:,Sno Sname Ssex Sage Sdept 95002 劉晨女 19 IS 95004 張立男 19 IS,Sno Sname Ssex Sage Sdept 9500

20、2 劉晨女 19 IS 95003 王敏女 18 MA 95004 張立男 19 IS,Example,課堂練習: 1)查詢CS系的所有女生 2)查詢先行課代號為6的所有課程,2. 投影,定義:從關(guān)系R中選擇出滿足條件F的若干屬性列并組成新的關(guān)系,列選 其中 表示元組t中相應于屬性Ai的一個分量。 注意:運算結(jié)果要去掉重復元組。,Example,查詢學生的姓名和所在系: Sname,Sdept(Student)或2,5(Student) 查詢學生關(guān)系中有哪些系: Sdept(Student)或5(Student) 結(jié)果如下:,Sname Sdept 李勇 CS 劉晨 IS 王敏 MA 張立 I

21、S,Sdept CS IS MA,3. 連接,連接運算的含義 從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 R S = | tr Rts StrAtsB A和B:分別為R和S上度數(shù)相等且可比的屬性組 :比較運算符,連接(續(xù)),兩類常用連接運算 等值連接(equijoin) 為“”的連接運算稱為等值連接 自然連接(Natural join) 自然連接是一種特殊的等值連接,自然連接(natural join),兩個關(guān)系R和S的自然聯(lián)結(jié)算過程如下: 計算RS; 設(shè)R和S的公共屬性是A1,Ak,挑選RS中滿足R.A1=S.A1,R.Ak=S.Ak的那些元組; 去掉S.A1,S.Ak這些列,保留R

22、.A1,R.Ak 舉例,連接運算例 設(shè)有如圖的關(guān)系和關(guān)系,A B C a1 b1 5 a1 b2 6 a2 b3 8 a2 b4 12,R,B E b1 3 b2 7 b3 10 b3 2 b5 2,S,A R.B C S.B E a1 b1 5 b2 7 a1 b1 5 b3 10 a1 b2 6 b2 7 a1 b2 6 b3 10 a2 b3 8 b3 10,R CE S,A R.B C S.B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2 b3 8 b3 10 a2 b3 8 b3 2,等值連接, a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3

23、 8 2,自然連接,R R.B=S.B S,R S,4.除法(division),定義:給定關(guān)系R(X,Y)和S(Y,Z)。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。,R,S,X,Y,Y,Z,P,分析,1. 前提:兩個關(guān)系R(X,Y)和S(Y,Z)應該有公共屬性列。 2. 運算的結(jié)果:為P(X),元組來自于R關(guān)系,只包含X屬性列 3. R關(guān)系中的哪些元組呢? 對于tX的象集包含Y (S),Example,解:在關(guān)系R中,A可以為 a1,a2,a3,a4 a1的象集: (b1,c2),(b2,c3),

24、(b2,c1) a2的象集:(b3,c7),(b2,c3) a3的象集:(b4,c6) a4的象集:(b6,c6) S在(B,C)上的投影: (b1,c2),(b2,c3),(b2,c1),S,RS,S1,S2,S3,R,RS 1,RS 2,RS 3,S1、S2、S3表示課程情況,R表示選修課程,?,類似,X中誰的象集包含Y這張表,Example,R,RS,S,總結(jié),一共八種運算: 五種基本運算:并、差、笛卡爾積、選擇、投影 三種組合運算:交、連接、除,關(guān)系代數(shù)表達式: 關(guān)系代數(shù)運算經(jīng)有限次復合后形成的式子,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運算 專門的

25、關(guān)系運算 綜合應用,綜合應用,S(S#, SN, SD, SA) S1 A CS 20 S2 B CS 21 S3 C MA 19 S4 D CI 19 S5 E MA 20 S6 F CS 22,C(C#, CN, PC#) C1 G C2 H C1 C3 I C1 C4 J C2 C5 K C4,SC(S#, C#, G) S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C3 D S4 C5 A S5 C2 C S5 C3 B,綜合練習,1. 查詢數(shù)學系(MA)全體學生 2

26、. 查詢學生的姓名和所在的系 3. 查詢年齡小于20歲的學生的學號和姓名 4.查詢選修了C1的學生學號與成績 5. 查詢選修了C1課的學生學號和姓名 6.查詢選修了數(shù)據(jù)庫課的學生學號和姓名,綜合練習,7. 查詢不學C2課的學生姓名和年齡 8. 檢索選修課程“C2”或“C4”的學生學號 9. 檢索至少選修課程“C2”和“C4”的學生學號。 10. 查詢選修了全部課程的學生學號和姓名 11.檢索所學課程包含學生S3所學課程的學生學號 12.查詢至少選修了一門其直接先行課為C1課程的學生姓名,S(S#, SN, SD, SA) C(C#, CN, PC#) SC(S#, C#, G),1(1=4 2

27、=C2 5=C4 (SCSC),總結(jié),查詢語句的關(guān)系表達式一般形式是: (RS)或者 (R S) 但是當查詢涉及到否定或全部值時,上述形式就不能表達了,就要用到差操作或除操作。,思考題:,已知學生選課數(shù)據(jù)庫模式: Student(Sno, Sname,Sage, Sdept) Course(Cno,Cname) SC(Sno,Cno,Score) 用關(guān)系代數(shù)進行如下查詢: 選修了號課程的學生的姓名? 計算機系有不及格課程的學生名單 學生張林的“數(shù)據(jù)庫原理”成績,練習題,圖書館管理數(shù)據(jù)庫 讀者(讀者編號, 姓名, 單位) 圖書(書號, 書名, 作者, 出版社, 單價, 類型) 借閱記錄(讀者編號

28、, 書號, 借閱日期, 應還日期) 還書記錄(讀者編號, 書號, 歸還日期) 用關(guān)系代數(shù)描述以下查詢要求 查詢“人民郵電出版社”出版的所有圖書的相關(guān)信息 查詢單價在15元以上的書名和作者 查詢8號讀者2003年3月10日所借圖書的相關(guān)信息 查詢超期歸還圖書的讀者姓名和單位 查詢借閱過天龍八部的讀者的信息 查詢借閱過“金庸”所有著作的讀者的姓名 查詢沒有借閱過任何圖書的讀者的姓名,本講簡要總結(jié),授課目的:掌握關(guān)系代數(shù)的五種基本運算與非基本運算,關(guān)系代數(shù)表達式。 授課重點:關(guān)系代數(shù)的基本運算與重要的非基本運算,關(guān)系代數(shù)表達式的等價。 授課難點:自然連接、除法、關(guān)系代數(shù)表達式的等價性。,2.5 關(guān)系

29、演算,關(guān)系演算使用數(shù)理邏輯中的謂詞演算概念來表達對數(shù)據(jù)庫的操作 按謂詞變元的不同,關(guān)系演算可分為: 元組關(guān)系演算(tuple relational calculus):以元組為變量,簡稱為元組演算-ALPHA; 域關(guān)系演算(domain relational calculus) :以域為變量,簡稱為域演算-QBE。,2.5.1 元組關(guān)系演算語言ALPHA,由E.F.Codd提出 INGRES所用的QUEL語言參照ALPHA語言研制 語句 檢索語句GET 更新語句PUT,HOLD,UPDATE,DELETE,DROP,ALPHA語言語句基本格式,操作語句 工作空間名(表達式):操作條件 W 命令

30、動詞 投影表 條件 (GET,PUT等) (輸出結(jié)果),關(guān)系演算用謂詞公式表達查詢條件,指出“做什么”,而“怎么做”交給系統(tǒng)解決。前面介紹的關(guān)系代數(shù)語言,用戶需指出方法步驟。相比之下,關(guān)系演算使用更方便,是一種高度非過程化的語言。,一、檢索操作-GET語句實現(xiàn),簡單檢索(即不帶條件的檢索) 限定檢索(即帶條件的檢索) 帶排序的檢索 帶定額的檢索 用元組變量的檢索,用存在量詞的檢索 帶有多個關(guān)系的表達式的檢索 用全稱量詞的檢索 用兩種量詞的檢索 用蘊函的檢索 集函數(shù),簡單檢索,格式:GET工作空間名 (表達式1) 例1、求所有被選修的課程的課程號碼 GET W (SC.CNO) 例2、查詢所有學

31、生的信息 GET W (S),S(SNO SN, SD, SA) C(CNO, CN, PCNO) SC(SNO, CNO, G),限定檢索,格式: GET工作空間名(表達式1):操作條件 例3、求數(shù)學系年齡小于20的學生的學號和年齡 GET W(S.SNO,S.SA):S.SD=MA S.SA20,帶排序的檢索,格式 GET工作空間名(表達式1):操作條件 DOWN/UP 表達式2 例4、求計科系(CS)的學生的學號、年齡,并按年齡降序排列 GET W(S.SNO,S.SA):S.SD=CS DOWN S.SA,帶定額的檢索,格式: GET工作空間名(定額)(表達式1) :操作條件 DOWN

32、/UP 表達式2 例5、取出一個計科系學生的學號 GET W(1)(S.SNO):S.SD=CS 例6、查詢計科系年齡最大的三個學生的學號及其年齡,結(jié)果按年齡降序排序 GET W (3) (S.SNO,S.SA): S.SD=CS DOWN S.SA,用元組變量的檢索(1 of 2),元組變量的含義 表示可以在某一關(guān)系范圍內(nèi)變化(也稱為范圍變量Range Variable) 元組變量的用途 簡化關(guān)系名:設(shè)一個較短名字的元組變量來代替較長的關(guān)系名。 操作條件中使用量詞時必須用元組變量。 (存在量詞):表示“存在一些”,“至少有一個” (全稱量詞):表示“對所有的”,“對任一個”,用元組變量的檢索

33、(2 of 2),定義元組變量 格式: RANGE 關(guān)系名 變量名 如:RANGE S X 則 s.sno等價于x.sno 一個關(guān)系可以設(shè)多個元組變量 如:允許有 RANGE S X,Y這種形式 例7、查詢計科系學生的姓名 RANGE S X GET W (X.SN):X.SD=CS,用存在量詞的檢索(1 of 2),例8、求選修C2課程的學生姓名 RANGE SC X GET W (S.SN): X(X.Sno=S.SnoX.Cno=C2) 例9、求選修了這樣課程的學生學號,其直 接 先行課是C1。 RANGE C CX GET W (SC.Sno): CX (CX.Cno=SC.CnoCX

34、.Pcno=C1),用存在量詞的檢索(2 of 2),例10、查詢至少選修一門其先行課為C1課程的學生名字 RANGE C CX SC SCX GET W (S.SN): SCX (SCX.SNO=S.SNO CX (CX.CNO=SCX.CNOCX.PCNO=C1) 前束范式形式: GET W (S.SN): SCXCX (SCX.SNO=S.SNO CX.CNO=SCX.CNOCX.PCNO=C1),帶有多個關(guān)系的表達式的檢索,例11、查詢成績?yōu)锳的學生名字與課程名字 RANGE SC SCX GET W(S.SN,C.CN): SCX ( SCX.SNO=S.SNO C.CNO=SCX.

35、CNO SCX.G=A),用全稱量詞的檢索,例12、 查詢不選C1課程的學生名字 RANGE SC SCX GET W (S.SN): SCX (SCX. SNOS. SNOSCX.CNOC1) 用存在量詞表示: RANGE SC SCX GET W (S.SN): SCX (SCX. SNO=S.SNOSCX.CNO=C1),等價規(guī)則,P1P2等價于(P1P2) P1P2等價于(P1P2) (s)P1(s)等價于(s)(P1(s) (s)P1(s)等價于(s)(P1(s) P1P2等價于P1 P2,用兩種量詞的檢索,例13、查詢選修了全部課程的學生姓名。 RANGE C CX SC SCX

36、GET W (S.SN): CXSCX (SCX.SNO=S.SNO SCX.CNO=CX.CNO) 或者:GET W (S.SN): SCX(SCX.SNO=S.SNO CX(SCX.CNO=CX.CNO),用蘊函的檢索,例14、查詢最少選修了S2所選課程的學生學號 RANGE C CX SC SCX SC SCY GET W (S.Sno): CX(SCX (SCX.Sno=S2SCX.Cno=CX.Cno) SCY(SCY.Sno=S.Sno SCY.Cno= CX.Cno) 分析:,集函數(shù)(1of 2),常用集函數(shù)(Aggregation function)或內(nèi) 部函數(shù)(Build-in function),集函數(shù)(2 of

溫馨提示

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

評論

0/150

提交評論