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

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫原理,主講:趙海霞,河南科技大學(xué)電信學(xué)院,第二章 關(guān)系數(shù)據(jù)庫,學(xué)習(xí)要點(diǎn) 關(guān)系模型概述 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 關(guān)系的完整性 關(guān)系代數(shù) 關(guān)系演算,關(guān)系模型簡(jiǎn)史,E.F.Codd的論文” A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM, (1970年) IBM在加里福利亞的San Jose研究所開發(fā)的實(shí)驗(yàn)性關(guān)系數(shù)據(jù)庫管理系統(tǒng)System R (1976年) 加州大學(xué)伯克利分校開發(fā)的INGRES(交互式圖形檢索系統(tǒng))項(xiàng)目 (1976年) IBM在Peterlee的科研中心所開發(fā)的Peterlee關(guān)系測(cè)試工具(1976年) 上世紀(jì)80-90年代,涌現(xiàn)了幾百個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),值得記住的 1970年,E.F.Codd提出關(guān)系數(shù)據(jù)庫理論基礎(chǔ) 關(guān)系數(shù)據(jù)庫試驗(yàn)系統(tǒng)System R, INGRES 目前流行的RDBMS DB2, Oracle, Ingres, Sybase, Informix等,2.1 關(guān)系模型概述,關(guān)系模型由以下三部分組成: 單一的數(shù)據(jù)結(jié)構(gòu)-關(guān)系 任何一個(gè)關(guān)系數(shù)據(jù)庫都是由若干張互相關(guān)聯(lián)的表組成 關(guān)系模式和關(guān)系 關(guān)系操作 查詢操作:選擇、投影、連接、除、并、交、差 更新操作:增加、刪除、修改 關(guān)系的三類完整性約束 實(shí)體完整性、參照完整性和用戶定義的完整性,關(guān)系的兩個(gè)不變性, 由系統(tǒng)自動(dòng)支持,由應(yīng)用語義約束,關(guān)系模型語言,關(guān)系操作特點(diǎn): 操作對(duì)象和結(jié)果都是集合 高度非過程化的語言,不必借助循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作,能嵌入高級(jí)語言中使用,關(guān)系數(shù)據(jù)語言,關(guān)系代數(shù)語言,關(guān)系演算語言,具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言,元組關(guān)系演算語言,域關(guān)系演算語言,例如ISBL,例如APLHA, QUEL,例如QBE,例如SQL,關(guān)系模型語言,關(guān)系代數(shù)語言 把關(guān)系當(dāng)作集合,用集合運(yùn)算和特殊的關(guān)系運(yùn)算來表達(dá)查詢要求和條件 是一種抽象的查詢語言 關(guān)系演算語言 用謂詞來表達(dá)查詢要求和條件 謂詞變?cè)幕緦?duì)象可以是元組變量或域變量,故可分為元組關(guān)系演算和域關(guān)系演算兩類 是一種抽象的查詢語言 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ù)類型的值的集合。 每個(gè)屬性有一個(gè)允許的值的集合稱為該屬性的域。 定義2:笛卡兒積(Cartesian Product) D1 D2 Dn= (d1,d2, ,dn)| di Di , i=1,2, ,n (d1,d2, ,dn)叫做一個(gè)n元組(n-tuple),或簡(jiǎn)稱元組 di 叫做一個(gè)分量(Component),笛卡爾積,計(jì)算實(shí)例 例1:D1=甲,乙, D2=1,2, D3=a,b,c 1)D1,D2,D3基數(shù)分別是多少? 2)D1D2?(基數(shù)?) 3)D1D2D3?(基數(shù)?) 笛卡爾集可表示為一個(gè)二維表 表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域,請(qǐng)將例子表示為二維表,例2已知三個(gè)域 D1=導(dǎo)師集合張清正,劉逸 D2=專業(yè)集合計(jì)算機(jī),信息 D3=學(xué)生集合李勇,劉晨,王敏,計(jì)算思考 1)每個(gè)域的基數(shù)? 2)計(jì)算D1D2D3?基數(shù)? 3)計(jì)算結(jié)果中的元組有無實(shí)際意義?,關(guān)系的形式化定義,定義:關(guān)系 D1 D2 Dn的子集叫做在域D1, D2 , , Dn上的關(guān)系,表示為R(D1,D2 , ,Dn)。即:將關(guān)系定義為一系列域上的笛卡爾集的子集。,例已知三個(gè)域 D1=導(dǎo)師集合S張清正,劉逸 D2=專業(yè)集合SP計(jì)算機(jī),信息 D3=學(xué)生集合P李勇,劉晨,王敏 計(jì)算思考 從笛卡爾集中取出一個(gè)子集,選擇有意義的結(jié)果組成關(guān)系 R(導(dǎo)師,專業(yè),研究生) 一個(gè)研究生只能有一個(gè)專業(yè),如李勇和王敏是計(jì)算機(jī)專業(yè)、劉晨是信息專業(yè),導(dǎo)師S,專業(yè)SP,研究生P,張清正 計(jì)算機(jī) 李勇 張清正 計(jì)算機(jī) 劉晨 張清正 計(jì)算機(jī) 王敏 張清正 信息 李勇 張清正 信息 劉晨 張清正 信息 王敏 劉逸 計(jì)算機(jī) 李勇 劉逸 計(jì)算機(jī) 劉晨 劉逸 計(jì)算機(jī) 王敏 劉逸 信息 李勇 劉逸 信息 劉晨 劉逸 信息 王敏,D1,D2,D3的笛卡爾積(上圖),現(xiàn)在導(dǎo)師與研究生是什么關(guān)系?,限定一個(gè)學(xué)生只能有一個(gè)導(dǎo)師,如張是計(jì)算機(jī)導(dǎo)師,劉是信息專業(yè)導(dǎo)師,現(xiàn)在導(dǎo)師與研究生是什么關(guān)系?,關(guān)系的基本術(shù)語,關(guān)系模型(relational model) 用二維表格結(jié)構(gòu)表示實(shí)體類型,外鍵表示實(shí)體間聯(lián)系的模型稱為關(guān)系模型。 屬性(指字段、數(shù)據(jù)項(xiàng)) 屬性值、屬性的值域DOM(A)(指字段值、字段的值域) 元組 (指記錄) 關(guān)系模式 (指記錄類型) 關(guān)系或?qū)嵗ㄖ讣o(jì)錄的集合) 元數(shù)(指關(guān)系中屬性的個(gè)數(shù)) 基數(shù)(指關(guān)系中元組的個(gè)數(shù)),屬性(列),元組(行),屬性名,學(xué)生登記表,關(guān)系,整數(shù),字符串,16,17 .,字符串,男 女,域,.,.,.,.,.,元數(shù),基數(shù),基本術(shù)語,基本術(shù)語,鍵(碼) 超鍵(super key) :在一個(gè)關(guān)系中,能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵; 候選鍵(candidate key) :如果一個(gè)屬性集能唯一標(biāo)識(shí)元組,且又不含有多余屬性,則該屬性集稱為候選鍵;候選關(guān)鍵字必為超關(guān)鍵字,反之不一定成立 主鍵(primary key) :關(guān)系模式中用戶正在使用的候選鍵稱為主鍵; 外鍵(foreign key):如果關(guān)系R中某屬性集是其它模式的主鍵,則該屬性集對(duì)模式R而言是外鍵。,基本術(shù)語,主屬性 指主鍵的諸屬性 非碼屬性 不包含在任何候選碼中的屬性,基本術(shù)語,三類關(guān)系 基本關(guān)系(基本表或基表) 實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示 查詢表 查詢結(jié)果對(duì)應(yīng)的表 視圖表 由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù),基本關(guān)系的6個(gè)性質(zhì),列是同質(zhì)的 每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域 不同的列可出自同一個(gè)域 其中的每一列稱為一個(gè)屬性 不同的屬性要給予不同的屬性名 列的順序無所謂 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時(shí),永遠(yuǎn)是插至最后一列但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了屬性順序,基本關(guān)系的6個(gè)性質(zhì),任意兩個(gè)元組不能完全相同 由笛卡爾積的性質(zhì)決定 但許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì)( Oracle,F(xiàn)oxPro ) 行的順序無所謂 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),插入一個(gè)元組時(shí)永遠(yuǎn)插至最后一行 但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了元組的順序,基本關(guān)系的6個(gè)性質(zhì),分量必須取原子值 每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng) 這是規(guī)范條件中最基本的一條,2.2.2關(guān)系模式和關(guān)系,關(guān)系模式 對(duì)關(guān)系的描述 靜態(tài)的、穩(wěn)定的 關(guān)系 關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容 動(dòng)態(tài)的、隨時(shí)間不斷變化的 實(shí)際應(yīng)用中常常將關(guān)系模式和關(guān)系都稱為關(guān)系,關(guān)系模式的定義,關(guān)系的描述稱為關(guān)系模式(Relation Schema) 關(guān)系模式形式化地表示為:,關(guān)系模式舉例,表示學(xué)生實(shí)體類型和課程實(shí)體類型間多對(duì)多關(guān)系的ER圖,關(guān)系模式舉例,學(xué)生關(guān)系模式 S(S#, SNAME, AGE, SEX) 學(xué)生課程關(guān)系描述 SC(S#, C#, GRADE) 課程關(guān)系模式 C(C#, CNAME, TEACHER),S,SC,C,子模式舉例,子模式是用戶用到的那部分?jǐn)?shù)據(jù)。除了用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與概念模式中相應(yīng)數(shù)據(jù)的關(guān)系。,G,S,SC,成績子模式 G(S#, SNAME, C#, GRADE),2.2.3關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫 在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫也有型和值之分,思考:給出導(dǎo)師、學(xué)生、專業(yè)三個(gè)實(shí)體可能組成的關(guān)系數(shù)據(jù)庫及其概念模型(E-R圖),2.3 關(guān)系模型的三類完整性規(guī)則,實(shí)體完整性:元組在組成主鍵的屬性上不能有空值; 參照完整性(引用完整性):不允許引用不存在的元組。 用戶定義的完整性(域完整性) 其中:前二者是關(guān)系模型必須滿足的完整性約束條件,是關(guān)系的兩個(gè)不變性,應(yīng)當(dāng)有關(guān)系系統(tǒng)自動(dòng)滿足。,實(shí)體完整性(Entity Integrity),若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值 例如: 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 課程(課程號(hào),課程名,學(xué)分) 選修(學(xué)號(hào),課程號(hào),成績) 實(shí)體應(yīng)該是可區(qū)分的,主鍵是區(qū)分實(shí)體的唯一性標(biāo)識(shí),因此不能為空(即不能不知道)。,例:學(xué)生實(shí)體與專業(yè)實(shí)體間的關(guān)系: 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 專業(yè)(專業(yè)號(hào),專業(yè)名) 關(guān)系參照?qǐng)D,例:學(xué)生,課程,學(xué)生與課程之間的多對(duì)多聯(lián)系: 學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡) 課程(課程號(hào),課程名,學(xué)分) 選修(學(xué)號(hào),課程號(hào),成績) 關(guān)系參照?qǐng)D,參照關(guān)系,學(xué)生關(guān)系 專業(yè)關(guān)系,專業(yè)號(hào),學(xué)生關(guān)系 選修關(guān)系 課程關(guān)系,學(xué)號(hào),課程號(hào),參照完整性,主碼?外碼?,參照完整性,定義:外碼 設(shè)F是參照關(guān)系R的一個(gè)或一組屬性,但不是R的碼,若F與被參照關(guān)系S的主碼相對(duì)應(yīng),則稱F是R的外碼(詳細(xì)定義見教材P54) 規(guī)則:參照關(guān)系R中每個(gè)元組在外碼F上的值必須為: 或者取空值(F的每個(gè)屬性值均為空值) 或者等于S中某個(gè)元組的主碼值,例:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長),參照關(guān)系,被參照關(guān)系,外碼,用戶定義完整性(User-defined Integrity),用戶定義的、具體應(yīng)用中的數(shù)據(jù)必須滿足的約束條件 例如:成績:0100之間 身份證、身份證和生日對(duì)應(yīng)關(guān)系,2.3關(guān)系的完整性規(guī)則,完整約束條件是數(shù)據(jù)模型的一個(gè)重要組成部分,它保證數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實(shí)世界的一致性 考慮屬性的取值、主關(guān)鍵字以及諸關(guān)系屬性之間的一些制約 此外許多系統(tǒng)支持?jǐn)?shù)據(jù)庫設(shè)計(jì)者說明特殊的約束以及違反約束時(shí)的處理過程,關(guān)系模型的優(yōu)點(diǎn),關(guān)系模型提供單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡(jiǎn)明性和精確性; 關(guān)系模型的邏輯結(jié)構(gòu)和相應(yīng)的操作完全獨(dú)立于數(shù)據(jù)存儲(chǔ)方式,具有高度的數(shù)據(jù)獨(dú)立性; 關(guān)系模型使數(shù)據(jù)庫的研究建立在比較堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)上。,本講簡(jiǎn)要總結(jié),目的與要求:掌握關(guān)系模型有關(guān)術(shù)語、關(guān)鍵字和完整性約束的概念; 理解基本關(guān)系的6條性質(zhì) 授課重點(diǎn):關(guān)系的定義、關(guān)系模式、候選關(guān)鍵字、關(guān)系的完整約束等 授課難點(diǎn):侯選關(guān)鍵字、引用完整性約束,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算 綜合應(yīng)用,概述,關(guān)系代數(shù)語言 用傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算來表達(dá)查詢的抽象語言。 關(guān)系代數(shù)運(yùn)算符 集合運(yùn)算符:(并) (交) (差) 關(guān)系運(yùn)算符:(笛卡兒積) (選擇) (投影) (連接) (除) 比較運(yùn)算符: 邏輯運(yùn)算符: ,說明,關(guān)系代數(shù)按運(yùn)算符的不同可以分為: 傳統(tǒng)的集合運(yùn)算 并、交、差、廣義笛卡爾積 專門的關(guān)系運(yùn)算 選擇、投影、連接、除法,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算 綜合應(yīng)用,1. 并(union),R和S 具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性) 相應(yīng)的屬性取自同一個(gè)域 RS 仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成 RS = t|t Rt S ,并(續(xù)),R,S,RS,2.差(Difference),R和S 具有相同的目n 相應(yīng)的屬性取自同一個(gè)域 R - S 仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成 R -S = t|tRtS ,差(續(xù)),R,S,R-S,S-R?,3. 交(Intersection),R和S 具有相同的目n 相應(yīng)的屬性取自同一個(gè)域 RS 仍為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個(gè)元組 S m目關(guān)系,k2個(gè)元組 RS 列:(n+m)列的元組的集合 元組的前n列是關(guān)系R的一個(gè)元組 后m列是關(guān)系S的一個(gè)元組 行:k1k2個(gè)元組 RS = tr ts |tr R tsS ,廣義笛卡爾積 (續(xù)),R,S,R S,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算 綜合應(yīng)用,1. 選擇,記號(hào):tR表示t是R的一個(gè)元組 選擇 從關(guān)系R中選取使邏輯表達(dá)式F為真的元組,行選。記作 邏輯表達(dá)式F由邏輯運(yùn)算符連接算術(shù)表達(dá)式,算術(shù)表達(dá)式基本形式為 X1 Y1 其中表示比較運(yùn)算符,X1,Y1是屬性名或常量或簡(jiǎn)單函數(shù),屬性名可以用它的序號(hào)來代替,例:學(xué)生課程數(shù)據(jù)庫,包括Student,Course,SC三個(gè)關(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ù)學(xué) 2 信息系統(tǒng) 1 4 4 操作系統(tǒng) 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,查詢信息系全體學(xué)生: Sdept = IS(Student) 或 = IS(Student) 查詢年齡小于20歲的學(xué)生: Sage (Student) 或 (Student) 結(jié)果如下:,Sno Sname Ssex Sage Sdept 95002 劉晨 女 19 IS 95004 張立 男 19 IS,Sno Sname Ssex Sage Sdept 95002 劉晨 女 19 IS 95003 王敏 女 18 MA 95004 張立 男 19 IS,Example,課堂練習(xí): 1)查詢CS系的所有女生 2)查詢先行課代號(hào)為6的所有課程,2. 投影,定義:從關(guān)系R中選擇出滿足條件F的若干屬性列并組成新的關(guān)系,列選 其中 表示元組t中相應(yīng)于屬性Ai的一個(gè)分量。 注意:運(yùn)算結(jié)果要去掉重復(fù)元組。,Example,查詢學(xué)生的姓名和所在系: Sname,Sdept(Student)或2,5(Student) 查詢學(xué)生關(guān)系中有哪些系: Sdept(Student)或5(Student) 結(jié)果如下:,Sname Sdept 李勇 CS 劉晨 IS 王敏 MA 張立 IS,Sdept CS IS MA,3. 連接,連接運(yùn)算的含義 從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 R S = | tr Rts StrAtsB A和B:分別為R和S上度數(shù)相等且可比的屬性組 :比較運(yùn)算符,連接(續(xù)),兩類常用連接運(yùn)算 等值連接(equijoin) 為“”的連接運(yùn)算稱為等值連接 自然連接(Natural join) 自然連接是一種特殊的等值連接,自然連接(natural join),兩個(gè)關(guān)系R和S的自然聯(lián)結(jié)算過程如下: 計(jì)算RS; 設(shè)R和S的公共屬性是A1,Ak,挑選RS中滿足R.A1=S.A1,R.Ak=S.Ak的那些元組; 去掉S.A1,S.Ak這些列,保留R.A1,R.Ak 舉例,連接運(yùn)算例 設(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 8 2,自然連接,R R.B=S.B S,R S,4.除法(division),定義:給定關(guān)系R(X,Y)和S(Y,Z)。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。,R,S,X,Y,Y,Z,P,分析,1. 前提:兩個(gè)關(guān)系R(X,Y)和S(Y,Z)應(yīng)該有公共屬性列。 2. 運(yùn)算的結(jié)果:為P(X),元組來自于R關(guān)系,只包含X屬性列 3. R關(guān)系中的哪些元組呢? 對(duì)于tX的象集包含Y (S),Example,解:在關(guān)系R中,A可以為 a1,a2,a3,a4 a1的象集: (b1,c2),(b2,c3),(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é),一共八種運(yùn)算: 五種基本運(yùn)算:并、差、笛卡爾積、選擇、投影 三種組合運(yùn)算:交、連接、除,關(guān)系代數(shù)表達(dá)式: 關(guān)系代數(shù)運(yùn)算經(jīng)有限次復(fù)合后形成的式子,2.4 關(guān)系代數(shù)(Relational Algebra),概述 傳統(tǒng)的集合運(yùn)算 專門的關(guān)系運(yùn)算 綜合應(yīng)用,綜合應(yīng)用,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,綜合練習(xí),1. 查詢數(shù)學(xué)系(MA)全體學(xué)生 2. 查詢學(xué)生的姓名和所在的系 3. 查詢年齡小于20歲的學(xué)生的學(xué)號(hào)和姓名 4.查詢選修了C1的學(xué)生學(xué)號(hào)與成績 5. 查詢選修了C1課的學(xué)生學(xué)號(hào)和姓名 6.查詢選修了數(shù)據(jù)庫課的學(xué)生學(xué)號(hào)和姓名,綜合練習(xí),7. 查詢不學(xué)C2課的學(xué)生姓名和年齡 8. 檢索選修課程“C2”或“C4”的學(xué)生學(xué)號(hào) 9. 檢索至少選修課程“C2”和“C4”的學(xué)生學(xué)號(hào)。 10. 查詢選修了全部課程的學(xué)生學(xué)號(hào)和姓名 11.檢索所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào) 12.查詢至少選修了一門其直接先行課為C1課程的學(xué)生姓名,S(S#, SN, SD, SA) C(C#, CN, PC#) SC(S#, C#, G),1(1=4 2=C2 5=C4 (SCSC),總結(jié),查詢語句的關(guān)系表達(dá)式一般形式是: (RS)或者 (R S) 但是當(dāng)查詢涉及到否定或全部值時(shí),上述形式就不能表達(dá)了,就要用到差操作或除操作。,思考題:,已知學(xué)生選課數(shù)據(jù)庫模式: Student(Sno, Sname,Sage, Sdept) Course(Cno,Cname) SC(Sno,Cno,Score) 用關(guān)系代數(shù)進(jìn)行如下查詢: 選修了號(hào)課程的學(xué)生的姓名? 計(jì)算機(jī)系有不及格課程的學(xué)生名單 學(xué)生張林的“數(shù)據(jù)庫原理”成績,練習(xí)題,圖書館管理數(shù)據(jù)庫 讀者(讀者編號(hào), 姓名, 單位) 圖書(書號(hào), 書名, 作者, 出版社, 單價(jià), 類型) 借閱記錄(讀者編號(hào), 書號(hào), 借閱日期, 應(yīng)還日期) 還書記錄(讀者編號(hào), 書號(hào), 歸還日期) 用關(guān)系代數(shù)描述以下查詢要求 查詢“人民郵電出版社”出版的所有圖書的相關(guān)信息 查詢單價(jià)在15元以上的書名和作者 查詢8號(hào)讀者2003年3月10日所借圖書的相關(guān)信息 查詢超期歸還圖書的讀者姓名和單位 查詢借閱過天龍八部的讀者的信息 查詢借閱過“金庸”所有著作的讀者的姓名 查詢沒有借閱過任何圖書的讀者的姓名,本講簡(jiǎn)要總結(jié),授課目的:掌握關(guān)系代數(shù)的五種基本運(yùn)算與非基本運(yùn)算,關(guān)系代數(shù)表達(dá)式。 授課重點(diǎn):關(guān)系代數(shù)的基本運(yùn)算與重要的非基本運(yùn)算,關(guān)系代數(shù)表達(dá)式的等價(jià)。 授課難點(diǎn):自然連接、除法、關(guān)系代數(shù)表達(dá)式的等價(jià)性。,2.5 關(guān)系演算,關(guān)系演算使用數(shù)理邏輯中的謂詞演算概念來表達(dá)對(duì)數(shù)據(jù)庫的操作 按謂詞變?cè)牟煌?,關(guān)系演算可分為: 元組關(guān)系演算(tuple relational calculus):以元組為變量,簡(jiǎn)稱為元組演算-ALPHA; 域關(guān)系演算(domain relational calculus) :以域?yàn)樽兞?,?jiǎn)稱為域演算-QBE。,2.5.1 元組關(guān)系演算語言ALPHA,由E.F.Codd提出 INGRES所用的QUEL語言參照ALPHA語言研制 語句 檢索語句GET 更新語句PUT,HOLD,UPDATE,DELETE,DROP,ALPHA語言語句基本格式,操作語句 工作空間名(表達(dá)式):操作條件 W 命令動(dòng)詞 投影表 條件 (GET,PUT等) (輸出結(jié)果),關(guān)系演算用謂詞公式表達(dá)查詢條件,指出“做什么”,而“怎么做”交給系統(tǒng)解決。前面介紹的關(guān)系代數(shù)語言,用戶需指出方法步驟。相比之下,關(guān)系演算使用更方便,是一種高度非過程化的語言。,一、檢索操作-GET語句實(shí)現(xiàn),簡(jiǎn)單檢索(即不帶條件的檢索) 限定檢索(即帶條件的檢索) 帶排序的檢索 帶定額的檢索 用元組變量的檢索,用存在量詞的檢索 帶有多個(gè)關(guān)系的表達(dá)式的檢索 用全稱量詞的檢索 用兩種量詞的檢索 用蘊(yùn)函的檢索 集函數(shù),簡(jiǎn)單檢索,格式:GET 工作空間名 (表達(dá)式1) 例1、求所有被選修的課程的課程號(hào)碼 GET W (SC.CNO) 例2、查詢所有學(xué)生的信息 GET W (S),S(SNO SN, SD, SA) C(CNO, CN, PCNO) SC(SNO, CNO, G),限定檢索,格式: GET 工作空間名(表達(dá)式1):操作條件 例3、求數(shù)學(xué)系年齡小于20的學(xué)生的學(xué)號(hào)和年齡 GET W(S.SNO,S.SA):S.SD=MA S.SA20,帶排序的檢索,格式 GET 工作空間名(表達(dá)式1):操作條件 DOWN/UP 表達(dá)式2 例4、求計(jì)科系(CS)的學(xué)生的學(xué)號(hào)、年齡,并按年齡降序排列 GET W(S.SNO,S.SA):S.SD=CS DOWN S.SA,帶定額的檢索,格式 : GET 工作空間名(定額)(表達(dá)式1) :操作條件 DOWN/UP 表達(dá)式2 例5、取出一個(gè)計(jì)科系學(xué)生的學(xué)號(hào) GET W(1)(S.SNO):S.SD=CS 例6、查詢計(jì)科系年齡最大的三個(gè)學(xué)生的學(xué)號(hào)及其年齡,結(jié)果按年齡降序排序 GET W (3) (S.SNO,S.SA): S.SD=CS DOWN S.SA,用元組變量的檢索(1 of 2),元組變量的含義 表示可以在某一關(guān)系范圍內(nèi)變化(也稱為范圍變量Range Variable) 元組變量的用途 簡(jiǎn)化關(guān)系名:設(shè)一個(gè)較短名字的元組變量來代替較長的關(guān)系名。 操作條件中使用量詞時(shí)必須用元組變量。 (存在量詞):表示“存在一些”,“至少有一個(gè)” (全稱量詞):表示“對(duì)所有的”,“對(duì)任一個(gè)”,用元組變量的檢索(2 of 2),定義元組變量 格式: RANGE 關(guān)系名 變量名 如:RANGE S X 則 s.sno等價(jià)于x.sno 一個(gè)關(guān)系可以設(shè)多個(gè)元組變量 如:允許有 RANGE S X,Y這種形式 例7、查詢計(jì)科系學(xué)生的姓名 RANGE S X GET W (X.SN):X.SD=CS,用存在量詞的檢索(1 of 2),例8、求選修C2課程的學(xué)生姓名 RANGE SC X GET W (S.SN): X(X.Sno=S.SnoX.Cno=C2) 例9、求選修了這樣課程的學(xué)生學(xué)號(hào),其直 接 先行課是C1。 RANGE C CX GET W (SC.Sno): CX (CX.Cno=SC.CnoCX.Pcno=C1),用存在量詞的檢索(2 of 2),例10、查詢至少選修一門其先行課為C1課程的學(xué)生名字 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),帶有多個(gè)關(guān)系的表達(dá)式的檢索,例11、查詢成績?yōu)锳的學(xué)生名字與課程名字 RANGE SC SCX GET W(S.SN,C.CN): SCX ( SCX.SNO=S.SNO C.CNO=SCX.CNO SCX.G=A),用全稱量詞的檢索,例12、 查詢不選C1課程的學(xué)生名字 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),等價(jià)規(guī)則,P1P2等價(jià)于(P1P2) P1P2等價(jià)于(P1P2) (s)P1(s)等價(jià)于(s)(P1(s) (s)P1(s)等價(jià)于(s)(P1(s) P1P2等價(jià)于P1 P2,用兩種量詞的檢索,例13、查詢選修了全部課程的學(xué)生姓名。 RANGE C CX SC SCX 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),用蘊(yùn)函的檢索,例14、查詢最少選修了S2所選課程的學(xué)生學(xué)號(hào) 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 o

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論