第二章 關(guān)系數(shù)據(jù)庫_第1頁
第二章 關(guān)系數(shù)據(jù)庫_第2頁
第二章 關(guān)系數(shù)據(jù)庫_第3頁
第二章 關(guān)系數(shù)據(jù)庫_第4頁
第二章 關(guān)系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 第二章 關(guān)系數(shù)據(jù)庫 2.1 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 2.2 關(guān)系操作 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2 層次、網(wǎng)狀數(shù)據(jù)庫層次、網(wǎng)狀數(shù)據(jù)庫是面向?qū)I(yè)人員的,使用很不方便。是面向?qū)I(yè)人員的,使用很不方便。 程序員必須經(jīng)過良好的培訓(xùn),對(duì)所使用的系統(tǒng)有深入的了程序員必須經(jīng)過良好的培訓(xùn),對(duì)所使用的系統(tǒng)有深入的了 解才能用好系統(tǒng)。解才能用好系統(tǒng)。 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫就是要解決這一問題,使它成為面向用戶就是要解決這一問題,使它成為面向用戶 的系統(tǒng)。的系統(tǒng)。 關(guān)系數(shù)據(jù)庫是應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)的關(guān)系數(shù)據(jù)庫是應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)的。它具有結(jié)。它具有結(jié) 構(gòu)簡(jiǎn)單、理論基礎(chǔ)堅(jiān)實(shí)、數(shù)據(jù)獨(dú)立性高以及提

2、供非過程性構(gòu)簡(jiǎn)單、理論基礎(chǔ)堅(jiān)實(shí)、數(shù)據(jù)獨(dú)立性高以及提供非過程性 語言等優(yōu)點(diǎn)。語言等優(yōu)點(diǎn)。 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 3 1、域域(Domain): 值的集合。它們具有相同的數(shù)據(jù)類型,值的集合。它們具有相同的數(shù)據(jù)類型, 語義上通常指某一對(duì)象的取值范圍。語義上通常指某一對(duì)象的取值范圍。 例如:全體整數(shù), 0到100之間的整數(shù), 長(zhǎng)度不超過10的字符串集合 2、笛卡爾積笛卡爾積(Cartesian Product):設(shè)):設(shè)D1、D2、Dn 是是n個(gè)域個(gè)域, 則它們的笛卡爾積為則它們的笛卡爾積為 D1 D2 Dn=(d1,d2,dn) | di Di, i=1,2,

3、n 其中每一個(gè)元素稱為一個(gè)其中每一個(gè)元素稱為一個(gè)n元組元組(n-tuple), 簡(jiǎn)稱簡(jiǎn)稱元組元組; 元組中的每個(gè)值元組中的每個(gè)值di稱為一個(gè)稱為一個(gè)分量分量(component). 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 4 笛卡爾積可以寫成一個(gè)二維表笛卡爾積可以寫成一個(gè)二維表 例如:例如: 設(shè)設(shè) D1=張三,李四張三,李四, D2=數(shù)學(xué),語文數(shù)學(xué),語文, D3=優(yōu),良優(yōu),良 則則D1D2D3可用二維表表示為:可用二維表表示為: 張三張三 數(shù)學(xué)數(shù)學(xué) 優(yōu)優(yōu) 張三張三 數(shù)學(xué)數(shù)學(xué) 良良 張三張三 語文語文 優(yōu)優(yōu) 張三張三 語文語文 良良 李四李四 數(shù)學(xué)數(shù)學(xué) 優(yōu)優(yōu) 李四李四 數(shù)學(xué)

4、數(shù)學(xué) 良良 李四李四 語文語文 優(yōu)優(yōu) 李四李四 語文語文 良良 3、關(guān)系關(guān)系(Relation) 笛卡爾積笛卡爾積D1 D2 Dn的子集合,的子集合, 記作記作 R(D1,D2,Dn) 關(guān)系名關(guān)系名 n為關(guān)系的目或度為關(guān)系的目或度 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 5 4、說明、說明 關(guān)系是一個(gè)二維表關(guān)系是一個(gè)二維表 每行對(duì)應(yīng)一個(gè)元組每行對(duì)應(yīng)一個(gè)元組 每列可起一個(gè)名字,稱為屬性。屬性的取值范圍為一個(gè)域,每列可起一個(gè)名字,稱為屬性。屬性的取值范圍為一個(gè)域, 元組中的一個(gè)屬性值是一個(gè)分量。元組中的一個(gè)屬性值是一個(gè)分量。 5、關(guān)系的性質(zhì)、關(guān)系的性質(zhì) 列是同質(zhì)的,即每列中的

5、數(shù)據(jù)必須來自同一個(gè)域列是同質(zhì)的,即每列中的數(shù)據(jù)必須來自同一個(gè)域(不同屬性名不同屬性名) 每一列必須是不可再分的數(shù)據(jù)項(xiàng)(不允許表中套表)每一列必須是不可再分的數(shù)據(jù)項(xiàng)(不允許表中套表) 不能有相同的行不能有相同的行 行、列次序無關(guān)行、列次序無關(guān) 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 6、單一的數(shù)據(jù)結(jié)構(gòu):關(guān)系(二維表)、單一的數(shù)據(jù)結(jié)構(gòu):關(guān)系(二維表) 不論是實(shí)體還是實(shí)體間的聯(lián)系都用關(guān)系表示不論是實(shí)體還是實(shí)體間的聯(lián)系都用關(guān)系表示。 實(shí)體值實(shí)體值 關(guān)系的元組,在關(guān)系數(shù)據(jù)庫中通常稱為關(guān)系的元組,在關(guān)系數(shù)據(jù)庫中通常稱為記錄。記錄。 屬性值屬性值 元組的分量,在關(guān)系數(shù)據(jù)庫中通常稱為元組

6、的分量,在關(guān)系數(shù)據(jù)庫中通常稱為字段。字段。 關(guān)鍵字(關(guān)鍵字(碼碼):唯一標(biāo)識(shí)一個(gè)元組的屬性(組)。):唯一標(biāo)識(shí)一個(gè)元組的屬性(組)。 關(guān)鍵字可以有多個(gè),統(tǒng)稱關(guān)鍵字可以有多個(gè),統(tǒng)稱候選關(guān)鍵字候選關(guān)鍵字。候選碼中的諸。候選碼中的諸 屬性稱為屬性稱為主屬性主屬性。不包含在候選碼中的屬性稱為。不包含在候選碼中的屬性稱為非主屬非主屬 性性。在使用時(shí),通常選定一個(gè)候選碼作為。在使用時(shí),通常選定一個(gè)候選碼作為主碼主碼。 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 7 7、關(guān)系的三種類型、關(guān)系的三種類型 基本關(guān)系:基本關(guān)系:客觀存在客觀存在的基本表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏的基本表,它是實(shí)際存儲(chǔ)

7、數(shù)據(jù)的邏 輯表示。輯表示。 查詢表:由基本表按一定條件查詢表:由基本表按一定條件檢索檢索得到的結(jié)果。得到的結(jié)果。 視圖視圖(View):): 從一個(gè)或多個(gè)基本關(guān)系上從一個(gè)或多個(gè)基本關(guān)系上導(dǎo)出的關(guān)系導(dǎo)出的關(guān)系。它。它 不對(duì)應(yīng)實(shí)際的存儲(chǔ)數(shù)據(jù),是一個(gè)虛關(guān)系,然而可永久存在。不對(duì)應(yīng)實(shí)際的存儲(chǔ)數(shù)據(jù),是一個(gè)虛關(guān)系,然而可永久存在。 相當(dāng)于關(guān)系模型的外模式。相當(dāng)于關(guān)系模型的外模式。 由于二維表的存儲(chǔ)策略非常簡(jiǎn)單,關(guān)系數(shù)據(jù)庫的物理由于二維表的存儲(chǔ)策略非常簡(jiǎn)單,關(guān)系數(shù)據(jù)庫的物理 存儲(chǔ)完全由存儲(chǔ)完全由DBMS自動(dòng)完成。因此,在關(guān)系模型中不需要自動(dòng)完成。因此,在關(guān)系模型中不需要 與內(nèi)模式相應(yīng)的概念。與內(nèi)模式相應(yīng)的概

8、念。 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 8 8、關(guān)系模式:、關(guān)系模式:關(guān)系的描述關(guān)系的描述。 包括關(guān)系名、諸屬性名、屬性向域的映象、屬性間的依賴。包括關(guān)系名、諸屬性名、屬性向域的映象、屬性間的依賴。 關(guān)系的型關(guān)系的型 一個(gè)元組為關(guān)系的一個(gè)值一個(gè)元組為關(guān)系的一個(gè)值 表示:表示: R(U,D,DOM,F(xiàn)) 屬性的類型、長(zhǎng)度等屬性的類型、長(zhǎng)度等 R為關(guān)系名,為關(guān)系名,U為屬性名集合,為屬性名集合,D為為U中屬性所來自的域,中屬性所來自的域, DOM為屬性向域的映像集合,為屬性向域的映像集合,F(xiàn)為屬性間的依賴關(guān)系集合。為屬性間的依賴關(guān)系集合。 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式

9、化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 9 關(guān)系數(shù)據(jù)庫模式關(guān)系數(shù)據(jù)庫模式:對(duì)關(guān)系數(shù)據(jù)庫的描述,包括域:對(duì)關(guān)系數(shù)據(jù)庫的描述,包括域 的定義及在域上定義的所有關(guān)系模式。的定義及在域上定義的所有關(guān)系模式。 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫:所有實(shí)體及實(shí)體間聯(lián)系的關(guān)系的集:所有實(shí)體及實(shí)體間聯(lián)系的關(guān)系的集 合,是某時(shí)刻所有關(guān)系模式對(duì)應(yīng)的關(guān)系的集合。合,是某時(shí)刻所有關(guān)系模式對(duì)應(yīng)的關(guān)系的集合。 9、關(guān)系數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫 值值 型型 2.12.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義 10 1、種類:、種類: 選擇、投影、連接、除、并、交、差、笛卡爾積選擇、投影、連接、除、并、交、差、笛卡爾積 增加、刪除、修改增加、

10、刪除、修改 查詢操作查詢操作 更新操作更新操作 2.2 2.2 關(guān)系操作關(guān)系操作 注意:注意: 選擇、投影、并、差、笛卡爾積是選擇、投影、并、差、笛卡爾積是5種基本操種基本操 作,其他操作可由基本操作定義和導(dǎo)出。作,其他操作可由基本操作定義和導(dǎo)出。 11 一次一集合(關(guān)系型)一次一集合(關(guān)系型) 一次一記錄(非關(guān)系型)一次一記錄(非關(guān)系型) 非過程化語言:用戶只需告訴做什么(非過程化語言:用戶只需告訴做什么(What) 不需告訴怎么做(不需告訴怎么做(How) 數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制語言集成在一起數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制語言集成在一起 DDL DML DCL:權(quán)限控制、完整性控制等:

11、權(quán)限控制、完整性控制等 2、特點(diǎn):、特點(diǎn): 集合操作,一次操作集合操作,一次操作 可存取多個(gè)元組可存取多個(gè)元組 2.2 2.2 關(guān)系操作關(guān)系操作 12 3、關(guān)系數(shù)據(jù)語言的分類、關(guān)系數(shù)據(jù)語言的分類 關(guān)系數(shù)據(jù)語言關(guān)系數(shù)據(jù)語言 關(guān)系代數(shù)語言關(guān)系代數(shù)語言 關(guān)系演算語言關(guān)系演算語言 具有關(guān)系代數(shù)和具有關(guān)系代數(shù)和 關(guān)系演算雙重特關(guān)系演算雙重特 點(diǎn)的語言,如點(diǎn)的語言,如 SQL 元組關(guān)系演算語言元組關(guān)系演算語言 域關(guān)系演算語言域關(guān)系演算語言 這些語言的共同特點(diǎn)是,語言具有完備的表達(dá)能力,這些語言的共同特點(diǎn)是,語言具有完備的表達(dá)能力, 是非過程化的集合操作語言,功能強(qiáng),能夠嵌入到高級(jí)語是非過程化的集合操作語言

12、,功能強(qiáng),能夠嵌入到高級(jí)語 言。言。 2.2 2.2 關(guān)系操作關(guān)系操作 13 1、實(shí)體完整性實(shí)體完整性(Entity Integrity) 實(shí)體完整性保證表中記錄的唯一性,即在表中不允許出現(xiàn)實(shí)體完整性保證表中記錄的唯一性,即在表中不允許出現(xiàn) 重復(fù)記錄?;娟P(guān)系的所有主屬性不能取空值。重復(fù)記錄?;娟P(guān)系的所有主屬性不能取空值。 原因:基本關(guān)系原因:基本關(guān)系 實(shí)體集實(shí)體集 實(shí)體必可區(qū)分實(shí)體必可區(qū)分 (標(biāo)識(shí)符)(標(biāo)識(shí)符) 主關(guān)鍵字是主關(guān)鍵字是 唯一性標(biāo)識(shí),唯一性標(biāo)識(shí), 故不能空故不能空 2.3 2.3 關(guān)系的完整性關(guān)系的完整性 例:例: 學(xué)生(學(xué)生(學(xué)號(hào)學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡),姓名,性別,

13、專業(yè)號(hào),年齡) 專業(yè)(專業(yè)(專業(yè)號(hào)專業(yè)號(hào),專業(yè)名),專業(yè)名) 14 2、參照完整性參照完整性(Referential Integrity),也叫),也叫引用完整性引用完整性 若基本關(guān)系若基本關(guān)系R含有與另一個(gè)基本關(guān)系含有與另一個(gè)基本關(guān)系S的主關(guān)鍵字相對(duì)應(yīng)的主關(guān)鍵字相對(duì)應(yīng) 的屬性組的屬性組F(F稱為稱為R的外鍵或外部碼),則的外鍵或外部碼),則R中每個(gè)元組在中每個(gè)元組在F 上的值或?yàn)榭罩担虻扔谏系闹祷驗(yàn)榭罩?,或等于S中某個(gè)元組的主關(guān)鍵字值。中某個(gè)元組的主關(guān)鍵字值。 2.3 2.3 關(guān)系的完整性關(guān)系的完整性 例:例: 職工關(guān)系職工關(guān)系 EMP(ENO,ENAME,DNO) 部門關(guān)系部門關(guān)系 DE

14、PT(DNO,DNAME) DEPT的主鍵的主鍵 EMP的外鍵,的外鍵, 只能取空值只能取空值 或或DEPT中中 某關(guān)鍵字的某關(guān)鍵字的 值值 又如:又如: 學(xué)生(學(xué)生(學(xué)號(hào)學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡),姓名,性別,專業(yè)號(hào),年齡) 專業(yè)(專業(yè)(專業(yè)號(hào)專業(yè)號(hào),專業(yè)名),專業(yè)名) 15 3、用戶定義的完整性用戶定義的完整性 用戶定義的某一屬性值必須滿足的語義要求。用戶定義的某一屬性值必須滿足的語義要求。 一經(jīng)定義,一經(jīng)定義,DBMS會(huì)自動(dòng)檢查,從而不必在應(yīng)用程序會(huì)自動(dòng)檢查,從而不必在應(yīng)用程序 中作檢查。中作檢查。 2.3 2.3 關(guān)系的完整性關(guān)系的完整性 16 關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算關(guān)系

15、代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算 結(jié)果也為關(guān)系。其運(yùn)算按運(yùn)算符的不同結(jié)果也為關(guān)系。其運(yùn)算按運(yùn)算符的不同 可分為兩類??煞譃閮深悺?2.4 2.4 關(guān)系代數(shù)關(guān)系代數(shù) 一、傳統(tǒng)的集合運(yùn)算一、傳統(tǒng)的集合運(yùn)算 二、專門的關(guān)系運(yùn)算二、專門的關(guān)系運(yùn)算 17 3、差(、差(Except):): R S = t | tRtS 1、并(、并(Union):): R S = t | tRtS 2、交(、交(Intersection):):R S = t | tRtS 4、笛卡爾積(廣義):、笛卡爾積(廣義): R S = trts | tr R ts S 一、傳統(tǒng)的集合運(yùn)算一、傳統(tǒng)的集合運(yùn)算 說明:并、交、差運(yùn)算要求參

16、加運(yùn)算的兩個(gè)關(guān)系說明:并、交、差運(yùn)算要求參加運(yùn)算的兩個(gè)關(guān)系 具有相同的目具有相同的目(即兩個(gè)關(guān)系都有即兩個(gè)關(guān)系都有n個(gè)屬性個(gè)屬性),且相應(yīng),且相應(yīng) 的屬性取自的屬性取自同一個(gè)域同一個(gè)域。 18 SR SR c2b2a1 c1b2a2 CBA R S 例:對(duì)給定的關(guān)系例:對(duì)給定的關(guān)系R、S,求并、交、差及笛卡爾積。,求并、交、差及笛卡爾積。 19 SR 20 先引入幾個(gè)記號(hào)先引入幾個(gè)記號(hào) (1) R,t R,tAi 設(shè)關(guān)系模式為設(shè)關(guān)系模式為R(A1,A2,An) 它的一個(gè)它的一個(gè)關(guān)系關(guān)系設(shè)為設(shè)為R t R表示表示t是是R的一個(gè)的一個(gè)元組元組 tAi則表示元組則表示元組t中相應(yīng)于屬性中相應(yīng)于屬性A

17、i的一個(gè)的一個(gè)分量分量 二、專門的關(guān)系運(yùn)算二、專門的關(guān)系運(yùn)算 專門的關(guān)系運(yùn)算包括選擇、投影、連接、除等。專門的關(guān)系運(yùn)算包括選擇、投影、連接、除等。 21 (2) A,tA, 若若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik是是 A1,A2,An中的一部分,則中的一部分,則A稱為稱為屬性列屬性列或?qū)倩驅(qū)?性組。性組。 tA=(tAi1,tAi2,tAik)表示元組表示元組t在屬性列在屬性列A 上諸上諸分量的集合分量的集合。 則表示則表示A1,A2,An中去掉中去掉Ai1,Ai2, Aik后剩余的屬性組。后剩余的屬性組。 A A 22 (3) trts R為為n目關(guān)系,目關(guān)系,S為

18、為m目關(guān)系。目關(guān)系。 tr R,ts S, tr ts稱為元組的稱為元組的連接連接。 tr ts是一個(gè)是一個(gè)n + m列的元組,前列的元組,前n個(gè)分量為個(gè)分量為R中的一中的一 個(gè)個(gè)n元組,后元組,后m個(gè)分量為個(gè)分量為S中的一個(gè)中的一個(gè)m元組。元組。 23 (4)象集)象集Zx 給定一個(gè)關(guān)系給定一個(gè)關(guān)系R(X,Z),),X和和Z為屬性組。為屬性組。 當(dāng)當(dāng)tX=x時(shí),時(shí),x在在R中的中的象集象集(Images Set)為:)為: Zx=tZ|t R,tX=x 它表示它表示R中屬性組中屬性組X上值為上值為x的諸元組在的諸元組在Z上分量的上分量的 集合。集合。 24 nx1在在R中的象集中的象集 Zx

19、1 =Z1,Z2,Z3, nx2在在R中的象集中的象集 Zx2 =Z2,Z3, nx3在在R中的象集中的象集 Zx3=Z1,Z3 象集舉例象集舉例 25 1、選擇選擇(Selection),又稱限制(),又稱限制(Restriction) (R)= t|t RF(t)= 真真 F 在關(guān)系在關(guān)系R中選出滿足條件中選出滿足條件F的的諸元組諸元組形成一個(gè)新關(guān)系。形成一個(gè)新關(guān)系。 條件表達(dá)式條件表達(dá)式 從行的角度的運(yùn)算從行的角度的運(yùn)算 二、專門的關(guān)系運(yùn)算二、專門的關(guān)系運(yùn)算 26 學(xué)學(xué) 號(hào)號(hào) Sno 姓姓 名名 Sname 性性 別別 Ssex 年年 齡齡 Sage 所所 在在 系系 Sdept 201

20、1001李勇李勇男男20CS 2011002劉晨劉晨女女19IS 2011003王敏王敏女女18MA 2011004張立張立男男19IS (a) Student 例:設(shè)有一個(gè)學(xué)生例:設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系課程數(shù)據(jù)庫,包括學(xué)生關(guān)系 Student、課程關(guān)系、課程關(guān)系Course和選修關(guān)系和選修關(guān)系SC。 27 (b) Course 課程號(hào)課程號(hào)課程名課程名先行課先行課學(xué)分學(xué)分 CnoCnameCpnoCcredit 1數(shù)據(jù)庫數(shù)據(jù)庫54 2數(shù)學(xué)數(shù)學(xué) 2 3信息系統(tǒng)信息系統(tǒng)14 4操作系統(tǒng)操作系統(tǒng)63 5數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)74 6數(shù)據(jù)處理數(shù)據(jù)處理 2 7PASCAL語言語言64 例:設(shè)

21、有一個(gè)學(xué)生例:設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系課程數(shù)據(jù)庫,包括學(xué)生關(guān)系 Student、課程關(guān)系、課程關(guān)系Course和選修關(guān)系和選修關(guān)系SC。 28 (c) SC學(xué)生選課表學(xué)生選課表 學(xué)學(xué) 號(hào)號(hào)課課 程程 號(hào)號(hào)成成 績(jī)績(jī) SnoCnoGrade 2011001192 2011001285 2011001388 2011002290 2011002380 例:設(shè)有一個(gè)學(xué)生例:設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系課程數(shù)據(jù)庫,包括學(xué)生關(guān)系 Student、課程關(guān)系、課程關(guān)系Course和選修關(guān)系和選修關(guān)系SC。 29 (例(例1)查詢信息系()查詢信息系(IS系)全體學(xué)生系)全體學(xué)生 (

22、) SdeptIS Student SnoSnameSsexSageSdept 2011002劉晨劉晨女女19IS 2011004張立張立男男19IS 結(jié)果:結(jié)果: 30 (例(例2 2)查詢年齡小于)查詢年齡小于2020歲的學(xué)生歲的學(xué)生 20 () Sage Student SnoSnameSsexSageSdept 2011002劉晨劉晨女女19IS 2011003王敏王敏女女18MA 2011004張立張立男男19IS 結(jié)果結(jié)果 31 2、投影投影(Projection) 在在R中選出若干中選出若干屬性列屬性列組成一個(gè)新關(guān)系。組成一個(gè)新關(guān)系。 屬性組屬性組投影后若有重復(fù)行,則自動(dòng)保留一個(gè)

23、。投影后若有重復(fù)行,則自動(dòng)保留一個(gè)。 從列的角度的運(yùn)算從列的角度的運(yùn)算 二、專門的關(guān)系運(yùn)算二、專門的關(guān)系運(yùn)算 (R) A = tA | t R 投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元 組(避免重復(fù)行)。組(避免重復(fù)行)。 32 (例(例3) 查詢學(xué)生的姓名和所在系,查詢學(xué)生的姓名和所在系, 即求即求Student關(guān)系上學(xué)生姓名和所在系兩個(gè)屬性上的投關(guān)系上學(xué)生姓名和所在系兩個(gè)屬性上的投 影影 Sname, ,Sdept(Student) SnameSdept 李勇李勇CS 劉晨劉晨IS 王敏王敏MA 張立張立IS 結(jié)果:結(jié)

24、果: 33 (例(例4)查詢學(xué)生關(guān)系)查詢學(xué)生關(guān)系Student中都有哪些系中都有哪些系 Sdept(Student) Sdept CS IS MA 結(jié)果:結(jié)果: 刪除多余刪除多余 的元組的元組 34 3、連接連接(join),也稱為),也稱為連接連接 從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。 連接運(yùn)算從連接運(yùn)算從R R和和S S的廣義笛卡爾積的廣義笛卡爾積R RS S中選?。ㄖ羞x?。≧ R關(guān)系)在關(guān)系)在 A A屬性組上的值與(屬性組上的值與(S S關(guān)系)在關(guān)系)在B B屬性組上值滿足比較關(guān)系屬性組上值滿足比較關(guān)系 的元組。的元

25、組。 R中屬性組中屬性組 S中屬性組中屬性組 比較運(yùn)算符比較運(yùn)算符 二、專門的關(guān)系運(yùn)算二、專門的關(guān)系運(yùn)算 35 說明:說明:R S A B = (R S) A B 當(dāng)當(dāng) 為等號(hào)且為等號(hào)且A、B兩屬性相同時(shí),稱為兩屬性相同時(shí),稱為自然連接自然連接, 記作記作 R S 自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列 的角度進(jìn)行運(yùn)算的角度進(jìn)行運(yùn)算 為為“”的連接運(yùn)算稱為的連接運(yùn)算稱為等值連接等值連接 A B R S 一般連接從行的角度的運(yùn)算一般連接從行的角度的運(yùn)算 36 RS R CE S 例: 37 R R.B=S.BSRS 等值連接等值連接 38 R R

26、.B=S.BS RS 自然連接自然連接 39 n外連接外連接 n如果把舍棄的元組也保存在結(jié)果關(guān)系中,而在其他屬如果把舍棄的元組也保存在結(jié)果關(guān)系中,而在其他屬 性上填空值性上填空值(Null),這種連接就叫做外連接(,這種連接就叫做外連接(OUTER JOIN)。)。 n左外連接左外連接 n如果只把左邊關(guān)系如果只把左邊關(guān)系R中要舍棄的元組保留就叫做左外連中要舍棄的元組保留就叫做左外連 接接(LEFT OUTER JOIN或或LEFT JOIN) n右外連接右外連接 n如果只把右邊關(guān)系如果只把右邊關(guān)系S中要舍棄的元組保留就叫做右外連中要舍棄的元組保留就叫做右外連 接接(RIGHT OUTER JO

27、IN或或RIGHT JOIN)。 40 例:例: 41 n給定關(guān)系給定關(guān)系R (R (X X,Y Y) ) 和和S (S (Y Y,Z)Z),其中,其中X X,Y Y,Z Z為為 屬性組。屬性組。R R中的中的Y Y與與S S中的中的Y Y可以有不同的屬性名,可以有不同的屬性名, 但必須出自相同的域集。但必須出自相同的域集。 nR R與與S S的除運(yùn)算得到一個(gè)新的關(guān)系的除運(yùn)算得到一個(gè)新的關(guān)系P(X)P(X),P P是是R R中滿中滿 足下列條件的元組在足下列條件的元組在X X屬性列上的投影屬性列上的投影:元組在:元組在X X 上分量值上分量值x x的象集的象集Y Yx x包含包含S S在在Y

28、Y上投影的集合。上投影的集合。 其中其中Y Yx x為為x x在在R R中的象集,中的象集, | rrYX RStXtRSY r xtX 4、除除(Division) 二、專門的關(guān)系運(yùn)算二、專門的關(guān)系運(yùn)算 42 ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3 a4b6c6 a2b2c3 a1b2c1 BCD b1c2d1 b2c1d1 b2c3d2 RS A a1 R S 例:例: 43 在關(guān)系在關(guān)系R中,中,A可以取四個(gè)值可以取四個(gè)值a1,a2,a3,a4 a1的象集為的象集為 (b1,c2),(b2,c3),(b2,c1) a2的象集為的象集為 (b3,c7),(b2,c3

29、) a3的象集為的象集為 (b4,c6) a4的象集為的象集為 (b6,c6) S在在(B,C)上的投影為上的投影為 (b1,c2),(b2,c1),(b2,c3) 只有只有a1的象集包含了的象集包含了S在在(B,C)屬性組上的投影屬性組上的投影 所以所以 RS =a1 求解步驟:求解步驟: 44 ? 例:求至少選修例:求至少選修C1、C3課課 程的學(xué)生號(hào)碼。程的學(xué)生號(hào)碼。 設(shè)一臨時(shí)關(guān)系設(shè)一臨時(shí)關(guān)系K:C# C1 C3 關(guān)系代數(shù)表達(dá)式關(guān)系代數(shù)表達(dá)式 (SC) K = S#,C# S1, S# C# G S1 C1 A S1 C2 A S1 C3 A S1 C5 B S2 C1 B S2 C2

30、C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C1 B S4 C3 A SC: 按按S1分組分組 45 S1, 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 C1 B S4 C3 A 設(shè)一臨時(shí)關(guān)系設(shè)一臨時(shí)關(guān)系K:C# C1 C3 關(guān)系代數(shù)表達(dá)式關(guān)系代數(shù)表達(dá)式 (SC) K = S#,C# S# C# G SC: 按按S2分組分組 例:求至少選修例:求至少選修C1、C3課課 程的學(xué)生號(hào)碼。程的學(xué)生號(hào)碼。 46 S1 C1 A S1 C2 A S1 C

31、3 A S1 C5 B S2 C1 B S2 C2 C S2 C4 C S3 C2 B S3 C3 C S3 C4 B S4 C1 B S4 C3 A S1, 例:求至少選修例:求至少選修C1、C3課程課程 的學(xué)生號(hào)碼。的學(xué)生號(hào)碼。 設(shè)一臨時(shí)關(guān)系設(shè)一臨時(shí)關(guān)系K:C# C1 C3 關(guān)系代數(shù)表達(dá)式關(guān)系代數(shù)表達(dá)式 (SC) K = S#,C# S# C# G SC: 按按S3分組分組 47 S1, 例:求至少選修例:求至少選修C1、C3課課 程的學(xué)生號(hào)碼。程的學(xué)生號(hào)碼。 設(shè)一臨時(shí)關(guān)系設(shè)一臨時(shí)關(guān)系K:C# C1 C3 關(guān)系代數(shù)表達(dá)式關(guān)系代數(shù)表達(dá)式 (SC) K = S#,C# S# C# G SC:

32、按按S4分組分組 S1, S4 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 C1 B S4 C3 A 48 n除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算 R S 49 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 C2 C4 J C2 C5 K C4 SC: S# C# G S

33、1 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 C2 B S4 C5 D S5 C2 C S5 C3 B S5 C5 B S6 C1 A S6 C5 A 例:例: 求至少選修這樣一門求至少選修這樣一門 課的學(xué)生姓名,這門課的直課的學(xué)生姓名,這門課的直 接先行課是接先行課是C2。 先找出先行課為先找出先行課為C2的課程號(hào):的課程號(hào): (C),),記為PC PC# =C2 找選修該類課程的學(xué)生學(xué)號(hào):找選修該類課程的學(xué)生學(xué)號(hào): 記為PCS PC (SC) S#,C# 找出學(xué)生姓名:找出

34、學(xué)生姓名: PCS (S) S#,SN ( ) SN 50 最終的關(guān)系代數(shù)表達(dá)式最終的關(guān)系代數(shù)表達(dá)式: ( ) SN (S) S#,SN (C) PC# =C2 (SC) S#,C# PC PCS 說明:說明: 用關(guān)系代數(shù)表示查詢時(shí),若查詢涉及多個(gè)關(guān)系,需用連用關(guān)系代數(shù)表示查詢時(shí),若查詢涉及多個(gè)關(guān)系,需用連 接操作實(shí)現(xiàn);若查詢諸如接操作實(shí)現(xiàn);若查詢諸如“選修了全部課程選修了全部課程”的學(xué)生、的學(xué)生、“使使 用了全部零件用了全部零件”的工程等,需用除法操作實(shí)現(xiàn)。的工程等,需用除法操作實(shí)現(xiàn)。 51 例:查詢至少選修例:查詢至少選修1 1號(hào)課程和號(hào)課程和3 3號(hào)課程的學(xué)生學(xué)號(hào)。號(hào)課程的學(xué)生學(xué)號(hào)。 首先建立一個(gè)臨時(shí)關(guān)系首先建立一個(gè)臨時(shí)關(guān)系K K: , () Sno Cno SCK , () Sno Cno SCK 以下例題均以學(xué)生以下例題均以學(xué)生-課程數(shù)據(jù)庫為例,假設(shè)課程數(shù)據(jù)庫為例,假設(shè)Student(Sno,Sname,Ss

溫馨提示

  • 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)論