數(shù)據(jù)庫原理與應用課件第三章_第1頁
數(shù)據(jù)庫原理與應用課件第三章_第2頁
數(shù)據(jù)庫原理與應用課件第三章_第3頁
數(shù)據(jù)庫原理與應用課件第三章_第4頁
數(shù)據(jù)庫原理與應用課件第三章_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與應用數(shù)據(jù)庫原理與應用數(shù)據(jù)庫原理與應用第三章第三章 關(guān)系數(shù)據(jù)庫基本理論關(guān)系數(shù)據(jù)庫基本理論數(shù)據(jù)庫原理與應用關(guān)系數(shù)據(jù)庫的幾個概念關(guān)系數(shù)據(jù)庫的幾個概念l關(guān)系數(shù)據(jù)庫l關(guān)系數(shù)據(jù)模型l關(guān)系模式l關(guān)系數(shù)據(jù)庫原理與應用關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫l支持關(guān)系模型的數(shù)據(jù)庫。l在一個給定的應用領(lǐng)域中,所有實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。l關(guān)系數(shù)據(jù)庫應用數(shù)學方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。l80年代后,關(guān)系數(shù)據(jù)庫系統(tǒng)成為最重要、最流行的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫原理與應用關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫l系統(tǒng)而嚴格地提出關(guān)系模型的是美國ibm公司的e.f.codd1970年提出關(guān)系數(shù)據(jù)模型le.f.codd, “a rel

2、ational model of data for large shared data banks”, communication of the acm,1970之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念1972年提出了關(guān)系的第一、第二、第三范式1974年提出了關(guān)系的bc范式數(shù)據(jù)庫原理與應用關(guān)系模型關(guān)系模型l關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束數(shù)據(jù)庫原理與應用1. 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)l單一的數(shù)據(jù)結(jié)構(gòu)-關(guān)系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示l數(shù)據(jù)的邏輯結(jié)構(gòu)-二維表從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。 數(shù)據(jù)庫原理與應用2.關(guān)系操作集合關(guān)系操作集合l1)

3、常用的關(guān)系操作查詢l選擇、投影、連接、除、并、交、差、積數(shù)據(jù)更新l插入、刪除、修改查詢的表達能力是其中最主要的部分數(shù)據(jù)庫原理與應用關(guān)系操作集合(續(xù))關(guān)系操作集合(續(xù))l2) 關(guān)系操作的特點集合操作方式,即操作的對象和結(jié)果都是集合。l非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄l文件系統(tǒng)的數(shù)據(jù)操作方式數(shù)據(jù)庫原理與應用關(guān)系操作集合(續(xù))關(guān)系操作集合(續(xù))l3) 關(guān)系操作的語言關(guān)系數(shù)據(jù)語言可以分為三類關(guān)系數(shù)據(jù)語言可以分為三類 :關(guān)系代數(shù)、元組關(guān)關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算系演算和域關(guān)系演算。該三種語言在表達能力上是。該三種語言在表達能力上是完全等價的。完全等價的。 關(guān)系代數(shù)語言關(guān)系代數(shù)語言 例如例

4、如 isbl 元組關(guān)系演算語言元組關(guān)系演算語言 例如例如 aplha,quel關(guān)系數(shù)據(jù)語言關(guān)系數(shù)據(jù)語言 關(guān)系演算語言關(guān)系演算語言 域關(guān)系演算語言域關(guān)系演算語言 例如例如 qbe 具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言 例如例如 sql 關(guān)系語言是一種高度非過程化的語言,用戶不必請求關(guān)系語言是一種高度非過程化的語言,用戶不必請求dba為其建為其建立特殊的存取路徑,存取路徑的選擇由立特殊的存取路徑,存取路徑的選擇由rdbms的優(yōu)化機制來完成。的優(yōu)化機制來完成。 數(shù)據(jù)庫原理與應用3. 3. 關(guān)系的三類完整性約束關(guān)系的三類完整性約束l實體完整性通常由關(guān)系系統(tǒng)自動支持l

5、參照完整性早期系統(tǒng)不支持,目前大型系統(tǒng)能自動支持l用戶定義的完整性反映應用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束用戶定義后由系統(tǒng)支持數(shù)據(jù)庫原理與應用關(guān)系模式關(guān)系模式關(guān)系模式是對關(guān)系的描述元組集合的結(jié)構(gòu)屬性構(gòu)成屬性來自的域 屬性與域之間的映象關(guān)系元組語義以及完整性約束條件屬性間的數(shù)據(jù)依賴關(guān)系集合數(shù)據(jù)庫原理與應用關(guān)系模式的定義關(guān)系模式的定義關(guān)系模式可以形式化地表示為: r(u,d,dom,f) r 關(guān)系名u 組成該關(guān)系的屬性名集合d 屬性組u中屬性所來自的域dom 屬性向域的映象集合f 屬性間的數(shù)據(jù)依賴關(guān)系集合數(shù)據(jù)庫原理與應用定義關(guān)系模式定義關(guān)系模式 (續(xù)續(xù))關(guān)系模式通??梢院営洖?r

6、 (u) 或 r (a1,a2,an) r 關(guān)系名a1,a2,an 屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度數(shù)據(jù)庫原理與應用關(guān)系模式與關(guān)系關(guān)系模式與關(guān)系關(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)系往往統(tǒng)稱為關(guān)系,通過上下文加以區(qū)別數(shù)據(jù)庫原理與應用一些基本概念一些基本概念l域(domain)l元組、元數(shù)和基數(shù)l鍵l主屬性和非主屬性數(shù)據(jù)庫原理與應用 域(域(domain)l域是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)實數(shù)介于1和10之間的整數(shù)長度指定長度的字符串集合男,女介于某個取值

7、范圍的日期l同列有相同的域,不同列的域可以相同。數(shù)據(jù)庫原理與應用2.元組、元數(shù)和基數(shù)元組、元數(shù)和基數(shù)l元組關(guān)系表中的一行稱為一個元組。一個元組表示實體集中的一個實體。不能存在兩個相同的元組。l元數(shù)關(guān)系中屬性的個數(shù)也稱為關(guān)系的“目”或者“度”l基數(shù)元組的個數(shù)稱為基數(shù)。數(shù)據(jù)庫原理與應用3.鍵(鍵(key)l超鍵超鍵在一個關(guān)系中,能惟一標識元組的屬性或?qū)傩约Q為關(guān)系的超鍵。在一個關(guān)系中,能惟一標識元組的屬性或?qū)傩约Q為關(guān)系的超鍵。 l候選鍵候選鍵如果一個屬性集能惟一標識元組,且又不含有多余的屬性,那么這如果一個屬性集能惟一標識元組,且又不含有多余的屬性,那么這個屬性集稱為關(guān)系的候選鍵。個屬性集稱為關(guān)

8、系的候選鍵。 l主鍵主鍵若一個關(guān)系中有多個候選鍵,則選其中的一個為關(guān)系的主鍵。若一個關(guān)系中有多個候選鍵,則選其中的一個為關(guān)系的主鍵。l外鍵外鍵若一個關(guān)系若一個關(guān)系r中包含有另一個關(guān)系中包含有另一個關(guān)系s的主鍵所對應的屬性組的主鍵所對應的屬性組f,則稱,則稱f為為r的外鍵。并稱關(guān)系的外鍵。并稱關(guān)系s為參照關(guān)系,關(guān)系為參照關(guān)系,關(guān)系r為依賴關(guān)系。為依賴關(guān)系。參照關(guān)系和依賴關(guān)系不一定是不同關(guān)系。 數(shù)據(jù)庫原理與應用4.主屬性與非主屬性主屬性與非主屬性l主屬性包含在任何一個候選鍵中的屬性。l非主屬性不包含在任何一個候選鍵中的屬性。也叫非鍵屬性。數(shù)據(jù)庫原理與應用舉例舉例l學生、課程、學生與課程之間的關(guān)系模

9、式學生(學號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學分)選修(學號,課程號,成績)數(shù)據(jù)庫原理與應用一些基本表示方法一些基本表示方法l用前面的大寫字母a、b、c等表示單個屬性。l用后面的大寫字母w、x、y、z表示屬性集。l用小寫字母表示屬性值。l用t表示元組。l主鍵的屬性下面加下劃線。l外鍵的屬性下面加波浪線。 數(shù)據(jù)庫原理與應用基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì) 列是同質(zhì)的(homogeneous)每一列中的分量是同一類型的數(shù)據(jù),來自同一個域 不同的列可出自同一個域其中的每一列稱為一個屬性不同的屬性要給予不同的屬性名數(shù)據(jù)庫原理與應用基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 列的順序無所謂列的次

10、序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如oracle),增加新屬性時,永遠是插至最后一列。但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如foxpro仍然區(qū)分了屬性順序。數(shù)據(jù)庫原理與應用基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 任意兩個元組不能完全相同許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì)。例如:oracle,foxpro等都允許關(guān)系表中存在兩個完全相同的元組,除非用戶特別定義了相應的約束條件。數(shù)據(jù)庫原理與應用基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 行的順序無所謂行的次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如oracle),插入一個元組時永遠插至最后一行。但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如

11、foxpro仍然區(qū)分了元組的順序。數(shù)據(jù)庫原理與應用基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 分量必須取原子值每一個分量都必須是不可分的數(shù)據(jù)項。這是規(guī)范條件中最基本的一條。數(shù)據(jù)庫原理與應用關(guān)系的三類完整性約束關(guān)系的三類完整性約束l實體完整性l參照完整性l用戶定義的完整性數(shù)據(jù)庫原理與應用實體完整性實體完整性l實體完整性規(guī)則(entity integrity)若屬性a是基本關(guān)系r的主屬性,則屬性a不能取空值數(shù)據(jù)庫原理與應用實體完整性實體完整性(續(xù)續(xù))關(guān)系模型必須遵守實體完整性規(guī)則的原因(1) 實體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集或多對多聯(lián)系。(2) 現(xiàn)實世界中的實體

12、和實體間的聯(lián)系都是可區(qū)分的,即它們具有某種唯一性標識。(3) 相應地,關(guān)系模型中以主鍵作為唯一性標識。數(shù)據(jù)庫原理與應用實體完整性實體完整性(續(xù)續(xù))關(guān)系模型必須遵守實體完整性規(guī)則的原因(續(xù))(4) 主鍵中的屬性不能取空值。 空值就是“不知道”或“無意義”的值。 主鍵中的屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此這個規(guī)則稱為實體完整性。數(shù)據(jù)庫原理與應用實體完整性實體完整性(續(xù)續(xù))注意實體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值舉例選修(學號,課程號,成績) “學號、課程號”為主鍵,則兩個屬性都不能為空值。數(shù)據(jù)庫原理與應用參照完整性參照完整性1.

13、 關(guān)系間的引用2. 參照完整性規(guī)則數(shù)據(jù)庫原理與應用1. 關(guān)系間的引用關(guān)系間的引用在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用。例1 學生實體、專業(yè)實體以及專業(yè)與學生 間的一對多聯(lián)系 學生(學號,姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)號,專業(yè)名)數(shù)據(jù)庫原理與應用關(guān)系間的引用關(guān)系間的引用(續(xù)續(xù))例2 學生、課程、學生與課程之間的多對 多聯(lián)系 學生(學號,姓名,性別,專業(yè)號,年齡) 課程(課程號,課程名,學分) 選修(學號,課程號,成績)數(shù)據(jù)庫原理與應用關(guān)系間的引用關(guān)系間的引用(續(xù)續(xù))例3 學生實體及其內(nèi)部的領(lǐng)導聯(lián)系(一對多) 學生(學號,姓名,性別,專業(yè)號,年

14、齡,班長)學學號號姓姓名名性性別別專專業(yè)業(yè)號號年年齡齡班班長長801張張三三女女0119802802李李四四男男0120803王王五五男男0120802804趙趙六六女女0220805805錢錢七七男男0219數(shù)據(jù)庫原理與應用2. 參照完整性規(guī)則參照完整性規(guī)則若屬性(或?qū)傩越M)f是基本關(guān)系r的外鍵它與基本關(guān)系s的主鍵ks相對應(基本關(guān)系r和s不一定是不同的關(guān)系),則對于r中每個元組在f上的值必須為: 或者取空值(f的每個屬性值均為空值) 或者等于s中某個元組的主鍵值。數(shù)據(jù)庫原理與應用學學 號號姓姓 名名性性 別別專專 業(yè)業(yè) 號號年年 齡齡8 0 1張張 三三女女0 11 98 0 2李李 四四

15、男男0 12 08 0 3王王 五五男男0 12 08 0 4趙趙 六六女女0 22 08 0 5錢錢 七七男男0 21 9專專 業(yè)業(yè) 號號專專 業(yè)業(yè) 名名0 1信信 息息0 2數(shù)數(shù) 學學0 3計計 算算 機機學生(學生(學號學號,姓名,性別,專業(yè)號,年齡),姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)(專業(yè)號專業(yè)號,專業(yè)名),專業(yè)名)數(shù)據(jù)庫原理與應用 學學 號號課課 程程號號成成 績績801049280103788010285802038280204908030488學生學生學生選課學生選課課程課程數(shù)據(jù)庫原理與應用參照完整性規(guī)則參照完整性規(guī)則(續(xù)續(xù))學生關(guān)系中每個元組的“專業(yè)號”屬性只取下面兩類值:

16、(1)空值,表示尚未給該學生分配專業(yè)(2)非空值,這時該值必須是專業(yè)關(guān)系中某個元組的“專業(yè)號”值,表示該學生不可能分配到一個不存在的專業(yè)中數(shù)據(jù)庫原理與應用參照完整性規(guī)則參照完整性規(guī)則(續(xù)續(xù)) 選修(學號,課程號,成績)“學號”和“課程號”是選修關(guān)系中的主屬性按照實體完整性和參照完整性規(guī)則,它們只能取相應被參照關(guān)系中已經(jīng)存在的主鍵值數(shù)據(jù)庫原理與應用參照完整性規(guī)則參照完整性規(guī)則(續(xù)續(xù))學生(學號,姓名,性別,專業(yè)號,年齡,班長)“班長”屬性值可以取兩類值:(1)空值,表示該學生所在班級尚未選出班長,或該學生本人即是班長;(2)非空值,這時該值必須是本關(guān)系中某個元組的學號值數(shù)據(jù)庫原理與應用用戶定義的

17、完整性用戶定義的完整性l用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。l關(guān)系模型應提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應用程序承擔這一功能。數(shù)據(jù)庫原理與應用用戶定義的完整性用戶定義的完整性(續(xù)續(xù))例: 課程(課程號,課程名,學分)“課程號”屬性必須取唯一值非主屬性“課程名”也不能取空值“學分”屬性只能取值1,2,3,4數(shù)據(jù)庫原理與應用關(guān)系代數(shù)關(guān)系代數(shù)l 概述l 傳統(tǒng)的集合運算l 專門的關(guān)系運算數(shù)據(jù)庫原理與應用概述概述1. 關(guān)系代數(shù)2. 運算的三要素3. 關(guān)系代數(shù)運算的三個要素4. 關(guān)系代數(shù)運算的分類5.

18、表示記號數(shù)據(jù)庫原理與應用概述概述1.關(guān)系代數(shù)一種抽象的查詢語言用對關(guān)系的運算來表達查詢數(shù)據(jù)庫原理與應用概述概述(續(xù)續(xù))2關(guān)系代數(shù)運算的三個要素運算對象:關(guān)系運算結(jié)果:關(guān)系運算符:四類數(shù)據(jù)庫原理與應用概述概述(續(xù)續(xù))l集合運算符將關(guān)系看成元組的集合運算是從關(guān)系的“水平”方向即行的角度來進行l(wèi)專門的關(guān)系運算符不僅涉及行而且涉及列l(wèi)算術(shù)比較符輔助專門的關(guān)系運算符進行操作l邏輯運算符輔助專門的關(guān)系運算符進行操作數(shù)據(jù)庫原理與應用集合運算符-并差交廣義笛卡爾積比較運算符 大于大于等于小于小于等于等于不等于運算符含義運算符含義概述概述(續(xù)續(xù))數(shù)據(jù)庫原理與應用專門的關(guān)系運算符 選擇投影連接除邏輯運算符 非與或

19、運算符含義運算符含義概述概述(續(xù)續(xù))數(shù)據(jù)庫原理與應用概述概述(續(xù)續(xù))4關(guān)系代數(shù)運算的分類 傳統(tǒng)的集合運算 并、差、交、廣義笛卡爾積專門的關(guān)系運算 選擇、投影、連接、除數(shù)據(jù)庫原理與應用概述概述(續(xù)續(xù))5表示記號 (1) r,tr,tai 設關(guān)系模式為r(a1,a2,an)它的一個關(guān)系設為r。tr表示t是r的一個元組tai則表示元組t中相應于屬性ai的一個分量 數(shù)據(jù)庫原理與應用概述概述(續(xù)續(xù))(2) tr ts r為n目關(guān)系,s為m目關(guān)系。tr r,tss, tr ts稱為元組的連接。它是一個n + m列的元組,前n個分量為r中的一個n元組,后m個分量為s中的一個m元組。 數(shù)據(jù)庫原理與應用關(guān)系代數(shù)

20、關(guān)系代數(shù)l 概述l 傳統(tǒng)的集合運算l 專門的關(guān)系運算數(shù)據(jù)庫原理與應用傳統(tǒng)的集合運算傳統(tǒng)的集合運算l并l差l交l廣義笛卡爾積數(shù)據(jù)庫原理與應用1. 并(并(union)lr和s具有相同的目n(即兩個關(guān)系都有n個屬性)相應的屬性取自同一個域lrs 仍為n目關(guān)系,由屬于r或?qū)儆趕的元組組成 rs = t|t rt s 數(shù)據(jù)庫原理與應用并并(續(xù)續(xù))abca1b1c1a1b2c2a2b2c1abca1b1c1a1b2c2a1b3c2a2b2c1abca1b2c2a1b3c2a2b2c1rsrs= ?數(shù)據(jù)庫原理與應用2. 差(差(difference)lr和s具有相同的目n相應的屬性取自同一個域lr - s

21、 仍為n目關(guān)系,由屬于r而不屬于s的所有元組組成 r -s = t|trts 數(shù)據(jù)庫原理與應用差差(續(xù)續(xù))abca1b1c1a1b2c2a2b2c1abca1b1c1abca1b2c2a1b3c2a2b2c1rsr-s= ?數(shù)據(jù)庫原理與應用3. 交(交(intersection)lr和s具有相同的目n相應的屬性取自同一個域lrs仍為n目關(guān)系,由既屬于r又屬于s的元組組成 rs = t|t rt s 數(shù)據(jù)庫原理與應用交交 (續(xù)續(xù))abca1b1c1a1b2c2a2b2c1abca1b2c2a2b2c1abca1b2c2a1b3c2a2b2c1rsr s= ?數(shù)據(jù)庫原理與應用4. 廣義笛卡爾積廣義

22、笛卡爾積(extended cartesian product)lrn目關(guān)系,k1個元組lsm目關(guān)系,k2個元組lrs 列:(n+m)列的元組的集合l元組的前n列是關(guān)系r的一個元組l后m列是關(guān)系s的一個元組行:k1k2個元組lrs = tr ts |tr r tss 數(shù)據(jù)庫原理與應用廣義笛卡爾積廣義笛卡爾積 (續(xù)續(xù))abca1b1c1a1b2c2a2b2c1abca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1abca1b2c2a1b3c2a2b2c1rsr s =abca1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2

23、b2c1a1b2c2a1b3c2a2b2c1?數(shù)據(jù)庫原理與應用關(guān)系代數(shù)關(guān)系代數(shù)l概述l傳統(tǒng)的集合運算l專門的關(guān)系運算數(shù)據(jù)庫原理與應用專門的關(guān)系運算專門的關(guān)系運算l選擇l投影l(fā)連接l除數(shù)據(jù)庫原理與應用1. 選擇(選擇(selection) l1) 選擇又稱為限制(restriction)l2) 選擇運算符的含義在關(guān)系r中選擇滿足給定條件的諸元組 f(r) = t|trf(t)= 真f:選擇條件,是一個邏輯表達式,基本形式為: ( x1y1 ) ( x2y2 )l:比較運算符(,或)lx1,y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號來代替;l:邏輯運算符(或)l :表示任選項l:表示上

24、述格式可以重復下去數(shù)據(jù)庫原理與應用選擇(續(xù))選擇(續(xù))l3) 選擇運算是從行的角度進行的運算 l4) 舉例:設有一個學生-課程數(shù)據(jù)庫,包括學生關(guān)系student、課程關(guān)系course和選修關(guān)系sc。數(shù)據(jù)庫原理與應用選擇(續(xù))選擇(續(xù))學學 號號sno姓姓 名名sname性性 別別ssex年年 齡齡sage所所 在系在系sdept95001李勇李勇男男20cs95002劉晨劉晨女女19is95003王敏王敏女女18ma95004張立張立男男19is student例1例2數(shù)據(jù)庫原理與應用選擇(續(xù))選擇(續(xù))course課程號課程號課程名課程名先行課先行課學分學分cnocnamecpnoccred

25、it1數(shù)據(jù)庫數(shù)據(jù)庫542數(shù)學數(shù)學 23信息系統(tǒng)信息系統(tǒng)144操作系統(tǒng)操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理數(shù)據(jù)處理 27pascal語言語言64例9數(shù)據(jù)庫原理與應用選擇(續(xù))選擇(續(xù)) sc學學 號號課課 程程 號號成成 績績snocnograde9500119295001285950013889500229095002380例7例9數(shù)據(jù)庫原理與應用選擇(續(xù))選擇(續(xù))例1 查詢信息系(is系)全體學生 sdept = is (student)或 5 =is (student)結(jié)果: snosnamessexsagesdept95002劉晨劉晨女女19is95004張立張立男男19is數(shù)

26、據(jù)庫原理與應用選擇(續(xù))選擇(續(xù))例2 查詢年齡小于20歲的學生 sage 20(student) 或 4 20(student)結(jié)果: snosnamessexsagesdept95002劉晨劉晨女女19is95003王敏王敏女女18ma95004張立張立男男19is 數(shù)據(jù)庫原理與應用2. 投影(投影(projection) l1)投影運算符的含義從r中選擇出若干屬性列組成新的關(guān)系 a(r) = ta | t r a:r中的屬性列 數(shù)據(jù)庫原理與應用2. 投影(投影(projection) l2)投影操作主要是從列的角度進行運算l但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避

27、免重復行)數(shù)據(jù)庫原理與應用投影(續(xù))投影(續(xù))學學 號號sno姓姓 名名sname性性 別別ssex年年 齡齡sage所所 在系在系sdept95001李勇李勇男男20cs95002劉晨劉晨女女19is95003王敏王敏女女18ma95004張立張立男男19is student例4例3數(shù)據(jù)庫原理與應用投影(續(xù))投影(續(xù))l3) 舉例例3 查詢學生的姓名和所在系即求student關(guān)系上學生姓名和所在系兩個屬性上的投影 sname,sdept(student)或 2,5(student)結(jié)果:數(shù)據(jù)庫原理與應用投影(續(xù))投影(續(xù))snamesdept李勇李勇cs劉晨劉晨is王敏王敏ma張立張立is數(shù)

28、據(jù)庫原理與應用投影(續(xù))投影(續(xù))例4 查詢學生關(guān)系student中都有哪些系 sdept(student)結(jié)果:sdeptcsisma數(shù)據(jù)庫原理與應用3. 連接(連接(join) l1)連接也稱為連接l2)連接運算的含義從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 r s = | tr rts stratsb la和b:分別為r和s上度數(shù)相等且可比的屬性組l:比較運算符 連接運算從r和s的廣義笛卡爾積rs中選取(r關(guān)系)在a屬性組上的值與(s關(guān)系)在b屬性組上值滿足比較關(guān)系的元組。 abtr ts數(shù)據(jù)庫原理與應用 連接連接(續(xù)續(xù)) l3)兩類常用連接運算等值連接(equijoin) l

29、什么是等值連接為“”的連接運算稱為等值連接 l等值連接的含義從關(guān)系r與s的廣義笛卡爾積中選取a、b屬性值相等的那些元組,即等值連接為: r s = | tr rts stra = tsb a=btr ts數(shù)據(jù)庫原理與應用 連接連接(續(xù)續(xù)) 自然連接(natural join) l什么是自然連接自然連接是一種特殊的等值連接l兩個關(guān)系中進行比較的分量必須是相同的屬性組l在結(jié)果中把重復的屬性列去掉l自然連接的含義r和s具有相同的屬性組b r s = | tr rts strb = tsb tr ts數(shù)據(jù)庫原理與應用連接連接(續(xù)續(xù))l4)一般的連接操作是從行的角度進行運算。 abrsl自然連接還需要取

30、消重復列,所以是同時從行和列的角度進行運算。 數(shù)據(jù)庫原理與應用連接連接(續(xù)續(xù))l5)舉例 例5 abca1b15a1b26a2b38a2b412beb13b27b310b32b52rs數(shù)據(jù)庫原理與應用連接連接(續(xù)續(xù)) r s= ar.bcs.bea1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 ce?數(shù)據(jù)庫原理與應用連接連接(續(xù)續(xù)) 等值連接 r s =r.b=s.b ar.bcs.bea1b15b13a1b26b27a2b38b310a2b38b32?數(shù)據(jù)庫原理與應用連接連接(續(xù)續(xù)) 自然連接 r s = abcea1b153a1b267a2b3810a

31、2b382?數(shù)據(jù)庫原理與應用連接舉例連接舉例例9 查詢至少選修了一門其直接先行課為5號課程的課程的學生姓名。 sname(cpno=5(course sc student) sname(cpno=5(course) sc sno,sname(student)sname (sno (cpno=5 (course) sc) sno,sname (student) 學號學號sno姓姓 名名sname性性 別別ssex年年 齡齡sage所所 在系在系sdept95001李勇李勇男男20cs95002劉晨劉晨女女19is95003王敏王敏女女18ma95004張立張立男男19is student例9學學

32、 號號課課 程程 號號成成 績績snocnograde9500119295001285950013889500229095002380課程號課程號課程名課程名先行課先行課學分學分cnocnamecpnoccredit1數(shù)據(jù)庫數(shù)據(jù)庫542數(shù)學數(shù)學 23信息系統(tǒng)信息系統(tǒng)144操作系統(tǒng)操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理數(shù)據(jù)處理 27pascal語言語言64course sc數(shù)據(jù)庫原理與應用外連接(外連接(outer join)l兩個關(guān)系r和s在做自然連接時,選擇兩個關(guān)系在公共屬性上值相等的元組構(gòu)成新的關(guān)系。此時,關(guān)系r中某些元組有可能在s中不存在公共屬性上值相等的元組,從而造成r中這些元組

33、在操作時被舍棄了,同樣,s中某些元組也可能被舍棄。l如果把舍棄的元組也保存在結(jié)果關(guān)系中,而在其他屬性上填空值(null),那么這種連接就叫做外連接(outer join)。如果只把左邊關(guān)系r中要舍棄的元組保留就叫做左外連接(left outer join或left join),如果只把右邊關(guān)系s中要舍棄的元組保留就叫做右外連接(right outer join或right join)。 數(shù)據(jù)庫原理與應用abcea1a1a2a2a2nullb1b2b3b3b4b5 568812null37102null2abcea1a1a2a2a2b1b2b3b3b4 56881237102nullabcea1a1a2a2nullb1b2b3b3b5 5688null371022abca1a1a2a2b1b2b3b456812beb1b2b3b3b5371022關(guān)系關(guān)系r 關(guān)系關(guān)系s外連接外連接左外連接左外連接右外連接右外連接外連接的例子外連接的例子數(shù)據(jù)庫原理與應用象集象集z 給定一個關(guān)系r(x,z),x和z為屬性組。當tx=x時,x在r中的象集(images set)為: zx=tz|t r,tx=x 它表示r中屬性組x上值為x的諸元組在z上分量的集合。 數(shù)據(jù)庫原理與

溫馨提示

  • 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

提交評論