




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2006年4月12日1安財(cái)信工學(xué)院計(jì)算機(jī)系第二章 關(guān)系數(shù)據(jù)庫關(guān)系模型概述關(guān)系模型概述關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系的完整性關(guān)系的完整性關(guān)系代數(shù)關(guān)系代數(shù) 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日2關(guān)系模型概述關(guān)系模型概述 關(guān)系模型的組成關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系操作集合關(guān)系完整性約束關(guān)系完整性約束 一、單一的數(shù)據(jù)結(jié)構(gòu)一、單一的數(shù)據(jù)結(jié)構(gòu)-關(guān)系關(guān)系關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系表示關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都用關(guān)系表示關(guān)系就是一張二維表。關(guān)系就是一張二維表。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日3關(guān)系操作關(guān)系操作 關(guān)系模型中常用的關(guān)系操作包
2、括:關(guān)系模型中常用的關(guān)系操作包括:選擇、投影、連接、除、并、交、差等選擇、投影、連接、除、并、交、差等增加、刪除、修改增加、刪除、修改 關(guān)系操作的關(guān)系操作的特點(diǎn)特點(diǎn)集合操作方式集合操作方式 即操作的對象和結(jié)果都是集合。一次一集合方式。即操作的對象和結(jié)果都是集合。一次一集合方式。非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式 為一次一記錄的方式。為一次一記錄的方式。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日4關(guān)系數(shù)據(jù)語言分類關(guān)系數(shù)據(jù)語言分類 早期的關(guān)系操作能力早期的關(guān)系操作能力 用代數(shù)方式表示,稱為關(guān)系代數(shù)用代數(shù)方式表示,稱為關(guān)系代數(shù) 用邏輯方式表示,稱為關(guān)系演算用邏輯方式表示,稱為關(guān)系
3、演算 關(guān)系演算又可按謂詞變元的基本對象是元組變量還是域關(guān)系演算又可按謂詞變元的基本對象是元組變量還是域變量分為變量分為元組關(guān)系演算元組關(guān)系演算域關(guān)系演算。域關(guān)系演算。 這三種語言在表達(dá)能力上是完全等價(jià)的。這三種語言在表達(dá)能力上是完全等價(jià)的。 另外還有一種介于關(guān)系代數(shù)和關(guān)系演算之間的語言另外還有一種介于關(guān)系代數(shù)和關(guān)系演算之間的語言sql(structurel query language)。)。 sql不僅具有豐富的查詢功能,而且具有數(shù)據(jù)定義和數(shù)據(jù)不僅具有豐富的查詢功能,而且具有數(shù)據(jù)定義和數(shù)據(jù)控制功能,是集查詢、控制功能,是集查詢、ddl、dml和和dcl于一體的關(guān)系數(shù)于一體的關(guān)系數(shù)據(jù)語言。據(jù)語
4、言。 它充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點(diǎn)和優(yōu)點(diǎn),是關(guān)系數(shù)據(jù)庫的它充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點(diǎn)和優(yōu)點(diǎn),是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。標(biāo)準(zhǔn)語言。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日5關(guān)系數(shù)據(jù)語言分類:關(guān)系數(shù)據(jù)語言分類: 關(guān)系數(shù)據(jù)關(guān)系數(shù)據(jù)語言語言 關(guān)系代數(shù)語言關(guān)系代數(shù)語言 例如例如 isblisbl 關(guān)系演算語言關(guān)系演算語言 元組關(guān)系演算語言元組關(guān)系演算語言 例如例如aplha,quel 具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言例如具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言例如 sql域關(guān)系演算語言域關(guān)系演算語言 例如例如qbe 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日6三、關(guān)系的三類完整性約束三、關(guān)系的三類完整性
5、約束 關(guān)系模型允許定義三類完整性約束:關(guān)系模型允許定義三類完整性約束:實(shí)體完整性實(shí)體完整性 關(guān)系模型必須滿足的完整性約束條件,由關(guān)系系統(tǒng)關(guān)系模型必須滿足的完整性約束條件,由關(guān)系系統(tǒng)自動支持自動支持參照完整性參照完整性 關(guān)系模型必須滿足的完整性約束條件,由關(guān)系系統(tǒng)關(guān)系模型必須滿足的完整性約束條件,由關(guān)系系統(tǒng)自動支持自動支持用戶定義的完整性。用戶定義的完整性。 應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束。的語義約束。 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日7關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 域:域: 定義定義2.1 域是一組
6、具有相同數(shù)據(jù)類型的值的集合。域是一組具有相同數(shù)據(jù)類型的值的集合。 如整數(shù)的集合、字符串的集合、全體學(xué)生的集合。如整數(shù)的集合、字符串的集合、全體學(xué)生的集合。 笛卡兒積笛卡兒積 定義定義2.2:給定一組域:給定一組域d1,d2,dn,這些域中可以有相同的。,這些域中可以有相同的。d1,d2,dn的笛卡兒積為的笛卡兒積為d1d2dn = (d1 , d2 , , dn) | didi , i=1,n 其中每一個(gè)元素其中每一個(gè)元素(d1,d2, ,dn)叫做一個(gè)叫做一個(gè)n元組元組(n-tuple),),或簡或簡稱元組。稱元組。 元組中的每一個(gè)值元組中的每一個(gè)值di叫做一個(gè)分量叫做一個(gè)分量(compon
7、ent)。 若若di(i=1,2, ,n)為有限集,其基數(shù)為)為有限集,其基數(shù)為mi(i=1,2, ,n),則),則d1d2dn的基數(shù)的基數(shù)m為:為:mi的積,即的積,即 inim 1安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日8例子例子 笛卡爾積可表示為一個(gè)二維表笛卡爾積可表示為一個(gè)二維表。表中的。表中的每每行行對應(yīng)一個(gè)對應(yīng)一個(gè)元組元組,表中的,表中的每列每列對應(yīng)一個(gè)對應(yīng)一個(gè)域域。例如給出三個(gè)域:例如給出三個(gè)域:d1一一導(dǎo)師集合導(dǎo)師集合supervisor一張清玫,劉逸一張清玫,劉逸d2一專業(yè)集合一專業(yè)集合speciality一計(jì)算機(jī)專業(yè),信息專一計(jì)算機(jī)專業(yè),信息專業(yè)業(yè)d3一研究生集合一研究生集
8、合postgraduate一李勇,劉晨,一李勇,劉晨,王敏王敏則則d1d2d3的笛卡爾積為:的笛卡爾積為:d1d2d3(張清政,計(jì)算機(jī)專業(yè),李勇)(張清政,計(jì)算機(jī)專業(yè),李勇), (張清政,計(jì)算機(jī)專業(yè),劉晨),(張清政,計(jì)算機(jī)專業(yè),劉晨),(張清政,計(jì)算機(jī)專業(yè),王敏),(張清政,計(jì)算機(jī)專業(yè),王敏),(張清政,信息專業(yè),李勇),(張清政,信息專業(yè),李勇),(張清政,信息專業(yè),劉晨),(張清政,信息專業(yè),劉晨),(張清政,信息專業(yè),王敏),(張清政,信息專業(yè),王敏), ( 劉逸,計(jì)算機(jī)專業(yè),李勇),劉逸,計(jì)算機(jī)專業(yè),李勇), ( 劉逸,計(jì)算機(jī)專業(yè),劉晨),劉逸,計(jì)算機(jī)專業(yè),劉晨), ( 劉逸,計(jì)算機(jī)
9、專業(yè),王敏),劉逸,計(jì)算機(jī)專業(yè),王敏), ( 劉逸,信息專業(yè),李勇),劉逸,信息專業(yè),李勇), ( 劉逸,信息專業(yè),劉晨劉逸,信息專業(yè),劉晨), ( 劉逸,信息專業(yè),王敏)劉逸,信息專業(yè),王敏) 其中(張清玫,計(jì)算機(jī)專業(yè),李勇)其中(張清玫,計(jì)算機(jī)專業(yè),李勇)、(張清玫,計(jì)算機(jī)專業(yè),劉晨)張清玫,計(jì)算機(jī)專業(yè),劉晨)等都是等都是元組元組。張清玫、計(jì)算機(jī)專業(yè)、李勇、張清玫、計(jì)算機(jī)專業(yè)、李勇、劉晨等都是劉晨等都是分量分量。該笛卡爾積的基數(shù)為該笛卡爾積的基數(shù)為2x2x312,也就是說,也就是說, d1d2d3一共有一共有2x2x312個(gè)元組。這個(gè)元組。這12個(gè)元個(gè)元組可列成一張二維表(如表組可列成一張
10、二維表(如表2.1)。)。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日9關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系關(guān)系 定義定義2. 3:d1d2dn的子集叫做在域的子集叫做在域d1,d2,dn上上的關(guān)系,表示為:的關(guān)系,表示為:r(d1,d2,dn)說明:說明: d1d2dn表示的是域上所有可能的組合,在現(xiàn)實(shí)生活中很表示的是域上所有可能的組合,在現(xiàn)實(shí)生活中很多元組是無意義的數(shù)據(jù),而一個(gè)關(guān)系肯定包含在多元組是無意義的數(shù)據(jù),而一個(gè)關(guān)系肯定包含在d1d2dn之中,因此在數(shù)學(xué)上把關(guān)系定義為之中,因此在數(shù)學(xué)上把關(guān)系定義為d1d2dn的子集。的子集。 這里這里r表示關(guān)系的名字,表示關(guān)系的名字,n是
11、關(guān)系的目和度。是關(guān)系的目和度。 關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。表示。 當(dāng)當(dāng)n1時(shí),稱該關(guān)系為單元關(guān)系。時(shí),稱該關(guān)系為單元關(guān)系。 當(dāng)當(dāng)n2時(shí),稱該關(guān)系為二元關(guān)系。時(shí),稱該關(guān)系為二元關(guān)系。 關(guān)系是笛卡兒積的有限子集,關(guān)系是笛卡兒積的有限子集, 關(guān)系關(guān)系 二維表、表的每行二維表、表的每行元組、表的每列元組、表的每列域。域。 由于域可以相同,為了加以區(qū)分,必須對每列起一個(gè)名字,稱為由于域可以相同,為了加以區(qū)分,必須對每列起一個(gè)名字,稱為屬性。屬性。n目關(guān)系必有目關(guān)系必有n個(gè)屬性個(gè)屬性安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日10關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定
12、義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 候選碼候選碼 若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個(gè)元組,若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個(gè)元組,則稱該數(shù)據(jù)組為候選碼。則稱該數(shù)據(jù)組為候選碼。 主碼主碼 若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼。若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼。 主屬性主屬性 主碼的諸屬性稱為主屬性。主碼的諸屬性稱為主屬性。 非碼屬性非碼屬性 不包含在任何候選碼中的屬性稱為非碼屬性。不包含在任何候選碼中的屬性稱為非碼屬性。 全碼全碼 關(guān)系模式的所有數(shù)據(jù)組是這個(gè)關(guān)系模式的候選碼,稱關(guān)系模式的所有數(shù)據(jù)組是這個(gè)關(guān)系模式的候選碼,稱為。為。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日1
13、1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 關(guān)系可以有三種類型關(guān)系可以有三種類型基本關(guān)系基本關(guān)系 基本表是實(shí)際存在的表,它是實(shí)際存儲數(shù)據(jù)的邏輯基本表是實(shí)際存在的表,它是實(shí)際存儲數(shù)據(jù)的邏輯表示。表示。查詢表查詢表 查詢表是查詢結(jié)果對應(yīng)的表。查詢表是查詢結(jié)果對應(yīng)的表。視圖表視圖表。 視圖表是由基本表或其他視圖表導(dǎo)出的表,是虛表,視圖表是由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實(shí)際存儲的數(shù)據(jù)。不對應(yīng)實(shí)際存儲的數(shù)據(jù)。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日12關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 對關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)對關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)“關(guān)系關(guān)系”的限定和擴(kuò)的限定和擴(kuò)充
14、:充: 無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中時(shí)無意義的。因此,限定無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中時(shí)無意義的。因此,限定關(guān)系數(shù)據(jù)模型中的關(guān)系必須是有限集合。關(guān)系數(shù)據(jù)模型中的關(guān)系必須是有限集合。 通過為關(guān)系的每個(gè)列附加一個(gè)屬性名的方法取消關(guān)通過為關(guān)系的每個(gè)列附加一個(gè)屬性名的方法取消關(guān)系元組的有序性。系元組的有序性。 例如,例如,可以在表可以在表2 2l l的笛卡爾的笛卡爾積積中取出一中取出一個(gè)個(gè)子集子集來構(gòu)來構(gòu)造一造一個(gè)關(guān)個(gè)關(guān)系。系。 由于由于研研究生只究生只師從師從于一于一個(gè)導(dǎo)師個(gè)導(dǎo)師,學(xué)習(xí)學(xué)習(xí)某一某一個(gè)專業(yè)個(gè)專業(yè),所以笛卡爾,所以笛卡爾積積中的中的許許多元多元組組是無是無實(shí)際實(shí)際意意義義的,的,從從中取出有中取出有
15、實(shí)際實(shí)際意意義義的元的元組組來構(gòu)來構(gòu)造造關(guān)關(guān)系。系。該關(guān)該關(guān)系的名字系的名字為為sapsap, 屬屬性名就取域名,即性名就取域名,即 supervisorsupervisor,specialityspeciality和和 postgraduatepostgraduate。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日13關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 則這個(gè)關(guān)系可以表示為:則這個(gè)關(guān)系可以表示為: sap(supervisor,speciality,postgraduate) 假設(shè)假設(shè) 導(dǎo)師與專業(yè)是一對一的,即一個(gè)導(dǎo)師只有一個(gè)專業(yè);導(dǎo)師與專業(yè)是一對一的,即一個(gè)導(dǎo)師只有一個(gè)專業(yè); 導(dǎo)師
16、與研究生是一對多的,即一個(gè)導(dǎo)師可以帶多名研導(dǎo)師與研究生是一對多的,即一個(gè)導(dǎo)師可以帶多名研究生,究生, 而一名研究生只有一個(gè)導(dǎo)師。而一名研究生只有一個(gè)導(dǎo)師。 這樣這樣sap關(guān)系可以包含三個(gè)元組,關(guān)系可以包含三個(gè)元組, 參看參看page49表表2.2 sap關(guān)系關(guān)系安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日14基本關(guān)系具有以下六條性質(zhì):基本關(guān)系具有以下六條性質(zhì): 1. 列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。來自同一個(gè)域。 2. 不同的列可以出自同一個(gè)域,稱其中的每一列為一個(gè)不同的列可以出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬
17、性要給予不同的屬性名。屬性,不同的屬性要給予不同的屬性名。 3. 列的順序無所謂,即列的次序可以任意交換。列的順序無所謂,即列的次序可以任意交換。 4. 任意兩個(gè)元組不能完全相同。任意兩個(gè)元組不能完全相同。 5. 行的順序無所謂,即行的次序可以任意交換。行的順序無所謂,即行的次序可以任意交換。 6. 分量必須取原子值,即每一個(gè)分量都必須是不可分的分量必須取原子值,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。數(shù)據(jù)項(xiàng)。 注意:注意: 在許多實(shí)際關(guān)系數(shù)據(jù)庫產(chǎn)品中,基本表并不完全具有這六條性質(zhì),在許多實(shí)際關(guān)系數(shù)據(jù)庫產(chǎn)品中,基本表并不完全具有這六條性質(zhì), 例如,例如, 有的數(shù)據(jù)庫產(chǎn)品能(如有的數(shù)據(jù)庫產(chǎn)品能(如f
18、oxpro)仍然區(qū)分了屬性順序和元組的順序;)仍然區(qū)分了屬性順序和元組的順序;許多關(guān)系數(shù)據(jù)庫產(chǎn)品中,例如許多關(guān)系數(shù)據(jù)庫產(chǎn)品中,例如oracle,foxpro等,它們都允許關(guān)等,它們都允許關(guān)系表中存在兩個(gè)完全相同的元組。系表中存在兩個(gè)完全相同的元組。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日15關(guān)系模式關(guān)系模式 定義定義2.4關(guān)系的描述稱為關(guān)系模式。它可以形式化地表關(guān)系的描述稱為關(guān)系模式。它可以形式化地表示為:示為:r(u,d,dom,f),其中其中r為關(guān)系名,為關(guān)系名,u為組成該關(guān)系的屬性名集合,為組成該關(guān)系的屬性名集合,d為屬性組為屬性組u中中屬性所來自的域,屬性所來自的域,dom為屬性向域的
19、映象集為屬性向域的映象集合,合,f為屬性間數(shù)據(jù)的依賴關(guān)系集合。為屬性間數(shù)據(jù)的依賴關(guān)系集合。 關(guān)系模式通??梢院営洖椋宏P(guān)系模式通常可以簡記為:r(u)或或r(a1,a2, ,an)其中其中r為關(guān)系名,為關(guān)系名,a1,a2, ,an為屬性名。而為屬性名。而域名及屬性向域的映象常常直接說明為屬性的域名及屬性向域的映象常常直接說明為屬性的類型、長度。類型、長度。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日16關(guān)系數(shù)據(jù)庫中的關(guān)系數(shù)據(jù)庫中的型和值型和值的概念的概念 在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系也是用關(guān)在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系也是用關(guān)系來表示的。系來表示的。 例如導(dǎo)師實(shí)體、研究生實(shí)體、導(dǎo)師與研究
20、生之間的一例如導(dǎo)師實(shí)體、研究生實(shí)體、導(dǎo)師與研究生之間的一對多聯(lián)系都可以分別用一個(gè)關(guān)系來表示。對多聯(lián)系都可以分別用一個(gè)關(guān)系來表示。 在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。 型和值型和值 關(guān)系數(shù)據(jù)庫也有型和值之分。關(guān)系數(shù)據(jù)庫也有型和值之分。 關(guān)系數(shù)據(jù)庫的型關(guān)系數(shù)據(jù)庫的型 也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,它包括若干也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。域的定義以及在這些域上定義的若干關(guān)系模式。 關(guān)系數(shù)據(jù)庫的值關(guān)系數(shù)
21、據(jù)庫的值 是這些關(guān)系模式在某一時(shí)刻對應(yīng)的關(guān)系的集合,通常就稱為關(guān)是這些關(guān)系模式在某一時(shí)刻對應(yīng)的關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫。系數(shù)據(jù)庫。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日17關(guān)系的完整性關(guān)系的完整性 關(guān)系模型的完整性規(guī)則關(guān)系模型的完整性規(guī)則 是對關(guān)系的某種約束條件。是對關(guān)系的某種約束條件。 關(guān)系模型中可以有三類完整性約束:關(guān)系模型中可以有三類完整性約束: 實(shí)體完整性、實(shí)體完整性、 參照完整性參照完整性 用戶定義的完整性。用戶定義的完整性。 其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為是足的完整性約束條件,被稱為是關(guān)系的兩
22、個(gè)不變關(guān)系的兩個(gè)不變性性,應(yīng)該由關(guān)系系統(tǒng)自動支持。,應(yīng)該由關(guān)系系統(tǒng)自動支持。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日18實(shí)體完整性實(shí)體完整性 規(guī)則規(guī)則2.1 實(shí)體完整性規(guī)則:若屬性實(shí)體完整性規(guī)則:若屬性a是基本關(guān)系是基本關(guān)系r的主屬性,則屬性的主屬性,則屬性a不能取空值。不能取空值。 實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。空值,而不僅是主碼整體不能取空值。 例如例如 學(xué)生選課關(guān)系學(xué)生選課關(guān)系 選修(學(xué)號,課程號,成績)中,選修(學(xué)號,課程號,成績)中,“學(xué)號、課程號學(xué)號、課程號”為主碼,則為主碼,則“學(xué)號學(xué)
23、號”和和“課程號課程號”都不能取空值,而都不能取空值,而不是整體不為空。不是整體不為空。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日19實(shí)體完整性規(guī)則說明如下:實(shí)體完整性規(guī)則說明如下: 實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個(gè)實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個(gè)基本表通常對應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集?;颈硗ǔ?yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集。 現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。種唯一性標(biāo)識。 相應(yīng)地,關(guān)系模型中以主碼作為唯一標(biāo)識。相應(yīng)地,關(guān)系模型中以主碼作為唯一標(biāo)識。 主碼中的屬性即主屬性不能取空值。所謂空值主碼中的屬性即主屬性不能取空值。所謂
24、空值就是就是“不知道不知道”或或“不確定不確定”的值。的值。 實(shí)體完整性的引申:主碼也不能取重復(fù)值。實(shí)體完整性的引申:主碼也不能取重復(fù)值。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日20參照完整性參照完整性 為什么需要參照完整性?為什么需要參照完整性? 現(xiàn)實(shí)世界中的實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及現(xiàn)實(shí)世界中的實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的。這樣就自然存在著關(guān)系域關(guān)實(shí)體間的聯(lián)系都是用關(guān)系來描述的。這樣就自然存在著關(guān)系域關(guān)系之間的引用。引用的時(shí)候,必須取基本表中已經(jīng)存在的值。由系之間的引用。引用的時(shí)候,必須取基本表中已經(jīng)存在的值。由此引出參照的引
25、用規(guī)則。此引出參照的引用規(guī)則。 參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。 實(shí)例:實(shí)例: 學(xué)生實(shí)體和專業(yè)實(shí)體可以用下面的關(guān)系表示,其中主碼用下劃線學(xué)生實(shí)體和專業(yè)實(shí)體可以用下面的關(guān)系表示,其中主碼用下劃線標(biāo)識:標(biāo)識: 學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,姓名,性別,專業(yè)號專業(yè)號,年齡),年齡) 專業(yè)(專業(yè)(專業(yè)號專業(yè)號,專業(yè)名),專業(yè)名) 說明:說明:這兩個(gè)關(guān)系之間存在著屬性的引用,即學(xué)生關(guān)系引用了專業(yè)關(guān)這兩個(gè)關(guān)系之間存在著屬性的引用,即學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼系的主碼專業(yè)號專業(yè)號。顯然,學(xué)生關(guān)系中的。顯然,學(xué)生關(guān)系中的“專業(yè)號專業(yè)號”值必
26、須是確實(shí)存在值必須是確實(shí)存在的專業(yè)的專業(yè)號,即專業(yè)關(guān)系中有該專業(yè)的記錄。這也就是說,學(xué)生的專業(yè)的專業(yè)號,即專業(yè)關(guān)系中有該專業(yè)的記錄。這也就是說,學(xué)生關(guān) 系 中 的 某 個(gè) 屬 性 的 取 值 需 要 參 照 專 業(yè) 關(guān)系的屬性取值。關(guān) 系 中 的 某 個(gè) 屬 性 的 取 值 需 要 參 照 專 業(yè) 關(guān)系的屬性取值。 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日21參照完整性例參照完整性例2 學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系可以如下三個(gè)關(guān)系表示:系可以如下三個(gè)關(guān)系表示:學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,專業(yè)號,年齡),姓名,性別,專業(yè)號,年齡)課程(課程(課
27、程課程名,學(xué)分)名,學(xué)分)選修(選修(學(xué)號,課程號,學(xué)號,課程號,成績)成績) 參照關(guān)系:參照關(guān)系:選修選修 被參照關(guān)系:被參照關(guān)系:學(xué)生、課程學(xué)生、課程安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日22 參照完整性例參照完整性例3 學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,專業(yè)號,年齡,姓名,性別,專業(yè)號,年齡,班長班長) 班長的學(xué)號引用了本關(guān)系的班長的學(xué)號引用了本關(guān)系的“學(xué)號學(xué)號” 定義定義2.5 設(shè)設(shè)f是基本關(guān)系是基本關(guān)系r的一個(gè)或一組屬性,但不是關(guān)系的一個(gè)或一組屬性,但不是關(guān)系r的的碼,如果碼,如果f與基本關(guān)系與基本關(guān)系s的主碼的主碼ks相對應(yīng),則稱相對應(yīng),則稱f是基是基本關(guān)系本關(guān)系r的的外碼外碼(
28、foreign key),并稱基本關(guān)系),并稱基本關(guān)系r為參照關(guān)系,基本關(guān)系為參照關(guān)系,基本關(guān)系s為被參照關(guān)系或目標(biāo)關(guān)系。關(guān)為被參照關(guān)系或目標(biāo)關(guān)系。關(guān)系系r和和s不一定是不同的關(guān)系。不一定是不同的關(guān)系。 注意注意 f不能是關(guān)系不能是關(guān)系r的主碼,的主碼,ks必須是關(guān)系必須是關(guān)系s的主碼。的主碼。 顯然,目標(biāo)關(guān)系顯然,目標(biāo)關(guān)系s的主碼的主碼ks和參照關(guān)系的外碼和參照關(guān)系的外碼f必須定必須定義在同一個(gè)(或一組)域上。義在同一個(gè)(或一組)域上。 需要指出需要指出 外碼并不一定要與相應(yīng)的主碼同名。外碼并不一定要與相應(yīng)的主碼同名。 在實(shí)際應(yīng)用當(dāng)中,為了便于識別,當(dāng)外碼與相應(yīng)的主碼屬于不在實(shí)際應(yīng)用當(dāng)中,為
29、了便于識別,當(dāng)外碼與相應(yīng)的主碼屬于不同的關(guān)系時(shí),往往給它們?nèi)∠嗤拿?。同的關(guān)系時(shí),往往給它們?nèi)∠嗤拿?。安?cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日23 規(guī)則規(guī)則2.2 參照完整性規(guī)則參照完整性規(guī)則若屬性(或?qū)傩越M)若屬性(或?qū)傩越M)f是基本關(guān)系是基本關(guān)系r的外碼,它的外碼,它與基本關(guān)系與基本關(guān)系s的主碼的主碼ks相對應(yīng)(基本關(guān)系相對應(yīng)(基本關(guān)系r和和s不一定是不同的關(guān)系),則對于不一定是不同的關(guān)系),則對于r中每個(gè)元中每個(gè)元組在組在f上的值必須為:上的值必須為: 或者取空值(或者取空值(f的每個(gè)屬性值均為空值);的每個(gè)屬性值均為空值); 或者等于或者等于s中某個(gè)元組的主碼值。中某個(gè)元組的主碼
30、值。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日24用戶定義的完整性用戶定義的完整性 不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件,不同,往往還需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關(guān)系用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件。數(shù)據(jù)庫的約束條件。例如,成績的取值必須在例如,成績的取值必須在0100之間。之間。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日25關(guān)系代數(shù)關(guān)系代數(shù) 關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式,它是用對關(guān)系的運(yùn)算來表
31、達(dá)查詢的。一種傳統(tǒng)表達(dá)方式,它是用對關(guān)系的運(yùn)算來表達(dá)查詢的。熟悉表熟悉表2.4的關(guān)系代數(shù)運(yùn)算符。的關(guān)系代數(shù)運(yùn)算符。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日26傳統(tǒng)的集合運(yùn)算傳統(tǒng)的集合運(yùn)算 1. 并并 2. 差差 3. 交交 4. 廣義笛卡兒積廣義笛卡兒積 strtts|rstrtts|rstrtts|rstrttssrsrtr|安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日27專門的關(guān)系運(yùn)算專門的關(guān)系運(yùn)算:選擇、投影、連接、除等。:選擇、投影、連接、除等。為了敘述上的方便,先引入幾個(gè)記號。為了敘述上的方便,先引入幾個(gè)記號。 設(shè)關(guān)系模式為設(shè)關(guān)系模式為r(a1,a2, ,an)。 它的一個(gè)關(guān)系設(shè)為它的一
32、個(gè)關(guān)系設(shè)為r。tr表示表示t是是r的一個(gè)元組。的一個(gè)元組。tai則表示元組則表示元組t中相應(yīng)于屬性中相應(yīng)于屬性ai上的一個(gè)分量。上的一個(gè)分量。 若若a=ai1,ai2, ,aik,其中,其中 ai1,ai2, ,aik是是a1,a2, ,an中的一部分,則中的一部分,則a稱為稱為屬性列或域列。屬性列或域列。 ta=(tai1,tai2,taik) 表示元組表示元組t在屬性列在屬性列a上諸分量的集合。則表示上諸分量的集合。則表示(a1,a2, ,an)中去掉中去掉ai1,ai2, ,aik后剩余的屬后剩余的屬性組。性組。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日28 r為為n目關(guān)系,目關(guān)系,s為為
33、m目關(guān)系。目關(guān)系。trr,tss,tr ts稱為元組的連接。它是一個(gè)稱為元組的連接。它是一個(gè)nm列的元組,列的元組,前前n個(gè)分量為個(gè)分量為r中的一個(gè)中的一個(gè)n元組,后元組,后m個(gè)分量為個(gè)分量為s中的一個(gè)中的一個(gè)m元組。元組。 給定一個(gè)關(guān)系給定一個(gè)關(guān)系r(x,z),x和和z為屬性組。定為屬性組。定義當(dāng)義當(dāng)tx=x時(shí),時(shí),x在在r中的象集為:中的象集為:zx=tz | tr,tx=x它表示它表示r中屬性組中屬性組x上值為上值為x的諸元組在的諸元組在z上分量上分量的集合。的集合。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日29下面給出關(guān)系運(yùn)算的定義:下面給出關(guān)系運(yùn)算的定義: 1選擇選擇f(r) t |
34、trf(t)=真真f表示選擇條件,是一個(gè)邏輯表達(dá)式。表示選擇條件,是一個(gè)邏輯表達(dá)式。選擇運(yùn)算實(shí)際上是從關(guān)系選擇運(yùn)算實(shí)際上是從關(guān)系r中選取使邏輯表達(dá)中選取使邏輯表達(dá)式式f為真的元組。為真的元組。這是從行的角度進(jìn)行的運(yùn)算。這是從行的角度進(jìn)行的運(yùn)算。表達(dá)式不僅可以用列名構(gòu)造也可以用列序號構(gòu)表達(dá)式不僅可以用列名構(gòu)造也可以用列序號構(gòu)造。造。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日30例子例子參看參看p59圖圖2.3“學(xué)生課程學(xué)生課程”數(shù)據(jù)庫中包括三個(gè)表:數(shù)據(jù)庫中包括三個(gè)表: (1) “學(xué)生學(xué)生”表表student由學(xué)號(由學(xué)號(sno)、姓名)、姓名(sname)、性別()、性別(ssex)、年齡()、
35、年齡(sage)、所)、所在系(在系(sdept)五個(gè)屬性組成,可記為:)五個(gè)屬性組成,可記為: student(sno,sname,ssex,sage,sdept) sno (2) “課程課程”表表course由課程號(由課程號(cno)、課程名)、課程名(cname)、先修課號()、先修課號(cpno)、學(xué)分()、學(xué)分(ccredit)四個(gè)屬性組成,可記為:四個(gè)屬性組成,可記為: course(cno,cname,cpno,ccredit) cno (3) “學(xué)生選課學(xué)生選課”表表sc由學(xué)號(由學(xué)號(sno)、課程號)、課程號(cno)、成績()、成績(grade)三個(gè)屬性組成,可記為:)
36、三個(gè)屬性組成,可記為: sc(sno,cno,grade) (sno, cno) 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日31例例1 查詢信息系(查詢信息系(is系)全體學(xué)生系)全體學(xué)生 sdept=is(student) 或或 5=is(student) 例例2 查詢年齡小于查詢年齡小于20歲的元組歲的元組 sage20(student) 或或420(student) 結(jié)果如圖結(jié)果如圖p60圖圖2.4安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日322投影投影 a(r) ta | tr 關(guān)系關(guān)系r上的投影使從上的投影使從r中選擇出若干屬性列組成新的關(guān)中選擇出若干屬性列組成新的關(guān)系。系。 投影之后不
37、僅取消了原關(guān)系中的某些列,而且還可能投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因?yàn)槿∠四承傩粤泻螅涂赡艹鋈∠承┰M,因?yàn)槿∠四承傩粤泻螅涂赡艹霈F(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。 例例3 :查詢學(xué)生關(guān)系查詢學(xué)生關(guān)系student在學(xué)生姓名和所在在學(xué)生姓名和所在系兩個(gè)屬性上的投影系兩個(gè)屬性上的投影 sname,sdept(student) 或或2,5(student) 結(jié)果如結(jié)果如p61圖圖2-5(a)。 例例4 查詢學(xué)生關(guān)系查詢學(xué)生關(guān)系student中都有哪些系,即查中都有哪些系,即查詢學(xué)生關(guān)系詢學(xué)生關(guān)系student在所在系屬性
38、上的投影在所在系屬性上的投影 sdept(student) 結(jié)果如結(jié)果如p61圖圖2-5(b)。 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日333連接連接 連接也稱為連接也稱為 連接。它是從兩個(gè)關(guān)系的笛連接。它是從兩個(gè)關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組??▋悍e中選取屬性間滿足一定條件的元組。記做:記做:其中其中a和和b分別為分別為r和和s上度數(shù)相等且可比上度數(shù)相等且可比的屬性組。的屬性組。是比較運(yùn)算符。是比較運(yùn)算符。連接運(yùn)算從連接運(yùn)算從r和和s的廣義笛卡兒積的廣義笛卡兒積rs中選取中選取在在a屬性組上的值域在屬性組上的值域在b屬性組上值滿足比較屬性組上值滿足比較關(guān)系關(guān)系 的元組。的元組
39、。 btattrsrsrsrstrtts|ba 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日34等值連接和自然連接等值連接和自然連接 等值連接。等值連接。 它是從關(guān)系它是從關(guān)系r與與s的廣義笛卡兒積中選取的廣義笛卡兒積中選取a,b屬性值屬性值相等的那些元組,等值連接為:相等的那些元組,等值連接為: 自然連接自然連接 自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。即若把重復(fù)的屬性列去掉。即若r和和s具有相同的屬性組具有相同的屬性組b,則自然連接
40、可記做:則自然連接可記做: p6162的例的例5 btattrsrsrsrstrtts|ba btattrsrsrsrstrtts|安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日354除除 給定關(guān)系給定關(guān)系r(x,y)和)和s(y,z),其中),其中x,y,z為屬性組。為屬性組。r中的中的y與與s中的中的y可以有不同的屬可以有不同的屬性名,但必須出自相同的域集。性名,但必須出自相同的域集。r與與s的除運(yùn)算得的除運(yùn)算得到一個(gè)新的關(guān)系到一個(gè)新的關(guān)系p(x),),p是是r中滿足下列條件中滿足下列條件的元組在的元組在x屬性列上的投影,屬性列上的投影,元組在元組在x上分量值上分量值x的象集的象集yx包含包含s
41、在在y上投影的集合。上投影的集合。rs=trx| tr ry(s) yx 其中其中yx為為x在在r中的象集,中的象集,x= trx 除操作是同時(shí)從行和列的角度進(jìn)行運(yùn)算。除操作是同時(shí)從行和列的角度進(jìn)行運(yùn)算。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日36例子例子例例6 設(shè)關(guān)系設(shè)關(guān)系r, s分別為圖分別為圖2-9中的中的(a)和和(b),rs的結(jié)果為圖的結(jié)果為圖2-9(c)安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日37在關(guān)系在關(guān)系r中,中,a可以取四個(gè)值可以取四個(gè)值a1, a2, a3, a4。其中:。其中: a1的象集為的象集為(b1,c2), (b2,c3), (b2,c1) a2的象集為的象集為(
42、b3,c7), (b2,c3) a3的象集為的象集為(b4,c6) a4的象集為的象集為(b6,c6) s在在(b,c)上的投影為上的投影為(b1,c2), (b2,c3), (b2,c1) 顯然只有顯然只有a1的象集的象集(b,c) 包含包含s在在(b,c)屬性屬性組上的投影,所以組上的投影,所以rs=a1 安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日38 例例7查詢至少選修查詢至少選修1號課程和號課程和3號課程的學(xué)生號號課程的學(xué)生號碼碼 首先建立一個(gè)臨時(shí)關(guān)系首先建立一個(gè)臨時(shí)關(guān)系k: cno 1 3然后求:然后求:結(jié)果為結(jié)果為95001ksccnosno)(,安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月1
43、2日39 例例8查詢選修了查詢選修了2號課程的學(xué)生的學(xué)號號課程的學(xué)生的學(xué)號 例例9查詢至少選修了一門其直接先行課查詢至少選修了一門其直接先行課為為5號課程的學(xué)生姓名號課程的學(xué)生姓名 例例10查詢選修了全部課程的學(xué)生號碼和查詢選修了全部課程的學(xué)生號碼和姓名姓名95002,95001)( 2 sccnosno)()(, 5 studentsccoursesnamesnocpnosname)()(, 5 studentsccoursesnamesnocpnosnosname)()()(,studentcoursescsnamesnocnocnosno安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日40關(guān)系代
44、數(shù)總結(jié)與補(bǔ)充關(guān)系代數(shù)總結(jié)與補(bǔ)充 基本運(yùn)算基本運(yùn)算一元運(yùn)算一元運(yùn)算 選擇、投影、更名。選擇、投影、更名。多元運(yùn)算多元運(yùn)算 笛卡兒積、并、集合差。笛卡兒積、并、集合差。 其它運(yùn)算其它運(yùn)算集合交、自然連接、除、賦值。集合交、自然連接、除、賦值。 擴(kuò)展運(yùn)算擴(kuò)展運(yùn)算廣義投影、外連接、聚集。廣義投影、外連接、聚集。 修改操作修改操作插入、刪除、更新。插入、刪除、更新。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日41一些記號一些記號 給定關(guān)系模式給定關(guān)系模式r(a1 , a2 , , an),設(shè),設(shè)r是它的一個(gè)具體的關(guān)是它的一個(gè)具體的關(guān)系,系,t r是關(guān)系的一個(gè)元組。是關(guān)系的一個(gè)元組。 分量分量 設(shè)設(shè)t r,則
45、,則tai表示元組表示元組t中相應(yīng)于屬性中相應(yīng)于屬性ai的一個(gè)分量。的一個(gè)分量。 屬性列屬性列 a = ai1 ,ai2 , ,aik a1 ,a2 , ,an,稱,稱a為屬性為屬性列。列。 a表示表示a1 ,a2 , ,an中去掉中去掉a后剩余的屬性組。后剩余的屬性組。 tai = ( tai1, tai2, , taik)。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日42選擇運(yùn)算選擇運(yùn)算 基本定義基本定義在關(guān)系在關(guān)系r中選擇滿足給定條件的元組(從行的角度)。中選擇滿足給定條件的元組(從行的角度)。 f(r)=t | t r f(t) = 真真f是選擇的條件,是選擇的條件, t r, f(t)要
46、么為真,要么為假。要么為真,要么為假。f的形式:由的形式:由邏輯運(yùn)算符邏輯運(yùn)算符連接連接關(guān)系表達(dá)式關(guān)系表達(dá)式而成。而成。 邏輯表達(dá)式:邏輯表達(dá)式: , , 關(guān)系表達(dá)式:關(guān)系表達(dá)式:x y x,y是屬性名、常量、或簡單函數(shù)。是屬性名、常量、或簡單函數(shù)。 是比較算符,是比較算符, , , , , , 示例示例 找年齡不小于找年齡不小于20的男學(xué)生。的男學(xué)生。 age20 sex=男男(s)安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日43投影投影 定義定義從關(guān)系從關(guān)系r中取若干列組成新的關(guān)系(從列的角度)。中取若干列組成新的關(guān)系(從列的角度)。 a(r) = ta | t r , a r投影的結(jié)果中要去
47、掉相同的行。投影的結(jié)果中要去掉相同的行。 示例:找示例:找001號學(xué)生所選修的課程號。號學(xué)生所選修的課程號。 c#( s#=001 (sc)cbcfedcbacbabcbcef r r b , c(r)安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日44并運(yùn)算并運(yùn)算 定義定義 所有至少出現(xiàn)在兩個(gè)關(guān)系中之一的元組集合。所有至少出現(xiàn)在兩個(gè)關(guān)系中之一的元組集合。 r s = r | r r r s 兩個(gè)關(guān)系兩個(gè)關(guān)系r和和s若進(jìn)行并運(yùn)算,則它們必須是相容的:若進(jìn)行并運(yùn)算,則它們必須是相容的: 關(guān)系關(guān)系r和和s必須是同元的,即它們的屬性數(shù)目必須相同。必須是同元的,即它們的屬性數(shù)目必須相同。 對對 i,r的第的第
48、i個(gè)屬性的域必須和個(gè)屬性的域必須和s的第的第i個(gè)屬性的域相同。個(gè)屬性的域相同。示例示例求選修了求選修了001號或號或002號課程的學(xué)生號。號課程的學(xué)生號。 方案方案1:s#( c# = 001 c# = 002(sc) 方案方案2:s#( c# = 001 (sc)s#( c# = 002(sc)r s安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日45差運(yùn)算差運(yùn)算 定義定義 所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合。所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合。r s = r | r r r s r和和s必須是相容的。必須是相容的。 示例示例求選修了求選修了001號而沒有選號而沒有選002號課程
49、的學(xué)生號。號課程的學(xué)生號。s#( c# = 001 (sc) s#( c# = 002(sc)r s安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日46更名運(yùn)算更名運(yùn)算 定義定義 給一個(gè)關(guān)系表達(dá)式賦予名字給一個(gè)關(guān)系表達(dá)式賦予名字 x(e)返回表達(dá)式返回表達(dá)式e的結(jié)果,并把名字的結(jié)果,并把名字x賦給賦給e。 x(a1, a2 , , an )(e)返回表達(dá)式返回表達(dá)式e的結(jié)果,并把名字的結(jié)果,并把名字x賦給賦給e,同時(shí)將各屬同時(shí)將各屬性更名為性更名為a1,a2, ,an 。 關(guān)系被看作一個(gè)最小的關(guān)系代數(shù)表達(dá)式,可以將更名關(guān)系被看作一個(gè)最小的關(guān)系代數(shù)表達(dá)式,可以將更名運(yùn)算施加到關(guān)系上,得到具有不同名字的同
50、一關(guān)系。運(yùn)算施加到關(guān)系上,得到具有不同名字的同一關(guān)系。這在同一關(guān)系多次參與同一運(yùn)算時(shí)很有幫助。這在同一關(guān)系多次參與同一運(yùn)算時(shí)很有幫助。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日47廣義笛卡爾積運(yùn)算廣義笛卡爾積運(yùn)算 元組的連串(元組的連串(concatenation) 若若r = (r1, ,rn),s = (s1 , ,sm),則定義,則定義r與與s的連串的連串為:為:rs = (r1, ,rn, s1 , ,sm) 定義定義 兩個(gè)關(guān)系兩個(gè)關(guān)系r,s,其度分別為,其度分別為n,m,則它們的笛卡爾積是所有這,則它們的笛卡爾積是所有這樣的元組集合:元組的前樣的元組集合:元組的前n個(gè)分量是個(gè)分量是r中
51、的一個(gè)元組,后中的一個(gè)元組,后m個(gè)分量個(gè)分量是是s中的一個(gè)元組。中的一個(gè)元組。r s= rs | r r s s r s的度為的度為r與與s的度之和,的度之和, r s的元組個(gè)數(shù)為的元組個(gè)數(shù)為r和和s的元組個(gè)數(shù)的元組個(gè)數(shù)的乘積。的乘積。 思考題:思考題: 求張三同學(xué)計(jì)算機(jī)成績,列出其學(xué)號、姓名、課程名、成績求張三同學(xué)計(jì)算機(jī)成績,列出其學(xué)號、姓名、課程名、成績 求數(shù)學(xué)成績比王紅同學(xué)高的學(xué)生。求數(shù)學(xué)成績比王紅同學(xué)高的學(xué)生。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日48交運(yùn)算交運(yùn)算 定義定義 所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合。所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合。r s = r | r r r s 交
52、運(yùn)算可以通過差運(yùn)算來重寫:交運(yùn)算可以通過差運(yùn)算來重寫:r s = r (r s) 示例示例求選修了求選修了001號和號和002號課程的學(xué)生號。號課程的學(xué)生號。s#( c# = 001 (sc)s#( c# = 002(sc)r s安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日49 連接(連接() 定義定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取給定屬性間滿足從兩個(gè)關(guān)系的廣義笛卡兒積中選取給定屬性間滿足一定條件的元組。一定條件的元組。r s = rs | rr s = rs | r r r s s s s rara sb sb a,b a,b為為r r和和s s上度數(shù)相等且可比的屬性列。上度數(shù)相等且可比的屬性列
53、。 為算術(shù)比較符,為等號時(shí)稱為等值連接。為算術(shù)比較符,為等號時(shí)稱為等值連接。 r s r s = = rara sbsb( ( r rs)s)a ba b安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日50 連接(連接() 求數(shù)學(xué)成績比王紅同學(xué)高的學(xué)生求數(shù)學(xué)成績比王紅同學(xué)高的學(xué)生 提示:提示: 先形成王紅數(shù)學(xué)成績表,再形成所有同學(xué)的數(shù)學(xué)成績表,連接先形成王紅數(shù)學(xué)成績表,再形成所有同學(xué)的數(shù)學(xué)成績表,連接條件設(shè)為表?xiàng)l件設(shè)為表1中的成績小于表中的成績小于表2中的成績中的成績 想一想,還有沒有其它的查詢方法。想一想,還有沒有其它的查詢方法。987654321cbade3162abcde123311236245
54、662 r s r s b d r r s s安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日51自然連接(自然連接() 定義定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取在相同屬性從兩個(gè)關(guān)系的廣義笛卡兒積中選取在相同屬性列列b上取值相等的元組,并去掉重復(fù)的行。上取值相等的元組,并去掉重復(fù)的行。r s = rsb | rr s = rsb | r r r s s s s rb=sb rb=sb 自然連接與等值連接的不同自然連接與等值連接的不同 自然連接中相等的分量必須是相同的屬性組,并且自然連接中相等的分量必須是相同的屬性組,并且要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不必。要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不
55、必。 當(dāng)當(dāng)r r與與s s無相同屬性時(shí)無相同屬性時(shí),r s r s r rs s。安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日52自然連接(自然連接() 思考題:思考題: 列出學(xué)號為列出學(xué)號為99001的學(xué)生成績表,要求列出的學(xué)生成績表,要求列出學(xué)號、姓名、課程名、成績學(xué)號、姓名、課程名、成績987654321cbacd3162 r r s sabcd12314562 r sr s安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日53除運(yùn)算除運(yùn)算 象集(象集(image set) 關(guān)系關(guān)系r(x , z), x, z是屬性組,是屬性組,x是是x上的取值,定義上的取值,定義x在在r中的象集中的象集為為z zx
56、 x = tz | t = tz | t r r t tx= x x= x 從從r r中選出在中選出在x x上取值為上取值為x x的元組,去掉的元組,去掉x x上的分量,只留上的分量,只留z z上的分量。上的分量。 除定義除定義 r(x , y) s(y , z) = x | x=rx r r yxy(s) r(x , y) s(y) = x | x=rx r r yx s r s中的元組中的元組x滿足性質(zhì):對滿足性質(zhì):對 yy(s) ,都有,都有xy r。 r s = x(r) x( x(r) y(s) r) 思考題思考題 求同時(shí)選修了求同時(shí)選修了001和和002號課程的學(xué)生學(xué)號號課程的學(xué)生
57、學(xué)號 求選修了張軍同學(xué)所選全部課程的學(xué)生學(xué)號求選修了張軍同學(xué)所選全部課程的學(xué)生學(xué)號 求選修了所有課程的同學(xué)的學(xué)號求選修了所有課程的同學(xué)的學(xué)號安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日54*賦值運(yùn)算賦值運(yùn)算 定義定義 為使查詢表達(dá)簡單、清晰,可以將一個(gè)復(fù)雜的關(guān)系代數(shù)表為使查詢表達(dá)簡單、清晰,可以將一個(gè)復(fù)雜的關(guān)系代數(shù)表達(dá)式分成幾個(gè)部分,每一部分都賦予一個(gè)臨時(shí)關(guān)系變量,達(dá)式分成幾個(gè)部分,每一部分都賦予一個(gè)臨時(shí)關(guān)系變量,該變量可被看作關(guān)系而在后面的表達(dá)式中使用。該變量可被看作關(guān)系而在后面的表達(dá)式中使用。臨時(shí)關(guān)系變量臨時(shí)關(guān)系變量關(guān)系代數(shù)表達(dá)式。關(guān)系代數(shù)表達(dá)式。 賦值給臨時(shí)關(guān)系變量只是一種結(jié)果的傳遞,而賦值
58、給永久賦值給臨時(shí)關(guān)系變量只是一種結(jié)果的傳遞,而賦值給永久關(guān)系則意味著對數(shù)據(jù)庫的修改。關(guān)系則意味著對數(shù)據(jù)庫的修改。 示例示例r s = x(r) x( x(r) y(s) r)用賦值重寫為:用賦值重寫為:temp1 x(r) , temp2 x(temp1 y(s) r)result temp1 temp2安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日55關(guān)系代數(shù)查詢實(shí)例關(guān)系代數(shù)查詢實(shí)例 求求選選修了其先行修了其先行課為課為 001001號課號課程的程的學(xué)學(xué)生名。生名。 下面下面哪個(gè)哪個(gè)方案更高效?想一想,方案更高效?想一想,還還有有沒沒有有別別的方案?的方案? 方案方案1 1: snamesname
59、( ( cpno = 001 cpno = 001 (sc c s)(sc c s) 方案方案2 2: snamesname( ( cpno = 001 cpno = 001 (c) sc s)(c) sc s) 求未求未選選修修001001號課號課程的程的學(xué)學(xué)生生號號。 下面下面哪個(gè)哪個(gè)方案正確?方案正確? 方案方案1 1: s snono ( ( cno 001 cno 001 (sc)(sc) 方案方案2 2: s snono (s)(s) s snono ( ( cno = 001 cno = 001 (sc)(sc) 求求僅選僅選修了修了001001號課號課程的程的學(xué)學(xué)生生號號。 選
60、修選修001號課程的學(xué)生僅選號課程的學(xué)生僅選001號課程之外的學(xué)生號課程之外的學(xué)生s#( c# = 001 (sc)s#(sc c# = 001 (sc)安財(cái)信工學(xué)院計(jì)算機(jī)系2006年4月12日56*廣義投影廣義投影 定義定義 在投影列表中使用算術(shù)表達(dá)式來對投影進(jìn)行擴(kuò)展。在投影列表中使用算術(shù)表達(dá)式來對投影進(jìn)行擴(kuò)展。 f1 , f2 , , fn (e) f1 , f2 , , fn 是算術(shù)表達(dá)式。是算術(shù)表達(dá)式。 示例示例 求教工應(yīng)繳納的所得稅。求教工應(yīng)繳納的所得稅。 p# , sal*5/100 (prof) p#, income-tax ( p# , sal*5/100 (prof)安財(cái)信工
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆中建七局秋季校園招聘正式啟動“七”待有你共建未來筆試參考題庫附帶答案詳解
- 個(gè)人經(jīng)營借款合同范本
- 動車輪椅租賃合同范本
- 產(chǎn)品代銷售合同范本
- mcn商務(wù)推廣合同范本
- 借款續(xù)約合同范本
- 傳媒行業(yè)培訓(xùn)合同范本
- 武侯衛(wèi)生間補(bǔ)漏施工方案
- 保利地產(chǎn)施工合同范本
- 專利免責(zé)合同范例
- 《駱駝祥子》通讀指導(dǎo)手冊
- 股東會會議系列文件(通知、議程、簽到表、表決票、決議)
- 非法占用農(nóng)田建房舉報(bào)信范文
- 伐樹工程施工合同范本
- 數(shù)據(jù)挖掘(第2版)PPT全套完整教學(xué)課件
- 工程開工報(bào)告(5篇)
- 配電箱試驗(yàn)項(xiàng)目
- 運(yùn)動技能學(xué)習(xí)與控制課件第一章運(yùn)動技能學(xué)習(xí)與控制概述
- 溫室大棚花卉苗圃采暖方案空氣源熱泵
- BEC商務(wù)英語高級考試歷年真題
- 初二地理中考復(fù)習(xí)備考策略與計(jì)劃
評論
0/150
提交評論