版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第2章章 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫概述2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3 關(guān)系的完整性關(guān)系的完整性2.4 關(guān)系代數(shù)關(guān)系代數(shù)2.5 關(guān)系演算關(guān)系演算2.6 關(guān)系數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)2.7 小結(jié)小結(jié)關(guān)系數(shù)據(jù)庫簡介關(guān)系數(shù)據(jù)庫簡介l系統(tǒng)而嚴格地提出關(guān)系模型的是美國系統(tǒng)而嚴格地提出關(guān)系模型的是美國IBM公司的公司的E.F.Codd 1970年提出關(guān)系數(shù)據(jù)模型年提出關(guān)系數(shù)據(jù)模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM
2、,1970 之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念 1972年提出了關(guān)系的第一、第二、第三范式年提出了關(guān)系的第一、第二、第三范式 1974年提出了關(guān)系的年提出了關(guān)系的BC范式范式關(guān)系數(shù)據(jù)庫簡介關(guān)系數(shù)據(jù)庫簡介l關(guān)系數(shù)據(jù)庫應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫中的數(shù)據(jù)中的數(shù)據(jù)l80年代后,關(guān)系數(shù)據(jù)庫系統(tǒng)成為最重要、年代后,關(guān)系數(shù)據(jù)庫系統(tǒng)成為最重要、最流行的數(shù)據(jù)庫系統(tǒng)最流行的數(shù)據(jù)庫系統(tǒng)關(guān)系數(shù)據(jù)庫簡介關(guān)系數(shù)據(jù)庫簡介l典型實驗系統(tǒng)典型實驗系統(tǒng) System R University INGRESl典型商用系統(tǒng)典型商用系統(tǒng) ORACLE SYBASE
3、DB2 SQL Server INFORMIX INGRES第第2章章 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫概述2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3 關(guān)系的完整性關(guān)系的完整性2.4 關(guān)系代數(shù)關(guān)系代數(shù)2.5 關(guān)系演算關(guān)系演算2.6 關(guān)系數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)2.7 小結(jié)小結(jié)2.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫概述l關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)庫系統(tǒng)l關(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)系完整性約束1. 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)l單一的數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)-關(guān)系關(guān)系
4、 現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示關(guān)系來表示l數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu)-二維表二維表 從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。一張二維表。 2. 關(guān)系操作關(guān)系操作l1) 常用的關(guān)系操作常用的關(guān)系操作l2) 關(guān)系操作的特點關(guān)系操作的特點l3) 關(guān)系數(shù)據(jù)語言的種類關(guān)系數(shù)據(jù)語言的種類l4) 關(guān)系數(shù)據(jù)語言的特點關(guān)系數(shù)據(jù)語言的特點關(guān)系操作關(guān)系操作 (續(xù))續(xù))l1) 常用的關(guān)系操作常用的關(guān)系操作 查詢查詢 選擇、投影、連接選擇、投影、連接、除、并、交、差、除、并、交、差 數(shù)據(jù)更新數(shù)據(jù)更新 插入、刪除、
5、修改插入、刪除、修改 查詢的表達能力是其中最主要的部分查詢的表達能力是其中最主要的部分關(guān)系操作(續(xù))關(guān)系操作(續(xù))l2) 關(guān)系操作的特點關(guān)系操作的特點 集合操作方式,即操作的對象和結(jié)果都是集集合操作方式,即操作的對象和結(jié)果都是集合。合。 非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄 文件系統(tǒng)的數(shù)據(jù)操作方式文件系統(tǒng)的數(shù)據(jù)操作方式關(guān)系操作(續(xù))關(guān)系操作(續(xù))l3) 關(guān)系數(shù)據(jù)語言的種類關(guān)系數(shù)據(jù)語言的種類 關(guān)系代數(shù)語言關(guān)系代數(shù)語言 用用對關(guān)系的運算對關(guān)系的運算來表達查詢要求來表達查詢要求 典型代表:典型代表:ISBL關(guān)系操作(續(xù))關(guān)系操作(續(xù))l關(guān)系數(shù)據(jù)語言的種類(
6、續(xù))關(guān)系數(shù)據(jù)語言的種類(續(xù)) 關(guān)系演算語言:用關(guān)系演算語言:用謂詞謂詞來表達查詢要求來表達查詢要求 元組關(guān)系演算語言元組關(guān)系演算語言 謂詞變元的基本對象是元組變量謂詞變元的基本對象是元組變量 典型代表:典型代表:APLHA, QUEL 域關(guān)系演算語言域關(guān)系演算語言 謂詞變元的基本對象是域變量謂詞變元的基本對象是域變量 典型代表:典型代表:QBE 具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言 典型代表:典型代表:SQL關(guān)系操作(續(xù))關(guān)系操作(續(xù))l4) 關(guān)系數(shù)據(jù)語言的特點關(guān)系數(shù)據(jù)語言的特點 關(guān)系語言是一種高度非過程化的語言關(guān)系語言是一種高度非過程化的語言 存取路徑的選
7、擇由存取路徑的選擇由DBMS的優(yōu)化機制來完成的優(yōu)化機制來完成 用戶不必用循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作用戶不必用循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作 能夠嵌入高級語言中使用能夠嵌入高級語言中使用 關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算三種關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算三種語言在表達能力上完全等價語言在表達能力上完全等價3. 3. 關(guān)系的三類完整性約束關(guān)系的三類完整性約束l實體完整性實體完整性 通常由關(guān)系系統(tǒng)自動支持通常由關(guān)系系統(tǒng)自動支持l參照完整性參照完整性 早期系統(tǒng)不支持,目前大型系統(tǒng)能自動支持早期系統(tǒng)不支持,目前大型系統(tǒng)能自動支持l用戶定義的完整性用戶定義的完整性 反映應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了
8、反映應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束具體領(lǐng)域中的語義約束 用戶定義后由系統(tǒng)支持用戶定義后由系統(tǒng)支持第第2章章 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫概述2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3 關(guān)系的完整性關(guān)系的完整性2.4 關(guān)系代數(shù)關(guān)系代數(shù)2.5 關(guān)系演算關(guān)系演算2.6 關(guān)系數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)2.7 小結(jié)小結(jié)2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)l關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上l關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念 關(guān)系關(guān)系 關(guān)系模式關(guān)系模式 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)l1.1.關(guān)系關(guān)系
9、l2.2.關(guān)系模式關(guān)系模式l3.3.關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫一、一、 關(guān)系關(guān)系l 域(域(Domain)l 2. 笛卡爾積(笛卡爾積(Cartesian Product)l 3. 關(guān)系(關(guān)系(Relation) 域(域(Domain)l域域是一組具有相同數(shù)據(jù)類型的值的集合。是一組具有相同數(shù)據(jù)類型的值的集合。 例例 整數(shù)整數(shù) 實數(shù)實數(shù) 指定長度的字符串集合指定長度的字符串集合 介于某個取值范圍的整數(shù)介于某個取值范圍的整數(shù) 男男,女女 介于某個取值范圍的日期介于某個取值范圍的日期2. 笛卡爾積(笛卡爾積(Cartesian Product)l1) 笛卡爾積笛卡爾積 給定一組域給定一組域D1,D2, ,
10、Dn,這些域中可,這些域中可以有相同的。以有相同的。D1,D2, ,Dn的的笛卡爾積笛卡爾積為:為: D1D2 Dn (d1, d2, , dn)di Di, i1, 2, , n 所有域的所有取值的一個組合所有域的所有取值的一個組合 不能重復(fù)不能重復(fù)笛卡爾積(續(xù)笛卡爾積(續(xù))例例 給出三個域:給出三個域: D1=SUPERVISOR = 張清玫,劉逸張清玫,劉逸 D2=SPECIALITY=計算機專業(yè),信息專業(yè)計算機專業(yè),信息專業(yè) D3=POSTGRADUATE=李勇,劉晨,王敏李勇,劉晨,王敏則則D1,D2,D3的笛卡爾積為:的笛卡爾積為:D1D2D3 (張清玫,計算機專業(yè),李勇張清玫,計
11、算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨張清玫,計算機專業(yè),劉晨), (張清玫,計算機專業(yè),王敏張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇張清玫,信息專業(yè),李勇), (張清玫,信息專業(yè),劉晨張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏張清玫,信息專業(yè),王敏), (劉逸,計算機專業(yè),李勇劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨劉逸,計算機專業(yè),劉晨), (劉逸,計算機專業(yè),王敏劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇劉逸,信息專業(yè),李勇), (劉逸,信息專業(yè),劉晨劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏劉逸,信息專業(yè),王敏) 笛卡爾積(續(xù)笛卡爾積(續(xù))
12、l2) 元組元組(Tuple) 笛卡爾積中每一個元素(笛卡爾積中每一個元素(d1,d2, ,dn)叫作一)叫作一個個n元組元組(n-tuple)或簡稱)或簡稱元組元組。 例例l3) 分量(分量(Component) 笛卡爾積元素(笛卡爾積元素(d1,d2, ,dn)中的每一個值)中的每一個值di叫作一個叫作一個分量分量。 例例笛卡爾積(續(xù)笛卡爾積(續(xù))l4) 基數(shù)(基數(shù)(Cardinal number) 若若Di(i1,2, ,n)為有限集,其基數(shù))為有限集,其基數(shù)為為mi(i1,2, ,n),則),則D1D2 Dn的基數(shù)的基數(shù)M為:為:在上例中,基數(shù):在上例中,基數(shù):22312,即,即D1D
13、2D3共有共有22312個元組個元組mMin1i笛卡爾積(續(xù)笛卡爾積(續(xù))l5)笛卡爾積的表示方法笛卡爾積的表示方法 笛卡爾積可表示為一個二維表。表中的每行笛卡爾積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域。對應(yīng)一個元組,表中的每列對應(yīng)一個域。在上例中,在上例中,12個元組可列成一張二維表個元組可列成一張二維表 表表 2.1 D1, D2, D3的的 笛笛 卡卡 爾爾 積積SUPE R VISO RSPE CIAL IT YPO ST G R A DU AT E張張 清清 玫玫計計 算算 機機 專專 業(yè)業(yè)李李 勇勇張張 清清 玫玫計計 算算 機機 專專 業(yè)業(yè)劉劉 晨晨張張
14、 清清 玫玫計計 算算 機機 專專 業(yè)業(yè)王王 敏敏張張 清清 玫玫信信 息息 專專 業(yè)業(yè)李李 勇勇張張 清清 玫玫信信 息息 專專 業(yè)業(yè)劉劉 晨晨張張 清清 玫玫信信 息息 專專 業(yè)業(yè)王王 敏敏劉劉 逸逸計計 算算 機機 專專 業(yè)業(yè)李李 勇勇劉劉 逸逸計計 算算 機機 專專 業(yè)業(yè)劉劉 晨晨劉劉 逸逸計計 算算 機機 專專 業(yè)業(yè)王王 敏敏劉劉 逸逸信信 息息 專專 業(yè)業(yè)李李 勇勇劉劉 逸逸信信 息息 專專 業(yè)業(yè)劉劉 晨晨劉劉 逸逸信信 息息 專專 業(yè)業(yè)王王 敏敏笛卡爾積(續(xù)笛卡爾積(續(xù))表表 2.1 D1, D2, D3的的 笛笛 卡卡 爾爾 積積SU P E R V ISO RSP E C I
15、A L IT YP O ST G R A D U A T E張張 清清 玫玫計計 算算 機機 專專 業(yè)業(yè)李李 勇勇張張 清清 玫玫計計 算算 機機 專專 業(yè)業(yè)劉劉 晨晨張張 清清 玫玫計計 算算 機機 專專 業(yè)業(yè)王王 敏敏張張 清清 玫玫信信 息息 專專 業(yè)業(yè)李李 勇勇張張 清清 玫玫信信 息息 專專 業(yè)業(yè)劉劉 晨晨張張 清清 玫玫信信 息息 專專 業(yè)業(yè)王王 敏敏劉劉 逸逸計計 算算 機機 專專 業(yè)業(yè)李李 勇勇劉劉 逸逸計計 算算 機機 專專 業(yè)業(yè)劉劉 晨晨劉劉 逸逸計計 算算 機機 專專 業(yè)業(yè)王王 敏敏劉劉 逸逸信信 息息 專專 業(yè)業(yè)李李 勇勇劉劉 逸逸信信 息息 專專 業(yè)業(yè)劉劉 晨晨劉劉
16、逸逸信信 息息 專專 業(yè)業(yè)王王 敏敏3. 關(guān)系關(guān)系(Relation)l1) 關(guān)系關(guān)系 D1D2 Dn的子集叫作在域的子集叫作在域D1, D2, , Dn上的上的關(guān)系關(guān)系,表示為,表示為 R(D1,D2, ,Dn) R:關(guān)系名關(guān)系名 n:關(guān)系的關(guān)系的目目或或度度(Degree)關(guān)系(續(xù))關(guān)系(續(xù))l1) 關(guān)系關(guān)系(續(xù)續(xù)) 注意注意 關(guān)系是笛卡爾積的有限子集。無限關(guān)系在數(shù)據(jù)庫關(guān)系是笛卡爾積的有限子集。無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中是無意義的。系統(tǒng)中是無意義的。 由于笛卡爾積不滿足交換律,即由于笛卡爾積不滿足交換律,即 (d1,d2, ,dn )(d2,d1, ,dn ) 但關(guān)系滿足交換律,即但關(guān)系滿足交
17、換律,即 (d1,d2 , ,di ,dj , ,dn)=(d1,d2 , , dj , di, ,dn) (i,j = 1,2,n) 解決方法:為關(guān)系的每個列附加一個屬性名以取解決方法:為關(guān)系的每個列附加一個屬性名以取消關(guān)系元組的有序性消關(guān)系元組的有序性關(guān)系(續(xù))關(guān)系(續(xù))例例 在表在表2.1 的笛卡爾積中取出有實際意義的元組的笛卡爾積中取出有實際意義的元組 來構(gòu)造關(guān)系來構(gòu)造關(guān)系關(guān)系:關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 關(guān)系名,屬性名關(guān)系名,屬性名假設(shè):假設(shè):導(dǎo)師與專業(yè):導(dǎo)師與專業(yè):1:1,導(dǎo)師與研究生:,導(dǎo)師與研究生:1:n于是:于是:SA
18、P關(guān)系可以包含三個元組關(guān)系可以包含三個元組 (張清玫,信息專業(yè),李勇張清玫,信息專業(yè),李勇), (張清玫,信息專業(yè),劉晨張清玫,信息專業(yè),劉晨), (劉逸,信息專業(yè),王敏劉逸,信息專業(yè),王敏) 關(guān)系(續(xù))關(guān)系(續(xù))l2) 元組元組 關(guān)系中的每個元素是關(guān)系中的關(guān)系中的每個元素是關(guān)系中的元組元組,通常用,通常用 t 表示。表示。l3) 單元關(guān)系與二元關(guān)系單元關(guān)系與二元關(guān)系 當當n=1時,稱該關(guān)系為時,稱該關(guān)系為單元單元關(guān)系關(guān)系(Unary relation)。)。 當當n=2時,稱該關(guān)系為時,稱該關(guān)系為二元二元關(guān)系關(guān)系(Binary relation)。)。關(guān)系(續(xù))關(guān)系(續(xù))l4) 關(guān)系的表示關(guān)
19、系的表示 關(guān)系也是一個二維表,表的每行對應(yīng)一個元關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。組,表的每列對應(yīng)一個域。表表2.2 SAP關(guān)關(guān) 系系SUPERVISORSPECIALITYPOSTGRADUATE張張清清玫玫信信息息專專業(yè)業(yè)李李勇勇張張清清玫玫信信息息專專業(yè)業(yè)劉劉晨晨劉劉逸逸信信息息專專業(yè)業(yè)王王敏敏關(guān)系(續(xù))關(guān)系(續(xù))l5) 屬性屬性 關(guān)系中不同列可以對應(yīng)相同的域,為了加以關(guān)系中不同列可以對應(yīng)相同的域,為了加以區(qū)分,必須對每列起一個名字,稱為區(qū)分,必須對每列起一個名字,稱為屬性屬性(Attribute)。)。 n目關(guān)系必有目關(guān)系必有n個屬性。個屬性。關(guān)系(續(xù))關(guān)系
20、(續(xù))l6) 碼碼 候選碼候選碼 若關(guān)系中的某一屬性組的值能唯一地標識一個元若關(guān)系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為組,則稱該屬性組為候選碼候選碼(Candidate key)。)。 候選碼的諸屬性稱為候選碼的諸屬性稱為主屬性主屬性(Prime attribute)。)。 不包含在任何侯選碼中的屬性稱為非碼屬性不包含在任何侯選碼中的屬性稱為非碼屬性(Non-key attribute)。)。 在最簡單的情況下,候選碼只包含一個屬性。在在最簡單的情況下,候選碼只包含一個屬性。在最極端的情況下,關(guān)系模式的所有屬性組是這個最極端的情況下,關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼
21、,稱為關(guān)系模式的候選碼,稱為全碼全碼(All-key)。)。關(guān)系(續(xù))關(guān)系(續(xù))l碼碼(續(xù)續(xù)) 主碼主碼 若一個關(guān)系有多個候選碼,則選定其中一個為若一個關(guān)系有多個候選碼,則選定其中一個為主主碼碼(Primary key)。)。關(guān)系(續(xù))關(guān)系(續(xù))l7) 三類關(guān)系三類關(guān)系 基本關(guān)系(基本表或基表)基本關(guān)系(基本表或基表) 實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示 查詢表查詢表 查詢結(jié)果對應(yīng)的表查詢結(jié)果對應(yīng)的表 視圖表視圖表 由基本表或其他視圖表導(dǎo)出的表,是虛表,不對由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)應(yīng)實際存儲的數(shù)據(jù)關(guān)系(續(xù))關(guān)系(續(xù))l
22、8) 基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì) 列是同質(zhì)的(列是同質(zhì)的(Homogeneous) 每一列中的分量是同一類型的數(shù)據(jù),來自同一個每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。域。 不同的列可出自同一個域不同的列可出自同一個域 其中的每一列稱為一個屬性其中的每一列稱為一個屬性 不同的屬性要給予不同的屬性名不同的屬性要給予不同的屬性名關(guān)系(續(xù))關(guān)系(續(xù))例例:上例中也可以只給出兩個域:上例中也可以只給出兩個域:人(人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏張清玫,劉逸,李勇,劉晨,王敏專業(yè)(專業(yè)(SPECIALITY)=計算機專業(yè),信息專業(yè)計算機專業(yè),信息專業(yè)SAP關(guān)系的導(dǎo)師屬性和研究生屬
23、性都從關(guān)系的導(dǎo)師屬性和研究生屬性都從PERSON域中取值。域中取值。為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能直接使用域名。直接使用域名。例如定義導(dǎo)師屬性名為例如定義導(dǎo)師屬性名為SUPERVISOR-PERSON(或(或SUPERVISOR) 研究生屬性名為研究生屬性名為POSTGRADUATE-PERSON(或(或POSTGRADUATE)SAP(SUPERVISOR-PERSON, SPECIALITY , POSTGRADUATE-PERSON)關(guān)系(續(xù))關(guān)系(續(xù))l基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 列的順序無所謂列的順序
24、無所謂 列的次序可以任意交換列的次序可以任意交換 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如如ORACLE),增加,增加新屬性時,永遠是插至最后一列新屬性時,永遠是插至最后一列 但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如例如FoxPro仍然區(qū)分了屬性順序仍然區(qū)分了屬性順序關(guān)系(續(xù))關(guān)系(續(xù))l基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 任意兩個元組不能完全相同任意兩個元組不能完全相同 由笛卡爾積的性質(zhì)決定由笛卡爾積的性質(zhì)決定 但許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì)。例如但許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì)。例如Oracle,F(xiàn)oxPro等都允許關(guān)
25、系表中存在兩個完全等都允許關(guān)系表中存在兩個完全相同的元組,除非用戶特別定義了相應(yīng)的約束條相同的元組,除非用戶特別定義了相應(yīng)的約束條件。件。關(guān)系(續(xù))關(guān)系(續(xù))l基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(續(xù)續(xù)) 行的順序無所謂行的順序無所謂 行的次序可以任意交換行的次序可以任意交換 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如如ORACLE),插入,插入一個元組時永遠插至最后一行一個元組時永遠插至最后一行 但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如例如FoxPro仍然區(qū)分了元組的順序仍然區(qū)分了元組的順序關(guān)系(續(xù))關(guān)系(續(xù))l基本關(guān)系的性質(zhì)基本關(guān)系的性質(zhì)(
26、續(xù)續(xù)) 分量必須取原子值分量必須取原子值 每一個分量都必須是不可分的數(shù)據(jù)項。這是規(guī)每一個分量都必須是不可分的數(shù)據(jù)項。這是規(guī) 范條件中最基本的一條范條件中最基本的一條表表2.3 非非 規(guī)規(guī) 范范 化化 關(guān)關(guān) 系系POSTGRADUATESUPERVISORSPECIALITYPG1PG2張張清清玫玫信信息息專專業(yè)業(yè)李李勇勇劉劉晨晨劉劉逸逸信信息息專專業(yè)業(yè)王王敏敏二、二、 關(guān)系模式關(guān)系模式l1什么是關(guān)系模式什么是關(guān)系模式l2定義關(guān)系模式定義關(guān)系模式l3. 關(guān)系模式與關(guān)系關(guān)系模式與關(guān)系1什么是關(guān)系模式什么是關(guān)系模式l關(guān)系模式(關(guān)系模式(Relation Schema)是型,關(guān)系是值)是型,關(guān)系是值l
27、關(guān)系模式是對關(guān)系的描述關(guān)系模式是對關(guān)系的描述 元組集合的結(jié)構(gòu)元組集合的結(jié)構(gòu) 屬性構(gòu)成屬性構(gòu)成 屬性來自的域?qū)傩詠碜缘挠?屬性與域之間的映象關(guān)系屬性與域之間的映象關(guān)系 元組語義元組語義 完整性約束條件完整性約束條件 屬性間的數(shù)據(jù)依賴關(guān)系集合屬性間的數(shù)據(jù)依賴關(guān)系集合2定義關(guān)系模式定義關(guān)系模式l關(guān)系模式可以形式化地表示為:關(guān)系模式可以形式化地表示為: R(U,D,dom,F(xiàn)) R 關(guān)系名關(guān)系名U 組成該關(guān)系的屬性名集合組成該關(guān)系的屬性名集合D 屬性組屬性組U中屬性所來自的域中屬性所來自的域dom 屬性向域的映象集合屬性向域的映象集合F 屬性間的數(shù)據(jù)依賴關(guān)系集合。屬性間的數(shù)據(jù)依賴關(guān)系集合。定義關(guān)系模式
28、定義關(guān)系模式 (續(xù)續(xù))例例 在上面例子中,由于導(dǎo)師和研究生出自同一在上面例子中,由于導(dǎo)師和研究生出自同一個域個域人,所以要取不同的屬性名,并在人,所以要取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分模式中定義屬性向域的映象,即說明它們分別出自哪個域,如:別出自哪個域,如: dom(SUPERVISOR-PERSON)= dom(POSTGRADUATE-PERSON)=PERSON定義關(guān)系模式定義關(guān)系模式 (續(xù)續(xù))l關(guān)系模式通??梢院営洖殛P(guān)系模式通??梢院営洖?R (U) 或或 R (A1,A2,An)R 關(guān)系名關(guān)系名A1,A2,An 屬性名屬性名注:域名及屬性向域的映象常常直接說
29、明為屬注:域名及屬性向域的映象常常直接說明為屬 性的類型、長度。性的類型、長度。3. 關(guān)系模式與關(guān)系關(guān)系模式與關(guān)系l關(guān)系模式關(guān)系模式 對關(guān)系的描述對關(guān)系的描述 靜態(tài)的、穩(wěn)定的靜態(tài)的、穩(wěn)定的l關(guān)系關(guān)系 關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容 動態(tài)的、隨時間不斷變化的動態(tài)的、隨時間不斷變化的l關(guān)系模式和關(guān)系往往統(tǒng)稱為關(guān)系,通過關(guān)系模式和關(guān)系往往統(tǒng)稱為關(guān)系,通過上下文加以區(qū)別。上下文加以區(qū)別。三、關(guān)系數(shù)據(jù)庫三、關(guān)系數(shù)據(jù)庫l1. 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫l2. 關(guān)系數(shù)據(jù)庫的型與值關(guān)系數(shù)據(jù)庫的型與值1. 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫l在一個給定的應(yīng)用領(lǐng)域中,所有實體及在一個給定的應(yīng)用領(lǐng)域中,所
30、有實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。系數(shù)據(jù)庫。2. 關(guān)系數(shù)據(jù)庫的型與值關(guān)系數(shù)據(jù)庫的型與值l關(guān)系數(shù)據(jù)庫也有型和值之分關(guān)系數(shù)據(jù)庫也有型和值之分l關(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)系模式l關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,通常簡稱為關(guān)時刻對應(yīng)的關(guān)系的集合,通常簡稱為關(guān)系數(shù)據(jù)庫系數(shù)據(jù)庫第第2章章 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫
31、概述2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3 關(guān)系的完整性關(guān)系的完整性2.4 關(guān)系代數(shù)關(guān)系代數(shù)2.5 關(guān)系演算關(guān)系演算2.6 關(guān)系數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)2.7 小結(jié)小結(jié)2.3 關(guān)系的完整性關(guān)系的完整性l關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。件。l關(guān)系模型中三類完整性約束:關(guān)系模型中三類完整性約束: 實體完整性實體完整性 參照完整性參照完整性 用戶定義的完整性用戶定義的完整性l實體完整性和參照完整性是關(guān)系模型必須滿足實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個的完整性約束條件,被稱作是關(guān)系的兩個不變不變性性,應(yīng)
32、該由關(guān)系系統(tǒng)自動支持。,應(yīng)該由關(guān)系系統(tǒng)自動支持。關(guān)系的完整性關(guān)系的完整性(續(xù)續(xù))l1. 實體完整性實體完整性l2. 參照完整性參照完整性l3. 用戶定義的完整性用戶定義的完整性一、一、 實體完整性實體完整性l實體完整性規(guī)則(實體完整性規(guī)則(Entity Integrity) 若屬性若屬性A是基本關(guān)系是基本關(guān)系R的主屬性,則屬性的主屬性,則屬性A不不能取空值。能取空值。例例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE屬性為主碼(假設(shè)研究生不會重屬性為主碼(假設(shè)研究生不會重名),則其不能取空值。名),則其不能取空值。實體完整性實體完整性(續(xù)
33、續(xù))l關(guān)系模型必須遵守實體完整性規(guī)則的原因關(guān)系模型必須遵守實體完整性規(guī)則的原因 (1) 實體完整性規(guī)則是針對基本關(guān)系而言的。實體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn)實世界的一個實體集一個基本表通常對應(yīng)現(xiàn)實世界的一個實體集或多對多聯(lián)系?;蚨鄬Χ嗦?lián)系。 (2) 現(xiàn)實世界中的實體和實體間的聯(lián)系都是現(xiàn)實世界中的實體和實體間的聯(lián)系都是可區(qū)分的,即它們具有某種唯一性標識??蓞^(qū)分的,即它們具有某種唯一性標識。 (3) 相應(yīng)地,關(guān)系模型中以候選碼作為唯一相應(yīng)地,關(guān)系模型中以候選碼作為唯一性標識。性標識。實體完整性實體完整性(續(xù)續(xù))l關(guān)系模型必須遵守實體完整性規(guī)則的原因關(guān)系模型必須遵守實體完整性
34、規(guī)則的原因(續(xù)續(xù)) (4) 候選碼中的屬性即主屬性不能取空值。候選碼中的屬性即主屬性不能取空值。所謂空值就是所謂空值就是“不知道不知道”或或“無意義無意義”的值。的值。如果主屬性取空值,就說明存在某個不可標如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此這個規(guī)則稱為實體完整點相矛盾,因此這個規(guī)則稱為實體完整性。性。實體完整性實體完整性(續(xù)續(xù))l注意注意 實體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性實體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空都不能取空值,而不僅是主碼整體不能取空值。值
35、。例:例: 選修(學(xué)號,課程號,成績)選修(學(xué)號,課程號,成績) “學(xué)號、課程號學(xué)號、課程號”為主碼,為主碼, 則學(xué)號和課程號兩個屬性都不能取空值則學(xué)號和課程號兩個屬性都不能取空值二、二、 參照完整性參照完整性l1. 關(guān)系間的引用關(guān)系間的引用l2. 外碼外碼l3. 參照完整性規(guī)則參照完整性規(guī)則1. 關(guān)系間的引用關(guān)系間的引用l在關(guān)系模型中實體及實體間的聯(lián)系都是在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用。與關(guān)系間的引用。例例1 學(xué)生實體、專業(yè)實體以及專業(yè)與學(xué)生間學(xué)生實體、專業(yè)實體以及專業(yè)與學(xué)生間的一對多聯(lián)系的一對多聯(lián)系 學(xué)生
36、(學(xué)生(學(xué)號學(xué)號,姓名,性別,專業(yè)號,年齡),姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)(專業(yè)號專業(yè)號,專業(yè)名),專業(yè)名)學(xué)學(xué) 號號姓姓 名名性性 別別專專 業(yè)業(yè) 號號年年 齡齡8 0 1張張 三三女女0 11 98 0 2李李 四四男男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ù) 學(xué)學(xué)0 3計計 算算 機機學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,專業(yè)號,年齡),姓名,性別,專業(yè)號,年齡) 專業(yè)(專業(yè)(專業(yè)號專業(yè)號,專業(yè)名),專業(yè)名)關(guān)系間的引用關(guān)系間的引用(續(xù)續(xù))例例2
37、 學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系 學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,專業(yè)號,年齡),姓名,性別,專業(yè)號,年齡) 課程(課程(課程號課程號,課程名,學(xué)分),課程名,學(xué)分) 選修(選修(學(xué)號學(xué)號,課程號課程號,成績),成績) 課課程程號號課課程程名名學(xué)學(xué)分分01數(shù)數(shù)據(jù)據(jù)庫庫402數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)403編編譯譯404PASCAL2學(xué)學(xué) 號號姓姓 名名性性 別別專專 業(yè)業(yè) 號號年年 齡齡8 0 1張張 三三女女0 11 98 0 2李李 四四男男0 12 08 0 3王王 五五男男0 12 08 0 4趙趙 六六女女0 22 08 0 5錢錢 七七男男0
38、21 9學(xué)學(xué) 號號課課 程程號號成成 績績801049280103788010285802038280204908030488學(xué)生學(xué)生學(xué)生選課學(xué)生選課課程課程關(guān)系間的引用關(guān)系間的引用(續(xù)續(xù))例例3 學(xué)生實體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系學(xué)生實體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系(一對多一對多) 學(xué)生(學(xué)生(學(xué)號學(xué)號,姓名,性別,專業(yè)號,年齡,班長),姓名,性別,專業(yè)號,年齡,班長)學(xué)學(xué)號號姓姓名名性性別別專專業(yè)業(yè)號號年年齡齡班班長長801張張三三女女0119802802李李四四男男0120803王王五五男男0120802804趙趙六六女女0220805805錢錢七七男男02192外碼外碼l外碼外碼 設(shè)設(shè)F是基本關(guān)系是基本
39、關(guān)系R的一個或一組屬性,的一個或一組屬性, 但不但不是關(guān)系是關(guān)系R的碼。如果的碼。如果F與基本關(guān)系與基本關(guān)系S的主碼的主碼Ks相 對 應(yīng) , 則 稱相 對 應(yīng) , 則 稱 F 是 基 本 關(guān) 系是 基 本 關(guān) 系 R 的的 外 碼外 碼(Foreign Key) 基本關(guān)系基本關(guān)系R稱稱為為參照關(guān)系參照關(guān)系(Referencing Relation) 基本關(guān)系基本關(guān)系S稱稱為為被參照關(guān)系被參照關(guān)系(Referenced Relation)或)或目標關(guān)系目標關(guān)系(Target Relation)。)。外碼外碼(續(xù)續(xù))l說明說明 關(guān)系關(guān)系R和和S不一定是不同的關(guān)系。不一定是不同的關(guān)系。 目標關(guān)系目標
40、關(guān)系S的主碼的主碼Ks和參照關(guān)系的外碼和參照關(guān)系的外碼F必必須定義在同一個(或一組)域上。須定義在同一個(或一組)域上。 外碼并不一定要與相應(yīng)的主碼同名。外碼并不一定要與相應(yīng)的主碼同名。 當外碼與相應(yīng)的主碼屬于不同關(guān)系時,往往當外碼與相應(yīng)的主碼屬于不同關(guān)系時,往往取相同的名字,以便于識別。取相同的名字,以便于識別。l例例3. 參照完整性規(guī)則參照完整性規(guī)則l參照完整性規(guī)則就是定義外碼與主碼之參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。間的引用規(guī)則。l參照完整性規(guī)則參照完整性規(guī)則 若屬性(或?qū)傩越M)若屬性(或?qū)傩越M)F是基本關(guān)系是基本關(guān)系R的外碼,它與基的外碼,它與基本關(guān)系本關(guān)系S的主碼的主碼
41、Ks相對應(yīng)(基本關(guān)系相對應(yīng)(基本關(guān)系R和和S不一定是不一定是不同的關(guān)系),則對于不同的關(guān)系),則對于R中每個元組在中每個元組在F上的值必須上的值必須為:為: 或者取空值(或者取空值(F的每個屬性值均為空值)的每個屬性值均為空值) 或者等于或者等于S中某個元組的主碼值。中某個元組的主碼值。參照完整性規(guī)則參照完整性規(guī)則(續(xù)續(xù))l例例例例1學(xué)生關(guān)系中每個元組的學(xué)生關(guān)系中每個元組的“專業(yè)號專業(yè)號”屬性只能屬性只能取下面兩類值:取下面兩類值:(1)空值,表示尚未給該學(xué)生分配專業(yè);)空值,表示尚未給該學(xué)生分配專業(yè);(2)非空值,這時該值必須是專業(yè)關(guān)系中某)非空值,這時該值必須是專業(yè)關(guān)系中某個元組的個元組的
42、“專業(yè)號專業(yè)號”值,表示該學(xué)生不可能值,表示該學(xué)生不可能分配到一個不存在的專業(yè)中。分配到一個不存在的專業(yè)中。參照完整性規(guī)則參照完整性規(guī)則(續(xù)續(xù))例例2 由于由于“學(xué)號學(xué)號”和和“課程號課程號”是選修關(guān)系中的是選修關(guān)系中的主屬性,按照實體完整性和參照完整性規(guī)則,主屬性,按照實體完整性和參照完整性規(guī)則,它們只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主它們只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值。碼值。參照完整性規(guī)則參照完整性規(guī)則(續(xù)續(xù))例例3 “班長班長”屬性值可以取兩類值:屬性值可以取兩類值:(1)空值,表示該學(xué)生所在班級尚未選出班)空值,表示該學(xué)生所在班級尚未選出班長,或該學(xué)生本人即是班長;長,或該學(xué)生本
43、人即是班長;(2)非空值,這時該值必須是本關(guān)系中某個)非空值,這時該值必須是本關(guān)系中某個元組的學(xué)號值。元組的學(xué)號值。三、三、 用戶定義的完整性用戶定義的完整性l用戶定義的完整性是針對某一具體關(guān)系用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。所涉及的數(shù)據(jù)必須滿足的語義要求。l關(guān)系模型應(yīng)提供定義和檢驗這類完整性關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。它們,而不要由應(yīng)用程序承擔(dān)這一功能。用戶定義的完整性用戶定義的完整
44、性(續(xù)續(xù))例例 課程課程(課程號課程號,課程名,學(xué)分,課程名,學(xué)分) “課程名課程名”屬性必須取唯一值屬性必須取唯一值 非主屬性非主屬性“課程名課程名”也不能取空值也不能取空值 “學(xué)分學(xué)分”屬性只能取值屬性只能取值1,2,3,4第第2章章 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫2.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫概述2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3 關(guān)系的完整性關(guān)系的完整性2.4 關(guān)系代數(shù)關(guān)系代數(shù)2.5 關(guān)系演算關(guān)系演算2.6 關(guān)系數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)2.7 小結(jié)小結(jié)關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))l1. 關(guān)系代數(shù)關(guān)系代數(shù)l2. 運算的三要素運算的三要素l3. 關(guān)系代數(shù)運算的三個要素關(guān)系代數(shù)運算的三個
45、要素l4. 關(guān)系代數(shù)運算的分類關(guān)系代數(shù)運算的分類l5. 表示記號表示記號關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))l1.關(guān)系代數(shù)關(guān)系代數(shù) 一種抽象的查詢語言一種抽象的查詢語言 用對關(guān)系的運算來表達查詢用對關(guān)系的運算來表達查詢關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))l2運算的三要素運算的三要素 運算對象運算對象 運算符運算符 運算結(jié)果運算結(jié)果關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))l3關(guān)系代數(shù)運算的三個要素關(guān)系代數(shù)運算的三個要素 運算對象:關(guān)系運算對象:關(guān)系 運算結(jié)果:關(guān)系運算結(jié)果:關(guān)系 運算符:四類運算符:四類關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù)) 運算符(續(xù))運算符(續(xù)) 集合運算符集合運算符 將關(guān)系看成元組的集合將關(guān)系看成元組的集合 從
46、關(guān)系的從關(guān)系的“水平水平”方向即行的角度來進行運方向即行的角度來進行運算算 專門的關(guān)系運算符專門的關(guān)系運算符 不僅涉及行而且涉及列不僅涉及行而且涉及列 算術(shù)比較符算術(shù)比較符 輔助專門的關(guān)系運算符進行操作輔助專門的關(guān)系運算符進行操作 邏輯運算符邏輯運算符 輔助專門的關(guān)系運算符進行操作輔助專門的關(guān)系運算符進行操作集集合合運運算算符符-并并差差交交廣義笛廣義笛卡爾積卡爾積比比較較運運算算符符 大于大于大于等于大于等于小于小于小于等于小于等于等于等于不等于不等于運算符運算符含義含義運算符運算符含義含義表表2.4 關(guān)系代數(shù)運算符關(guān)系代數(shù)運算符 關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))專 門 的專 門 的關(guān)系關(guān)系運
47、算 符運 算 符 選擇選擇投影投影連接連接除除邏 輯 運邏 輯 運算符算符 非非與與或或運算符運算符含義含義運算符運算符含義含義表表2.4 關(guān)系代數(shù)運算符(續(xù))關(guān)系代數(shù)運算符(續(xù)) 關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))l4關(guān)系代數(shù)運算的分類關(guān)系代數(shù)運算的分類 傳統(tǒng)的集合運算傳統(tǒng)的集合運算 并、差、交、廣義笛卡爾積并、差、交、廣義笛卡爾積 專門的關(guān)系運算專門的關(guān)系運算 選擇、投影、連接、除選擇、投影、連接、除關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù))l5表示記號表示記號 (1) R,t R,tAi 設(shè)關(guān)系模式為設(shè)關(guān)系模式為R(A1,A2, ,An)。它的一。它的一個關(guān)系設(shè)為個關(guān)系設(shè)為R。t
48、 R表示表示t是是R的一個元組。的一個元組。tAi則表示元組則表示元組t中相應(yīng)于屬性中相應(yīng)于屬性Ai的一個分量。的一個分量。 關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù)) (2)A,tA,A 若若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik是是A1,A2,An中的一部分,則中的一部分,則A稱為稱為屬性列或域列。屬性列或域列。tA=(tAi1,tAi2,tAik)表示元組表示元組t在屬性列在屬性列A上諸分量的集合。上諸分量的集合。A則表示則表示A1,A2,An中去掉中去掉Ai1,Ai2,Aik后剩余的屬性組。后剩余的屬性組。 關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù)) (3) tr ts R為為n目關(guān)系,目關(guān)
49、系,S為為m目關(guān)系。目關(guān)系。tr R,ts S, tr ts稱為元組的連接。它是一個稱為元組的連接。它是一個n + m列的元列的元組,前組,前n個分量為個分量為R中的一個中的一個n元組,后元組,后m個個分量為分量為S中的一個中的一個m元組。元組。 關(guān)系代數(shù)(續(xù))關(guān)系代數(shù)(續(xù)) 4)象集)象集Zx 給定一個關(guān)系給定一個關(guān)系R(X,Z),),X和和Z為屬性組。為屬性組。當當tX=x時,時,x在在R中的中的象集象集(Images Set)為:為: Zx=tZ|t R,tX=x 它表示它表示R中屬性組中屬性組X上值為上值為x的諸元組在的諸元組在Z上上分量的集合。分量的集合。 2.4 關(guān)系代數(shù)關(guān)系代數(shù)l
50、 2.4.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算l 2.4.2 專門的關(guān)系運算專門的關(guān)系運算2.4 關(guān)系代數(shù)關(guān)系代數(shù)l 2.4.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算l 2.4.2 專門的關(guān)系運算專門的關(guān)系運算2.4.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算l并并l差差l交交l廣義笛卡爾積廣義笛卡爾積1. 并(并(Union)lR和和S 具有相同的目具有相同的目n(即兩個關(guān)系都有(即兩個關(guān)系都有n個屬性)個屬性) 相應(yīng)的屬性取自同一個域相應(yīng)的屬性取自同一個域lRS 仍為仍為n目關(guān)系,由屬于目關(guān)系,由屬于R或?qū)儆诨驅(qū)儆赟的元組組成的元組組成 RS = t|t Rt S 并并(續(xù)續(xù))ABCa1b1c1a1b2c2a2
51、b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS 2. 差(差(Difference)lR和和S 具有相同的目具有相同的目n 相應(yīng)的屬性取自同一個域相應(yīng)的屬性取自同一個域lR - S 仍為仍為n目關(guān)系,由屬于目關(guān)系,由屬于R而不屬于而不屬于S的所有元的所有元組組成組組成 R -S = t|t Rt S 差差(續(xù)續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S 3. 交(交(Intersection)lR和和S 具有相同的目具有相同的目n 相應(yīng)的屬性取自同一個域相應(yīng)
52、的屬性取自同一個域lRS 仍為仍為n目關(guān)系,由既屬于目關(guān)系,由既屬于R又屬于又屬于S的元組組的元組組成成 RS = t|t Rt S RS = R (R-S)交交 (續(xù)續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S 4. 廣義笛卡爾積(廣義笛卡爾積(Extended Cartesian Product)lR n目關(guān)系,目關(guān)系,k1個元組個元組lS m目關(guān)系,目關(guān)系,k2個元組個元組lRS 列:(列:(n+m)列的元組的集合)列的元組的集合 元組的前元組的前n列是關(guān)系列是關(guān)系R的一個元組的一個元組 后后m列是關(guān)系列
53、是關(guān)系S的一個元組的一個元組 行:行:k1k2個元組個元組 RS = tr ts |tr R ts S 廣義笛卡爾積廣義笛卡爾積 (續(xù)續(xù))ABCa1 b1 c1a1 b2 c2a2 b2 c1ABCa1 b2 c2a1 b3 c2a2 b2 c1RSR S ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c12.4 關(guān)系代數(shù)關(guān)系代數(shù)l2.4.1 傳統(tǒng)的集合運算傳統(tǒng)的集合運算l2.4.2 專門的關(guān)系運算專門的關(guān)系運算2.4
54、.2 專門的關(guān)系運算專門的關(guān)系運算l選擇選擇l投影投影l(fā)連接連接l除除1. 選擇(選擇(Selection) l1) 選擇又稱為限制(選擇又稱為限制(Restriction)l2) 選擇運算符的含義選擇運算符的含義 在關(guān)系在關(guān)系R中選擇滿足給定條件的諸元組中選擇滿足給定條件的諸元組 F(R) = t|t RF(t)= 真真 F:選擇條件,是一個邏輯表達式,基本形式為:選擇條件,是一個邏輯表達式,基本形式為: ( X1Y1 ) ( X2Y2 ) :比較運算符(,:比較運算符(,或,或) X1,Y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號來代替
55、;的序號來代替; :邏輯運算符(:邏輯運算符(或或) :表示任選項:表示任選項 :表示上述格式可以重復(fù)下去:表示上述格式可以重復(fù)下去選擇(續(xù))選擇(續(xù))l3) 選擇運算是從行的角度進行的運算選擇運算是從行的角度進行的運算 l4) 舉例舉例設(shè)有一個學(xué)生設(shè)有一個學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系、課程關(guān)系Course和選修關(guān)系和選修關(guān)系SC。選擇(續(xù))選擇(續(xù))學(xué)學(xué) 號號Sno姓姓 名名Sname性性 別別Ssex年年 齡齡Sage所所 在在 系系Sdept95001李勇李勇男男20CS95002劉晨劉晨女女19IS95003王敏王敏女女18MA9500
56、4張立張立男男19IS(a) Student例1例2例4例3例9選擇(續(xù))選擇(續(xù))(b)Course課程號課程號課程名課程名先行課先行課學(xué)分學(xué)分CnoCnameCpnoCcredit1數(shù)據(jù)庫數(shù)據(jù)庫542數(shù)學(xué)數(shù)學(xué) 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選擇(續(xù))選擇(續(xù)) (c)SC學(xué)學(xué) 號號課課 程程 號號成成 績績SnoCnoGrade9500119295001285950013889500229095002380例7例9選擇(續(xù))選擇(續(xù))例例1 查詢信息系(查詢信息系(IS系)全體學(xué)生系)全體學(xué)生 Sde
57、pt = IS (Student)或或 5 =IS (Student)結(jié)果:結(jié)果: SnoSnameSsexSageSdept95002劉晨劉晨女女19IS95004張立張立男男19IS選擇(續(xù))選擇(續(xù))例例2 查詢年齡小于查詢年齡小于20歲的學(xué)生歲的學(xué)生 Sage 20(Student) 或或 4 20(Student)結(jié)果:結(jié)果: SnoSnameSsexSageSdept95002劉晨劉晨女女19IS95003王敏王敏女女18MA95004張立張立男男19IS 2. 投影(投影(Projection) l1)投影運算符的含義)投影運算符的含義 從從R中選擇出若干屬性列組成新的關(guān)系中選擇
58、出若干屬性列組成新的關(guān)系 A(R) = tA | t R A:R中的屬性列中的屬性列 2. 投影(投影(Projection) l2)投影操作主要是從列的角度進行運算)投影操作主要是從列的角度進行運算 但投影之后不僅取消了原關(guān)系中的某些列,但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)而且還可能取消某些元組(避免重復(fù)行)投影(續(xù))投影(續(xù))l3) 舉例舉例例例3 查詢學(xué)生的姓名和所在系查詢學(xué)生的姓名和所在系即求即求Student關(guān)系上學(xué)生姓名和所在系兩個關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影屬性上的投影 Sname,Sdept(Student)或或 2,5(Stud
59、ent)結(jié)果:結(jié)果:投影(續(xù))投影(續(xù))SnameSdept李勇李勇CS劉晨劉晨IS王敏王敏MA張立張立IS投影(續(xù))投影(續(xù))例例4 查詢學(xué)生關(guān)系查詢學(xué)生關(guān)系Student中都有哪些系中都有哪些系 Sdept(Student)結(jié)果:結(jié)果:SdeptCSISMA3. 連接(連接(Join) l1)連接也稱為)連接也稱為連接連接l2)連接運算的含義)連接運算的含義 從兩個關(guān)系的笛卡爾積中選取屬性間滿足從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組一定條件的元組 R S = | tr Rts StrAtsB A和和B:分別為分別為R和和S上度數(shù)相等且可比的屬性組上度數(shù)相等且可比的屬性組 :比較
60、運算符:比較運算符 連接運算從連接運算從R和和S的廣義笛卡爾積的廣義笛卡爾積RS中選中選取(?。≧關(guān)系)在關(guān)系)在A屬性組上的值與(屬性組上的值與(S關(guān)系)關(guān)系)在在B屬性組上值滿足比較關(guān)系的元組。屬性組上值滿足比較關(guān)系的元組。 ABtr ts 連接連接(續(xù)續(xù)) l3)兩類常用連接運算)兩類常用連接運算 等值連接(等值連接(equijoin) 什么是等值連接什么是等值連接 為為“”的連接運算稱為等值連接的連接運算稱為等值連接 等值連接的含義等值連接的含義 從關(guān)系從關(guān)系R與與S的廣義笛卡爾積中選取的廣義笛卡爾積中選取A、B屬性屬性值相等的那些元組,即等值連接為:值相等的那些元組,即等值連接為:
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)銷售人員勞動合同模板
- 兒童文學(xué)教育中的紅色文化傳承賞析
- 非學(xué)術(shù)活動在班級中的作用計劃
- 35kV消弧線圈技術(shù)規(guī)范書
- 基礎(chǔ)教育下古詩吟詠與幼兒發(fā)展觀后感
- 預(yù)設(shè)的語用變異與語言演變-洞察分析
- 鴨苗委托代銷合同
- 股份轉(zhuǎn)讓合同
- 項目評估與成果展示策劃計劃
- 債權(quán)債務(wù)轉(zhuǎn)讓協(xié)議范本
- 區(qū)域合作伙伴合作協(xié)議書范本
- 中學(xué)數(shù)學(xué)教學(xué)設(shè)計全套教學(xué)課件
- 環(huán)衛(wèi)公司年終工作總結(jié)
- 2023年德宏隴川縣人民法院招聘聘用制書記員考試真題及答案
- 第四章-國防動員
- 酒店行業(yè)pest模型分析
- 汽車經(jīng)營計劃書
- 2024屆山東省濱州無棣縣聯(lián)考物理九上期末綜合測試試題含解析
- 兩高環(huán)境污染罪司法解釋解讀
- 部編版小學(xué)六年級語文上冊第六單元集體備課記錄表
- 肩袖損傷的護理查房課件
評論
0/150
提交評論