版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
關(guān)模型和關(guān)系運算理論第1頁,共92頁,2023年,2月20日,星期日本章重要概念(一)(1)基本概念 關(guān)系模型,關(guān)鍵碼(主鍵和外鍵),關(guān)系的定義和性質(zhì),三類完整性規(guī)則,ER模型到關(guān)系模型的轉(zhuǎn)換規(guī)則,過程性語言與非過程性語言。(2)關(guān)系代數(shù) 五個基本操作,四個組合操作,七個擴充操作。
第2頁,共92頁,2023年,2月20日,星期日本章重要概念(二)(3)關(guān)系演算 元組關(guān)系演算和域關(guān)系演算的原子公式、公式的定義。關(guān)系演算的安全性和等價性。(4)關(guān)系代數(shù)表達(dá)式的優(yōu)化 關(guān)系代數(shù)表達(dá)式的等價及等價轉(zhuǎn)換規(guī)則,啟化式優(yōu)化算法。(5)關(guān)系邏輯 謂詞、原子、規(guī)則和查詢,規(guī)則的安全性,用規(guī)則模擬關(guān)系代數(shù)表達(dá)式。
第3頁,共92頁,2023年,2月20日,星期日關(guān)系模型和關(guān)系運算理2.1關(guān)系模型的基本概念2.2關(guān)系代數(shù)2.3關(guān)系演算2.4關(guān)系代數(shù)表達(dá)式的優(yōu)化2.5關(guān)系邏輯
第4頁,共92頁,2023年,2月20日,星期日2.1關(guān)系模型的基本概念
2.1.1基本術(shù)語
2.1.2關(guān)系的定義和性質(zhì)2.1.3關(guān)系模型的三類完整性規(guī)則
2.1.4ER模型向關(guān)系模型的轉(zhuǎn)換規(guī)則
2.1.5關(guān)系模型的三級體系結(jié)構(gòu)
2.1.6關(guān)系模型的形式定義和優(yōu)點
2.1.7關(guān)系查詢語言和關(guān)系運算
返回第5頁,共92頁,2023年,2月20日,星期日基本術(shù)語(1)定義2.1用二維表格表示實體集,用關(guān)鍵碼進(jìn)行數(shù)據(jù)導(dǎo)航的數(shù)據(jù)模型稱為關(guān)系模型(relationalModel)。這里數(shù)據(jù)導(dǎo)航(datanavigation)是指從已知數(shù)據(jù)查找未知數(shù)據(jù)的過程和方法。
圖2.1職工登記表
第6頁,共92頁,2023年,2月20日,星期日基本術(shù)語(2)關(guān)系:一個關(guān)系對應(yīng)一張二維表(非形式化描述)關(guān)系名-表名。記錄類型稱為關(guān)系模式。元組:表中的一行稱為一個元組(元組的集合即為關(guān)系)。屬性:表中的一列稱為屬性,列名即屬性名。字段值稱為屬性值,元數(shù)(arity):關(guān)系中屬性的個數(shù)。基數(shù)(cardinality):元組個數(shù)稱為基數(shù)。屬性的值域:屬性的取值范圍(數(shù)據(jù)類型),記作DOM(屬性名),每一個屬性對應(yīng)一個值域不同屬性可對應(yīng)同一個值域。比如:職稱={教授,副教授,講師,助教}第7頁,共92頁,2023年,2月20日,星期日學(xué)號9800019800029800039800028:9800029姓名趙學(xué)眾錢習(xí)志孫雷成:李鋒城甘清性別男女:男男女班級力91化81物71:汽93儀81元組(行)關(guān)系模式數(shù)據(jù)庫術(shù)語關(guān)系模型術(shù)語記錄字段值屬性值字段屬性記錄類型關(guān)系文件基本術(shù)語(3)圖2.2關(guān)系模型的術(shù)語
第8頁,共92頁,2023年,2月20日,星期日基本術(shù)語(4)職工關(guān)系模式ZG(工號,姓名,年齡,性別,工資)1.超鍵:能唯一標(biāo)識元組的一個或一組屬性,稱為關(guān)系的超鍵,例如:(工號,姓名)。2.候選鍵key:不含多余屬性的超鍵叫候選鍵,如(工號)。3.主鍵primarykey:當(dāng)一個關(guān)系中有多個候選鍵時,我們從候選鍵中選擇一個用作元組標(biāo)識的稱為主鍵,若實際使用中,用工號作為插入、查找的操作變量,稱工號為主鍵。每個關(guān)系都必定有且只有一個主鍵對于一個關(guān)系,主鍵一經(jīng)選定,通常是不能隨意改變的4、外部鍵(ForeignKey)
如果關(guān)系R2的一個或一組屬性不是R2的主鍵,而是另一關(guān)系R1的主鍵,則該屬性或?qū)傩越M成為關(guān)系R2的外部鍵。第9頁,共92頁,2023年,2月20日,星期日數(shù)據(jù)庫應(yīng)用實例及比較學(xué)生信息管理系統(tǒng)實例該系統(tǒng)用來管理學(xué)生的基本情況,開設(shè)課程情況,學(xué)生的選課情況及成績;數(shù)據(jù)庫:以表格的形式儲存了學(xué)生,課程,選課的記錄;數(shù)據(jù)管理系統(tǒng)(DBMS)負(fù)責(zé)存儲和檢索這些表格的數(shù)據(jù);建立相關(guān)的應(yīng)用程序,負(fù)責(zé)處理數(shù)據(jù)輸入,數(shù)據(jù)查詢和產(chǎn)生報表第10頁,共92頁,2023年,2月20日,星期日學(xué)生課程成績管理學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,學(xué)分)C(C#,CNAME,GRADE)選課(課程號,學(xué)號,成績)SC(C#,S#,SCORE)舉例說明超鍵、候選鍵、主鍵、外鍵Student(number,name,age,sex)Class(number,name,grade)Sc(classnum,studentnum,score)建議:同學(xué)們記下這三個關(guān)系模式。好好理解第11頁,共92頁,2023年,2月20日,星期日練習(xí):1、現(xiàn)有關(guān)系表:學(xué)生(宿舍編號,宿舍地址,學(xué)號,姓名,性別,專業(yè))的主鍵為:A宿舍編號B學(xué)號C宿舍地址,姓名D宿舍編號,學(xué)號2、現(xiàn)有關(guān)系表:醫(yī)療(患者編號,醫(yī)生編號,醫(yī)生姓名,診斷日期,診斷結(jié)果,恢復(fù)情況)的主鍵是:A患者編號,醫(yī)生編號,診斷日期B醫(yī)生編號C診斷日期D患者編號第12頁,共92頁,2023年,2月20日,星期日練習(xí):1、現(xiàn)有如下關(guān)系:部門(部門編號、部門名稱、部門地址、電話)職工(職工號、姓名、性別、職務(wù)、部門編號、電話)其中,職工關(guān)系中的外鍵是()A部門編號B姓名C職工號D職工號,姓名答案:1、A2、CDEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)第13頁,共92頁,2023年,2月20日,星期日2.1.2關(guān)系的定義和性質(zhì)
定義2.2關(guān)系是一個屬性數(shù)目相同的元組的集合。
在關(guān)系模型中,對關(guān)系作了下列規(guī)范性限制:(1)關(guān)系中每一個屬性值都是不可分解的;(2)關(guān)系中不允許出現(xiàn)重復(fù)元組(即不允許出現(xiàn)相同的元組);(3)由于關(guān)系是一個集合,因此不考慮元組間的順序,即沒有行序;(4)元組中的屬性在理論上也是無序的,但使用時按習(xí)慣考慮列的順序。返回第14頁,共92頁,2023年,2月20日,星期日2.1.3關(guān)系模型的三類完整性規(guī)則(1)
關(guān)系模型的三類完整性
三類完整性是實體完整性、參照完整性和用戶定義的完整性(其中前兩類完整性是關(guān)系模型必須滿足的約束條件)
實體完整性規(guī)則(entityintegrityrule)要求關(guān)系中元組在組成主鍵的屬性上不能有空值。如果出現(xiàn)空值,那么主鍵值就起不了惟一標(biāo)織元組的作用。意義:關(guān)系對應(yīng)到現(xiàn)實世界中的實體集,元組對應(yīng)到實體,實體是相互可區(qū)分的,通過主鍵來唯一標(biāo)識,若主鍵為空,則出現(xiàn)不可標(biāo)識的實體,這是不容許的。第15頁,共92頁,2023年,2月20日,星期日關(guān)系模型的三類完整性規(guī)則
(2)參照完整性規(guī)則(referenceintegrityrule)定義2.3參照完整性規(guī)則的形式定義如下:如果屬性集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么在R2的關(guān)系中,K的取值只允許兩種可能,或者為空值,或者等于R1關(guān)系中某個主鍵值。這條規(guī)則的實質(zhì)是“不允許引用不存在的實體”。在上述形式定義中,關(guān)系模式R1的關(guān)系稱為“參照關(guān)系”,關(guān)系模式R2的關(guān)系稱為“依賴關(guān)系”?!爸鞅怼焙汀案北怼保案副怼焙汀白颖怼?。
第16頁,共92頁,2023年,2月20日,星期日關(guān)系模型的三類完整性規(guī)則
(3)例2.1下面各種情況說明了參照完整性規(guī)則在關(guān)系中如何實現(xiàn)的。①在關(guān)系數(shù)據(jù)庫中有下列兩個關(guān)系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)這里帶下劃線者為主鍵,紅色者為外鍵。據(jù)規(guī)則要求關(guān)系SC中的S#值應(yīng)該在關(guān)系S中出現(xiàn)。如果關(guān)系SC中有一個元組(S7,C4,80),而學(xué)號S7卻在關(guān)系S中找不到,那么我們就認(rèn)為在關(guān)系SC中引用了一個不存在的學(xué)生實體,這就違反了參照完整性規(guī)則。另外,在關(guān)系SC中S#不僅是外鍵,也是主鍵的一部分,因此這里S#值不允許空。第17頁,共92頁,2023年,2月20日,星期日關(guān)系模型的三類完整性規(guī)則
(4)②設(shè)工廠數(shù)據(jù)庫中有兩個關(guān)系模式:
DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D#)
車間模式DEPT的屬性為車間編號、車間名,職工模式EMP的屬性為工號、姓名、工資、所在車間的編號。每個模式的主鍵與外鍵已標(biāo)出。在EMP中,由于D#不在主鍵中,因此D#值允許空。級聯(lián)更新/級聯(lián)刪除示例產(chǎn)品訂單.mdb/客戶-訂單第18頁,共92頁,2023年,2月20日,星期日關(guān)系模型的三類完整性規(guī)則
(5)③設(shè)課程之間有先修、后繼聯(lián)系。模式如下:
R(C#
,CNAME,PC#)
其屬性表示課程號、課程名、先修課的課程號。如果規(guī)定,每門課程的直接先修課只有一門,那么模式R的主鍵是C#,外鍵是PC#。這里參照完整性在一個模式中實現(xiàn)。即每門課程的直接先修課必須在關(guān)系中出現(xiàn)。
注意事項:外鍵和相應(yīng)的主鍵可以不同名,只要定義在相同值域上即可。R1和R2也可以是同一個關(guān)系模式,表示了屬性之間的聯(lián)系。外鍵值是否允許空,應(yīng)視具體問題而定。第19頁,共92頁,2023年,2月20日,星期日關(guān)系模型的三類完整性規(guī)則
(6)用戶定義的完整性規(guī)則
在建立關(guān)系模式時,對屬性定義了數(shù)據(jù)類型,即使這樣可能還滿足不了用戶的需求。此時,用戶可以針對具體的數(shù)據(jù)約束,設(shè)置完整性規(guī)則,由系統(tǒng)來檢驗實施,以使用統(tǒng)一的方法處理它們,不再由應(yīng)用程序承擔(dān)這項工作。例如學(xué)生的年齡定義為兩位整數(shù),范圍還太大,我們可以寫如下規(guī)則把年齡限制在15~30歲之間:
CHECK(AGEBETWEEN15AND30)用戶針對具體的應(yīng)用環(huán)境定義的完整性約束條件。如S#要求是8位整數(shù),SEX要求取值為“男”或“女”。關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們而不要由應(yīng)用程序來承擔(dān)這一功能。
第20頁,共92頁,2023年,2月20日,星期日2.1.5關(guān)系模型的優(yōu)點與其它數(shù)據(jù)模型相比,關(guān)系模型突出的優(yōu)點如下:(1)關(guān)系模型提供單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡明性和精確性。(2)關(guān)系模型的邏輯結(jié)構(gòu)和相應(yīng)的操作完全獨立于數(shù)據(jù)存儲方式,具有高度的數(shù)據(jù)獨立性。(3)關(guān)系模型使數(shù)據(jù)庫的研究建立在比較堅實的數(shù)學(xué)基礎(chǔ)上。(4)關(guān)系數(shù)據(jù)庫語言與一階謂詞邏輯的固有內(nèi)在聯(lián)系,為以關(guān)系數(shù)據(jù)庫為基礎(chǔ)的推理系統(tǒng)和知識庫系統(tǒng)的研究提供了方便。
返回第21頁,共92頁,2023年,2月20日,星期日2.1.6關(guān)系查詢語言和關(guān)系運算
關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操縱語言(DML)的語句分成查詢語句和更新語句兩大類。查詢語句用于描述用戶的各種檢索要求;更新語句用于描述用戶進(jìn)行插入、刪除、修改等操作。關(guān)于查詢的理論稱為“關(guān)系運算理論”。關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成三類:(1)關(guān)系代數(shù)語言。(2)關(guān)系演算語言。(3)關(guān)系邏輯語言。
返回第22頁,共92頁,2023年,2月20日,星期日2.2關(guān)系代數(shù)
關(guān)系代數(shù)是一種抽象的查詢語言,用對關(guān)系的運算來表達(dá)查詢,作為研究關(guān)系數(shù)據(jù)語言的數(shù)學(xué)工具。關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操作分為查詢和更新兩類。查詢用于各種檢索操作,更新語句用于插入、刪除和修改等操作。更新在查詢的基礎(chǔ)上工作,查詢更復(fù)雜。關(guān)于查詢的理論稱為“關(guān)系運算理論”。返回第23頁,共92頁,2023年,2月20日,星期日2.2關(guān)系代數(shù)2.2.1關(guān)系代數(shù)的五個基本操作
2.2.2關(guān)系代數(shù)的四個組合操作
2.2.3關(guān)系代數(shù)運算的應(yīng)用實例
2.2.4關(guān)系代數(shù)的七個擴充操作
第24頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的五個基本操作
(1)并(Union)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為R∪S。形式定義如下:R∪S≡{t|t∈R∨t∈S},t是元組變量,R和S的元數(shù)相同。RS兩個關(guān)系R和S若進(jìn)行并運算,則它們必須是相容的:關(guān)系R和S必須是同元的,即它們的屬性數(shù)目必須相同。對i,R的第i個屬性的域必須和S的第i個屬性的域相同。第25頁,共92頁,2023年,2月20日,星期日集合運算——并Union(∪)第26頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的五個基本操作
(1)差(Difference)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為R-S。形式定義如下:RSR和S必須同類型(屬性集相同,但屬性名可以不同)R-S={t|t∈R∧t∈S}第27頁,共92頁,2023年,2月20日,星期日集合運算——差Minus(-)第28頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的五個基本操作
(1)笛卡爾積關(guān)系R和S的元數(shù)分別為r和s,定義R和S的笛卡爾積是一個(r+s)元的元組集合,每個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組,記為RχS。
RχS≡{t|t=〈
tr,ts〉∧tr∈R∧ts∈S}
若R有m個元組,S有n個元組,則RχS有m*n個元組。RS的元數(shù)為R與S的元數(shù)之和(r+s),RS的基數(shù)為R和S的基數(shù)的乘積m*n。第29頁,共92頁,2023年,2月20日,星期日笛卡兒積(×)關(guān)系r,s:rx
s:AB12CD10102010EaabbAB11112222CD1019201010102010Eaabbaabbrs第30頁,共92頁,2023年,2月20日,星期日笛卡兒積(×)R.AR.BR.CS.AS.BS.C第31頁,共92頁,2023年,2月20日,星期日笛卡兒積(×)引伸性別男女姓名王強李明李梅×姓名性別王強男李明男李梅男王強女李明女李梅女=說明:笛卡爾積的元組數(shù)量雖然龐大,但很多數(shù)據(jù)是沒有意義的,正是有意義的數(shù)據(jù)(自然連接)組成關(guān)系,即笛卡爾積的一個子集。第32頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的五個基本操作
(2)投影(Projection)這個操作是對一個關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序。設(shè)關(guān)系R是k元關(guān)系,R在其分量Ai1,…,Aim(m≤k,i1,…,im為1到k間的整數(shù))上的投影用∏i1,…,im(R)表示,它是一個m元元組集合,形式定義如下:∏i1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}
例如,∏3,1(R)表示關(guān)系R中取第1、3列,組成新的關(guān)系,新關(guān)系中第1列為R的第3列,新關(guān)系的第2列為R的第1列。如果R的每列標(biāo)上屬性名,那么操作符∏的下標(biāo)處也可以用屬性名表示。例如,關(guān)系R(A,B,C),那么∏C,A(R)與∏3,1(R)是等價的。第33頁,共92頁,2023年,2月20日,星期日關(guān)系運算——投影(π)例:πssex,sage(student)第34頁,共92頁,2023年,2月20日,星期日關(guān)系運算——投影()關(guān)系R:ABC102030401112AC1112=AC112A,C(R)投影運算的結(jié)果中,也要去除重復(fù)元組第35頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的五個基本操作
(3)選擇(Selection)選擇操作是根據(jù)某些條件對關(guān)系做水平分割,即選取符合條件的元組。條件可用命題公式(即計算機語言中的條件表達(dá)式)F表示。F中有兩種成分:關(guān)系R關(guān)于公式F的選擇操作用σF(R)表示,形式定義如下:σF(R)={t|t∈R∧F(t)=true}σ為選擇運算符,σF(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。例如,σ2>ˊ3ˊ(R)表示從R中挑選第2個分量值大于3的元組所構(gòu)成的關(guān)系。書寫時,為了與屬性序號區(qū)別起見,常量用引號括起來,而屬性序號或?qū)傩悦灰靡柪ㄆ饋怼5?6頁,共92頁,2023年,2月20日,星期日關(guān)系運算——選擇(σ)例:σssex=‘男’ANDsdep=‘IS’(Student)
第37頁,共92頁,2023年,2月20日,星期日練習(xí):1、R和S的結(jié)構(gòu)相同,且各有20個元組,那么兩個關(guān)系的并操作結(jié)果的元組個數(shù)為()A.20B.小于等于20C.40D.小于等于40
2、R和S的結(jié)構(gòu)相同,且各有20個元組,那么兩個關(guān)系的差操作結(jié)果的元組個數(shù)為()A.20B.小于等于20C.40D.小于等于40答案:1、D2、B第38頁,共92頁,2023年,2月20日,星期日與V或NOT非量詞:存在,任一個運算結(jié)果TTTFFFTVTTVFFVF第39頁,共92頁,2023年,2月20日,星期日2.2.2關(guān)系代數(shù)的四個組合操作
(1)交(intersection)定義所有同時出現(xiàn)在兩個關(guān)系中的元組集合。交運算可以通過差運算來重寫:RS=R(RS)R和S必須同類型(屬性集相同、次序相同,但屬性名可以不同)RS={r|rRrS}RS第40頁,共92頁,2023年,2月20日,星期日關(guān)系運算——交Intersect(∩)第41頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的四個組合操作
(2)連接(join)連接有兩種:θ連接和F連接(這里θ是算術(shù)比較符,F(xiàn)是公式)。從R×S的結(jié)果集中,選取屬性集滿足某一θ操作的元組,組成新的關(guān)系θ是一個關(guān)于屬性集的邏輯表達(dá)式如果θ是等號“=”,則該聯(lián)接操作叫“等值聯(lián)接”。R
S={t|t=<tr,ts>trRtsStiθ
tj}rsiθj元組tr的第i個分量元組ts的第i個分量第42頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的四個組合操作
(2)連接(join)①θ連接
RS≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧tr
iθts
j}②F連接
F連接是從關(guān)系R和S的笛卡兒積中選取屬性間滿足某一公式F的元組,這里F是形為F1∧F2∧…∧Fn的公式,每個FP是形為iθj的式子,而i和j分別為關(guān)系R和S的第i、第j個分量的序號。記為
RSF第43頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的四個組合操作(2)987654321CBADE3162ABCDE123311236245662
RSB<D
R
S第44頁,共92頁,2023年,2月20日,星期日關(guān)系運算——等值連接(θ)RSR.B=S.B第45頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的四個組合操作
(3)自然連接(naturaljoin)兩個關(guān)系R和S的自然連接操作具體計算過程如下:計算R×S;--計算笛卡爾積設(shè)R和S的公共屬性是A1,A2…Ak,挑選R×S中滿足R.A1=S.A1,…R.AK=S.AK的那些元組;--選擇公共屬性值相等的元組。去掉S.A1,…S.AK這些列。--做投影操作。RS=i1…im(R.A1=S.A1…R.AK=S.AK(RxS))第46頁,共92頁,2023年,2月20日,星期日987654321CBACD3162
R
SABCD12314562
RS關(guān)系運算——自然連接()ABS.CS.CD1233145662
RSR.C=S.C第47頁,共92頁,2023年,2月20日,星期日關(guān)系運算——自然連接()說明:在自然連接構(gòu)成的結(jié)果關(guān)系中,相同的屬性名不必重復(fù)。一般自然連接使用在R和S有公共屬性的情況。當(dāng)R與S無相同屬性時,RS=R×S。自然連接是組裝關(guān)系的有效方法。第48頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)的四個組合操作
(4)除法(division)設(shè)關(guān)系R和S的元數(shù)分別為r和s(設(shè)r>s>0),那么R÷S是一個(r-s)元的元組的集合。(R÷S)是滿足下列條件的最大關(guān)系:其中每個元組t與S中每個元組u組成的新元組<t,u>必在關(guān)系R中。R÷S≡∏1,2,…,r-s(R)-∏1,2,…,r-s((∏1,2,…,r-s(R)×S)-R)
返回第49頁,共92頁,2023年,2月20日,星期日第50頁,共92頁,2023年,2月20日,星期日2.2.3關(guān)系代數(shù)運算的應(yīng)用實例
在關(guān)系代數(shù)運算中,把由五個基本操作經(jīng)過有限次復(fù)合的式子稱為關(guān)系代數(shù)表達(dá)式。這種表達(dá)式的運算結(jié)果仍是一個關(guān)系。我們可以用關(guān)系代數(shù)表達(dá)式表示各種數(shù)據(jù)查詢操作。例2.7學(xué)生選課系統(tǒng)有三個關(guān)系:學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第51頁,共92頁,2023年,2月20日,星期日3.2.3關(guān)系代數(shù)表達(dá)式及其應(yīng)用實例在關(guān)系代數(shù)運算中,把五個基本操作經(jīng)過有限次復(fù)合的式子稱為關(guān)系代數(shù)表達(dá)式。這個表達(dá)式的運算結(jié)果依然是一個關(guān)系??梢杂藐P(guān)系代數(shù)表達(dá)式表示各種數(shù)據(jù)查詢操作。查詢語句的關(guān)系代數(shù)表達(dá)式的一般形式為:Π…(σ…
(R×S))Π…(σ…
(RS))第52頁,共92頁,2023年,2月20日,星期日3.2.3關(guān)系代數(shù)表達(dá)式及其應(yīng)用實例用關(guān)系代數(shù)表達(dá)式寫查詢語句的方法:確定查詢所涉及哪些關(guān)系表。執(zhí)行笛卡爾積或自然聯(lián)接操作得到一張大的表格。根據(jù)查詢對大表格執(zhí)行水平分割(選擇操作)或垂直分割(投影操作)。當(dāng)查詢涉及“否定”時,要用差操作;當(dāng)查詢涉及“全部值”時,要用除法操作。第53頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例Student(Sno,Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Credit)SC(Sno,Cno,Grade)第54頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例1檢索選修了2號課程的課程號、學(xué)號和成績。σcno=‘2’(SC)學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第55頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例2檢索選修2號課程的學(xué)生的學(xué)號和成績ΠSno,Grade(σcno=‘2’(SC))學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第56頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例3檢索學(xué)習(xí)課程號為2的學(xué)生的學(xué)號和姓名。學(xué)號Sno、姓名Sname←Student表學(xué)號Sno、課程號Cno←SC表Student←SCsno用到Student和SC兩個表,先對兩個關(guān)系執(zhí)行自然聯(lián)接,再執(zhí)行選擇和投影操作。學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第57頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例3學(xué)號姓名性別年齡所在系課程號成績95001李勇男20CS19295001李勇男20CS28595001李勇男20CS38895002劉晨女19IS29095001劉晨女19IS380ΠSno,Sname(σcno=‘2’(SCStudent))第58頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)—例4檢索學(xué)習(xí)課程名為‘?dāng)?shù)學(xué)’的學(xué)生的學(xué)號和姓名。學(xué)號Sno、姓名Sname←Student表課程名稱Cname、課程號Cno←Course表學(xué)號Sno、課程號Cno←SC表Student←SC→Coursesnocno學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第59頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例4ΠSno,Sname(σCname=‘?dāng)?shù)學(xué)’(CourseSCStudent))用到Student、SC、Course三個表,先對三個關(guān)系執(zhí)行自然聯(lián)接,再執(zhí)行選擇和投影操作。第60頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例4檢索學(xué)習(xí)課程號為2或3的學(xué)生的學(xué)號。學(xué)號Sno、課程號Cno←SC表用到SC一個表,但做選擇操作時是復(fù)合條件檢索學(xué)習(xí)課程號為2或3的學(xué)生的學(xué)號。學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第61頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例5學(xué)號Sno、課程號Cno←SC表用到SC一個表,但做選擇操作時是復(fù)合條件.一個學(xué)生可以學(xué)習(xí)多門課程,即一個學(xué)號可以對應(yīng)多個課程號。檢索至少學(xué)習(xí)課程號為2和3的學(xué)生的學(xué)號。學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第62頁,共92頁,2023年,2月20日,星期日學(xué)號課程號成績學(xué)號課程號成績950012859500128595001285950013889500128595002290950022909500128595002290950022909500229095002380關(guān)系代數(shù)——實例5Π1(σ1=4∧2=’2’∧5=‘3’(SC×SC))第63頁,共92頁,2023年,2月20日,星期日思考:以下表示方法是否可以?Π1(σ2=’2’(SC))
∧
Π1(2=‘3’(SC))學(xué)號課程號成績9500128595001388950022909500239895003386檢索至少學(xué)習(xí)課程號為2和3的學(xué)生的學(xué)號。學(xué)號課程號成績9500128595001388950022909500239895003386可以得到正確結(jié)果,但是查詢進(jìn)行了兩次!第64頁,共92頁,2023年,2月20日,星期日思考:以下表示方法是否可以?ΠSno(σCNO=’2’(SC))
ΠSno(CNO=‘3’(SC))檢索學(xué)習(xí)課程號為2或3的學(xué)生的學(xué)號。ΠSno(σCno=’2’Cno=’3’(SC))第65頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例6檢索不學(xué)習(xí)課程號為2的學(xué)生的姓名和年齡。學(xué)號Sno、姓名Sname、年齡Sage←Student表學(xué)號Sno、課程號Cno←SC表Student←SCsno涉及否定用“差”操作,先求出全體學(xué)生的姓名和年齡,再求出學(xué)習(xí)了2號課程的學(xué)生姓名和年齡,最后執(zhí)行兩個集合的差操作。學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第66頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例6Πsname,Sage(σCno=‘2’(SCStudent))ΠSname,Sage(S)求出全體學(xué)生的姓名和年齡。求出學(xué)習(xí)了2號課程的學(xué)生姓名和年齡。執(zhí)行兩個集合的差操作。ΠSname,Sage(S)Πsname,Sage(σCno=‘2’(SCStudent))-第67頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例7檢索學(xué)習(xí)全部課程的學(xué)生姓名。涉及“全部值”用除法操作,先求全部課程,再用除法求出學(xué)習(xí)了全部課程的學(xué)生的學(xué)號,最后求出學(xué)生姓名。學(xué)號Sno、姓名Sname←Student表課程號Cno←Course表學(xué)號Sno、課程號Cno←SC表Student←SC→Coursesnocno學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第68頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例7學(xué)生的選課情況可用ΠSno,Cno(SC)表示全部課程可用ΠCno(C)表示學(xué)了全部課程的學(xué)號可以用除法得到(學(xué)號集)ΠSno,Cno(SC)ΠCno(C)從學(xué)號求出學(xué)生的姓名:Πsname(S(ΠSno,Cno(SC)ΠCno(C)))第69頁,共92頁,2023年,2月20日,星期日檢索所學(xué)課程包含學(xué)號S3所學(xué)課程的學(xué)生學(xué)號。涉及“全部值”用除法操作,先求學(xué)生的選課情況,再求S3學(xué)生所學(xué)的課程,最后用除法求出學(xué)習(xí)了所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號。學(xué)號Sno、課程號Cno←SC表關(guān)系代數(shù)—實例8學(xué)生(學(xué)號,姓名,年齡,性別)S(S#,SNAME,SEX,AGE)課程(課程號,課程名,教師)C(C#,CNAME,TEACHER)選課(課程號,學(xué)號,成績)SC(C#,S#,GRADE)第70頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)——實例8學(xué)生的選課情況可用ΠSno,Cno(SC)表示學(xué)生S3所學(xué)課程可用ΠCno(σS#=‘S3’(SC))表示所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號,可以用除法得到ΠSno,Cno(SC)ΠCno(σS#=‘S3’(SC))第71頁,共92頁,2023年,2月20日,星期日863S5983S2902S2883S1852S1成績課程號學(xué)號所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號,可以用除法得到ΠSno,Cno(SC)ΠCno(σS#=‘S3’(SC))2S33S3課程號學(xué)號第72頁,共92頁,2023年,2月20日,星期日練習(xí)(課堂消化)用關(guān)系代數(shù)表達(dá)式實現(xiàn):1.查找所有女科長的姓名和家庭地址:П姓名,家庭地址(σ性別=‘女’∧職務(wù)=‘科長’(職工))現(xiàn)有關(guān)系數(shù)據(jù)庫如下:職工(職工號,姓名,性別,職務(wù),家庭地址,所在部門編號)部門(部門編號,部門名稱,地址,電話)保健(保健卡編號,職工號,檢查身體日期,健康狀況)第73頁,共92頁,2023年,2月20日,星期日練習(xí):2.查找部門名稱為“辦公室”的科長姓名和家庭地址:П姓名,家庭住址(σ職務(wù)=‘科長’∧部門名稱=‘辦公室’(職工∞部門))П姓名,家庭住址(σ職務(wù)=‘科長’(職工)∞σ部門名稱=‘辦公室’(部門))現(xiàn)有關(guān)系數(shù)據(jù)庫如下:職工(職工號,姓名,性別,職務(wù),家庭地址,所在部門編號)部門(部門編號,部門名稱,地址,電話)保健(保健卡編號,職工號,檢查身體日期,健康狀況)第74頁,共92頁,2023年,2月20日,星期日練習(xí):3.查找部門名稱為“財務(wù)科”中健康狀況為“良好”的職工姓名和家庭住址。П姓名,家庭住址(σ部門名稱=‘財務(wù)科’∧健康狀況=‘良好’(職工∞部門∞保健))П姓名,家庭住址(職工∞σ部門名稱=‘財務(wù)科’(部門)∞σ健康狀況=‘良好’(保健)
)現(xiàn)有關(guān)系數(shù)據(jù)庫如下:職工(職工號,姓名,性別,職務(wù),家庭地址,所在部門編號)部門(部門編號,部門名稱,地址,電話)保健(保健卡編號,職工號,檢查身體日期,健康狀況)第75頁,共92頁,2023年,2月20日,星期日練習(xí):用關(guān)系代數(shù)表達(dá)式實現(xiàn):1.檢索學(xué)習(xí)“數(shù)據(jù)庫原理”課程且成績不及格的學(xué)生的學(xué)號和教師編號。П學(xué)號,教師編號(σ課程名稱=‘?dāng)?shù)據(jù)庫原理’∧成績<60(授課))現(xiàn)有關(guān)系數(shù)據(jù)庫如下:學(xué)生(學(xué)號,姓名,性別,專業(yè),出生日期)教師(教師編號,姓名,所在部門,職稱)授課(教師編號,學(xué)號,課程編號,課程名稱,教材,學(xué)分,學(xué)生成績)第76頁,共92頁,2023年,2月20日,星期日練習(xí):2.檢索學(xué)習(xí)“英語”課程的“計算機應(yīng)用”專業(yè)的學(xué)生學(xué)號、姓名、成績。П學(xué)號,姓名,成績(σ專業(yè)=‘計算機應(yīng)用’∧課程名稱=‘英語’(學(xué)生∞授課))現(xiàn)有關(guān)系數(shù)據(jù)庫如下:學(xué)生(學(xué)號,姓名,性別,專業(yè),出生日期)教師(教師編號,姓名,所在部門,職稱)授課(教師編號,學(xué)號,課程編號,課程名稱,教材,學(xué)分,學(xué)生成績)第77頁,共92頁,2023年,2月20日,星期日練習(xí):3.檢索沒有任何一門課程成績不及格的所有學(xué)生的信息,包括學(xué)號、姓名和專業(yè);П學(xué)號,姓名,專業(yè)(學(xué)生)-П學(xué)號,姓名,專業(yè)(σ分?jǐn)?shù)<‘60’(學(xué)生∞授課))現(xiàn)有關(guān)系數(shù)據(jù)庫如下:學(xué)生(學(xué)號,姓名,性別,專業(yè),出生日期)教師(教師編號,姓名,所在部門,職稱)授課(教師編號,學(xué)號,課程編號,課程名稱,教材,學(xué)分,學(xué)生成績)第78頁,共92頁,2023年,2月20日,星期日2.2.4關(guān)系代數(shù)的七個擴充操作(自學(xué))
改名廣義投影賦值外連接(outerjoin)左外連接、右外連接外部并(outerunion)半連接(semijoin)聚集操作
返回第79頁,共92頁,2023年,2月20日,星期日*2.3關(guān)系演算
把數(shù)理邏輯的謂詞演算引入到關(guān)系運算中,就可得到以關(guān)系演算為基礎(chǔ)的運算。關(guān)系演算又可分為元組關(guān)系演算和域關(guān)系演算,前者以元組為變量,后者以屬性(域)為變量。2.3.1元組關(guān)系演算
2.3.2域關(guān)系演算
2.3.3關(guān)系運算的安全約束和等價性返回第80頁,共92頁,2023年,2月20日,星期日2.4關(guān)系代數(shù)表達(dá)式的優(yōu)化
2.4.1關(guān)系代數(shù)表達(dá)式的優(yōu)化問題
2.4.2關(guān)系代數(shù)表達(dá)式的等價變換規(guī)則
2.4.3關(guān)系代數(shù)表達(dá)式的優(yōu)化算法
返回第81頁,共92頁,2023年,2月20日,星期日查詢優(yōu)化關(guān)系代數(shù)表達(dá)式的優(yōu)化(1)在關(guān)系代數(shù)表達(dá)式中需要指出若干關(guān)系的操作步驟。那么,系統(tǒng)應(yīng)該以什么樣的操作順序,才能做到既省時間,又省空間,而且效率也比較高呢?這個問題稱為查詢優(yōu)化問題。在關(guān)系代數(shù)運算中,笛卡兒積和連接運算是最費時間的。(關(guān)系模型不像層次模型和網(wǎng)狀模型的數(shù)據(jù)聯(lián)系是通過指針,是通過公共屬性即外鍵)第82頁,共92頁,2023年,2月20日,星期日關(guān)系代數(shù)表達(dá)式的優(yōu)化算法
(1)在關(guān)系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東食品藥品職業(yè)學(xué)院《隧道施工技術(shù)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東石油化工學(xué)院《nux運維實踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東培正學(xué)院《大數(shù)據(jù)行業(yè)規(guī)范指導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東農(nóng)工商職業(yè)技術(shù)學(xué)院《時尚媒體與公關(guān)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東南方職業(yè)學(xué)院《環(huán)境工程技術(shù)經(jīng)濟》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《照明設(shè)計基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級下冊英語人教版單詞表
- 【走向高考2022】人教版高三地理一輪復(fù)習(xí)-區(qū)域地理-第2章-第2講課時作業(yè)
- 【名師一號】2020-2021學(xué)年高中英語北師大版必修4-雙基限時練7
- 【與名師對話】2022高考地理課標(biāo)版總復(fù)習(xí)質(zhì)量檢測3-
- JJG 913-2015浮標(biāo)式氧氣吸入器
- GB/T 28859-2012電子元器件用環(huán)氧粉末包封料
- GB/T 12190-2006電磁屏蔽室屏蔽效能的測量方法
- GB 18056-2000居住區(qū)大氣中甲硫醇衛(wèi)生標(biāo)準(zhǔn)
- 2020年貴州專升本高等數(shù)學(xué)真題及答案
- 數(shù)學(xué)思想與方法期末考試范圍答案全
- 調(diào)研報告:加強市屬國有企業(yè)內(nèi)部審計工作現(xiàn)狀、存在的問題及對策建議
- 教學(xué)事故(差錯)認(rèn)定處理表(模板)
- 特選2023江蘇小高考政治試題及答案
- 校領(lǐng)導(dǎo)批示件辦理情況反饋單
- 輸煤系統(tǒng)檢修維護年度安全生產(chǎn)工作總結(jié)
評論
0/150
提交評論