數據庫系統原理教學2_第1頁
數據庫系統原理教學2_第2頁
數據庫系統原理教學2_第3頁
數據庫系統原理教學2_第4頁
數據庫系統原理教學2_第5頁
已閱讀5頁,還剩214頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第2章章 關系數據庫關系數據庫2.1 關系數據庫概述關系數據庫概述2.2 關系數據結構關系數據結構2.3 關系的完整性關系的完整性2.4 關系代數關系代數2.5 關系演算關系演算2.6 關系數據庫管理系統關系數據庫管理系統2.7 小結小結關系數據庫簡介關系數據庫簡介l系統而嚴格地提出關系模型的是美國系統而嚴格地提出關系模型的是美國IBM公司的公司的E.F.Codd 1970年提出關系數據模型年提出關系數據模型 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM

2、,1970 之后,提出了關系代數和關系演算的概念之后,提出了關系代數和關系演算的概念 1972年提出了關系的第一、第二、第三范式年提出了關系的第一、第二、第三范式 1974年提出了關系的年提出了關系的BC范式范式關系數據庫簡介關系數據庫簡介l關系數據庫應用數學方法來處理數據庫關系數據庫應用數學方法來處理數據庫中的數據中的數據l80年代后,關系數據庫系統成為最重要、年代后,關系數據庫系統成為最重要、最流行的數據庫系統最流行的數據庫系統關系數據庫簡介關系數據庫簡介l典型實驗系統典型實驗系統 System R University INGRESl典型商用系統典型商用系統 ORACLE SYBASE

3、DB2 SQL Server INFORMIX INGRES第第2章章 關系數據庫關系數據庫2.1 關系數據庫概述關系數據庫概述2.2 關系數據結構關系數據結構2.3 關系的完整性關系的完整性2.4 關系代數關系代數2.5 關系演算關系演算2.6 關系數據庫管理系統關系數據庫管理系統2.7 小結小結2.1 關系數據庫概述關系數據庫概述l關系數據庫系統是支持關系模型的數據關系數據庫系統是支持關系模型的數據庫系統庫系統l關系模型的組成關系模型的組成 關系數據結構關系數據結構 關系操作集合關系操作集合 關系完整性約束關系完整性約束1. 關系數據結構關系數據結構l單一的數據結構單一的數據結構-關系關系

4、 現實世界的實體以及實體間的各種聯系均用現實世界的實體以及實體間的各種聯系均用關系來表示關系來表示l數據的邏輯結構數據的邏輯結構-二維表二維表 從用戶角度,關系模型中數據的邏輯結構是從用戶角度,關系模型中數據的邏輯結構是一張二維表。一張二維表。 2. 關系操作關系操作l1) 常用的關系操作常用的關系操作l2) 關系操作的特點關系操作的特點l3) 關系數據語言的種類關系數據語言的種類l4) 關系數據語言的特點關系數據語言的特點關系操作關系操作 (續)續)l1) 常用的關系操作常用的關系操作 查詢查詢 選擇、投影、連接選擇、投影、連接、除、并、交、差、除、并、交、差 數據更新數據更新 插入、刪除、

5、修改插入、刪除、修改 查詢的表達能力是其中最主要的部分查詢的表達能力是其中最主要的部分關系操作(續)關系操作(續)l2) 關系操作的特點關系操作的特點 集合操作方式,即操作的對象和結果都是集集合操作方式,即操作的對象和結果都是集合。合。 非關系數據模型的數據操作方式:一次一記錄非關系數據模型的數據操作方式:一次一記錄 文件系統的數據操作方式文件系統的數據操作方式關系操作(續)關系操作(續)l3) 關系數據語言的種類關系數據語言的種類 關系代數語言關系代數語言 用用對關系的運算對關系的運算來表達查詢要求來表達查詢要求 典型代表:典型代表:ISBL關系操作(續)關系操作(續)l關系數據語言的種類(

6、續)關系數據語言的種類(續) 關系演算語言:用關系演算語言:用謂詞謂詞來表達查詢要求來表達查詢要求 元組關系演算語言元組關系演算語言 謂詞變元的基本對象是元組變量謂詞變元的基本對象是元組變量 典型代表:典型代表:APLHA, QUEL 域關系演算語言域關系演算語言 謂詞變元的基本對象是域變量謂詞變元的基本對象是域變量 典型代表:典型代表:QBE 具有關系代數和關系演算雙重特點的語言具有關系代數和關系演算雙重特點的語言 典型代表:典型代表:SQL關系操作(續)關系操作(續)l4) 關系數據語言的特點關系數據語言的特點 關系語言是一種高度非過程化的語言關系語言是一種高度非過程化的語言 存取路徑的選

7、擇由存取路徑的選擇由DBMS的優化機制來完成的優化機制來完成 用戶不必用循環結構就可以完成數據操作用戶不必用循環結構就可以完成數據操作 能夠嵌入高級語言中使用能夠嵌入高級語言中使用 關系代數、元組關系演算和域關系演算三種關系代數、元組關系演算和域關系演算三種語言在表達能力上完全等價語言在表達能力上完全等價3. 3. 關系的三類完整性約束關系的三類完整性約束l實體完整性實體完整性 通常由關系系統自動支持通常由關系系統自動支持l參照完整性參照完整性 早期系統不支持,目前大型系統能自動支持早期系統不支持,目前大型系統能自動支持l用戶定義的完整性用戶定義的完整性 反映應用領域需要遵循的約束條件,體現了

8、反映應用領域需要遵循的約束條件,體現了具體領域中的語義約束具體領域中的語義約束 用戶定義后由系統支持用戶定義后由系統支持第第2章章 關系數據庫關系數據庫2.1 關系數據庫概述關系數據庫概述2.2 關系數據結構關系數據結構2.3 關系的完整性關系的完整性2.4 關系代數關系代數2.5 關系演算關系演算2.6 關系數據庫管理系統關系數據庫管理系統2.7 小結小結2.2 關系數據結構關系數據結構l關系模型建立在集合代數的基礎上關系模型建立在集合代數的基礎上l關系數據結構的基本概念關系數據結構的基本概念 關系關系 關系模式關系模式 關系數據庫關系數據庫2.2 關系數據結構關系數據結構l1.1.關系關系

9、l2.2.關系模式關系模式l3.3.關系數據庫關系數據庫一、一、 關系關系l 域(域(Domain)l 2. 笛卡爾積(笛卡爾積(Cartesian Product)l 3. 關系(關系(Relation) 域(域(Domain)l域域是一組具有相同數據類型的值的集合。是一組具有相同數據類型的值的集合。 例例 整數整數 實數實數 指定長度的字符串集合指定長度的字符串集合 介于某個取值范圍的整數介于某個取值范圍的整數 男男,女女 介于某個取值范圍的日期介于某個取值范圍的日期2. 笛卡爾積(笛卡爾積(Cartesian Product)l1) 笛卡爾積笛卡爾積 給定一組域給定一組域D1,D2, ,

10、Dn,這些域中可,這些域中可以有相同的。以有相同的。D1,D2, ,Dn的的笛卡爾積笛卡爾積為:為: D1D2 Dn (d1, d2, , dn)di Di, i1, 2, , n 所有域的所有取值的一個組合所有域的所有取值的一個組合 不能重復不能重復笛卡爾積(續笛卡爾積(續)例例 給出三個域:給出三個域: D1=SUPERVISOR = 張清玫,劉逸張清玫,劉逸 D2=SPECIALITY=計算機專業,信息專業計算機專業,信息專業 D3=POSTGRADUATE=李勇,劉晨,王敏李勇,劉晨,王敏則則D1,D2,D3的笛卡爾積為:的笛卡爾積為:D1D2D3 (張清玫,計算機專業,李勇張清玫,計

11、算機專業,李勇),(張清玫,計算機專業,劉晨張清玫,計算機專業,劉晨), (張清玫,計算機專業,王敏張清玫,計算機專業,王敏),(張清玫,信息專業,李勇張清玫,信息專業,李勇), (張清玫,信息專業,劉晨張清玫,信息專業,劉晨),(張清玫,信息專業,王敏張清玫,信息專業,王敏), (劉逸,計算機專業,李勇劉逸,計算機專業,李勇),(劉逸,計算機專業,劉晨劉逸,計算機專業,劉晨), (劉逸,計算機專業,王敏劉逸,計算機專業,王敏),(劉逸,信息專業,李勇劉逸,信息專業,李勇), (劉逸,信息專業,劉晨劉逸,信息專業,劉晨),(劉逸,信息專業,王敏劉逸,信息專業,王敏) 笛卡爾積(續笛卡爾積(續)

12、l2) 元組元組(Tuple) 笛卡爾積中每一個元素(笛卡爾積中每一個元素(d1,d2, ,dn)叫作一)叫作一個個n元組元組(n-tuple)或簡稱)或簡稱元組元組。 例例l3) 分量(分量(Component) 笛卡爾積元素(笛卡爾積元素(d1,d2, ,dn)中的每一個值)中的每一個值di叫作一個叫作一個分量分量。 例例笛卡爾積(續笛卡爾積(續)l4) 基數(基數(Cardinal number) 若若Di(i1,2, ,n)為有限集,其基數)為有限集,其基數為為mi(i1,2, ,n),則),則D1D2 Dn的基數的基數M為:為:在上例中,基數:在上例中,基數:22312,即,即D1D

13、2D3共有共有22312個元組個元組mMin1i笛卡爾積(續笛卡爾積(續)l5)笛卡爾積的表示方法笛卡爾積的表示方法 笛卡爾積可表示為一個二維表。表中的每行笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。對應一個元組,表中的每列對應一個域。在上例中,在上例中,12個元組可列成一張二維表個元組可列成一張二維表 表表 2.1 D1, D2, D3的的 笛笛 卡卡 爾爾 積積SUPE R VISO RSPE CIAL IT YPO ST G R A DU AT E張張 清清 玫玫計計 算算 機機 專專 業業李李 勇勇張張 清清 玫玫計計 算算 機機 專專 業業劉劉 晨晨張張

14、 清清 玫玫計計 算算 機機 專專 業業王王 敏敏張張 清清 玫玫信信 息息 專專 業業李李 勇勇張張 清清 玫玫信信 息息 專專 業業劉劉 晨晨張張 清清 玫玫信信 息息 專專 業業王王 敏敏劉劉 逸逸計計 算算 機機 專專 業業李李 勇勇劉劉 逸逸計計 算算 機機 專專 業業劉劉 晨晨劉劉 逸逸計計 算算 機機 專專 業業王王 敏敏劉劉 逸逸信信 息息 專專 業業李李 勇勇劉劉 逸逸信信 息息 專專 業業劉劉 晨晨劉劉 逸逸信信 息息 專專 業業王王 敏敏笛卡爾積(續笛卡爾積(續)表表 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張張 清清 玫玫計計 算算 機機 專專 業業李李 勇勇張張 清清 玫玫計計 算算 機機 專專 業業劉劉 晨晨張張 清清 玫玫計計 算算 機機 專專 業業王王 敏敏張張 清清 玫玫信信 息息 專專 業業李李 勇勇張張 清清 玫玫信信 息息 專專 業業劉劉 晨晨張張 清清 玫玫信信 息息 專專 業業王王 敏敏劉劉 逸逸計計 算算 機機 專專 業業李李 勇勇劉劉 逸逸計計 算算 機機 專專 業業劉劉 晨晨劉劉 逸逸計計 算算 機機 專專 業業王王 敏敏劉劉 逸逸信信 息息 專專 業業李李 勇勇劉劉 逸逸信信 息息 專專 業業劉劉 晨晨劉劉

16、逸逸信信 息息 專專 業業王王 敏敏3. 關系關系(Relation)l1) 關系關系 D1D2 Dn的子集叫作在域的子集叫作在域D1, D2, , Dn上的上的關系關系,表示為,表示為 R(D1,D2, ,Dn) R:關系名關系名 n:關系的關系的目目或或度度(Degree)關系(續)關系(續)l1) 關系關系(續續) 注意注意 關系是笛卡爾積的有限子集。無限關系在數據庫關系是笛卡爾積的有限子集。無限關系在數據庫系統中是無意義的。系統中是無意義的。 由于笛卡爾積不滿足交換律,即由于笛卡爾積不滿足交換律,即 (d1,d2, ,dn )(d2,d1, ,dn ) 但關系滿足交換律,即但關系滿足交

17、換律,即 (d1,d2 , ,di ,dj , ,dn)=(d1,d2 , , dj , di, ,dn) (i,j = 1,2,n) 解決方法:為關系的每個列附加一個屬性名以取解決方法:為關系的每個列附加一個屬性名以取消關系元組的有序性消關系元組的有序性關系(續)關系(續)例例 在表在表2.1 的笛卡爾積中取出有實際意義的元組的笛卡爾積中取出有實際意義的元組 來構造關系來構造關系關系:關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 關系名,屬性名關系名,屬性名假設:假設:導師與專業:導師與專業:1:1,導師與研究生:,導師與研究生:1:n于是:于是:SA

18、P關系可以包含三個元組關系可以包含三個元組 (張清玫,信息專業,李勇張清玫,信息專業,李勇), (張清玫,信息專業,劉晨張清玫,信息專業,劉晨), (劉逸,信息專業,王敏劉逸,信息專業,王敏) 關系(續)關系(續)l2) 元組元組 關系中的每個元素是關系中的關系中的每個元素是關系中的元組元組,通常用,通常用 t 表示。表示。l3) 單元關系與二元關系單元關系與二元關系 當當n=1時,稱該關系為時,稱該關系為單元單元關系關系(Unary relation)。)。 當當n=2時,稱該關系為時,稱該關系為二元二元關系關系(Binary relation)。)。關系(續)關系(續)l4) 關系的表示關

19、系的表示 關系也是一個二維表,表的每行對應一個元關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。組,表的每列對應一個域。表表2.2 SAP關關 系系SUPERVISORSPECIALITYPOSTGRADUATE張張清清玫玫信信息息專專業業李李勇勇張張清清玫玫信信息息專專業業劉劉晨晨劉劉逸逸信信息息專專業業王王敏敏關系(續)關系(續)l5) 屬性屬性 關系中不同列可以對應相同的域,為了加以關系中不同列可以對應相同的域,為了加以區分,必須對每列起一個名字,稱為區分,必須對每列起一個名字,稱為屬性屬性(Attribute)。)。 n目關系必有目關系必有n個屬性。個屬性。關系(續)關系

20、(續)l6) 碼碼 候選碼候選碼 若關系中的某一屬性組的值能唯一地標識一個元若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為組,則稱該屬性組為候選碼候選碼(Candidate key)。)。 候選碼的諸屬性稱為候選碼的諸屬性稱為主屬性主屬性(Prime attribute)。)。 不包含在任何侯選碼中的屬性稱為非碼屬性不包含在任何侯選碼中的屬性稱為非碼屬性(Non-key attribute)。)。 在最簡單的情況下,候選碼只包含一個屬性。在在最簡單的情況下,候選碼只包含一個屬性。在最極端的情況下,關系模式的所有屬性組是這個最極端的情況下,關系模式的所有屬性組是這個關系模式的候選碼

21、,稱為關系模式的候選碼,稱為全碼全碼(All-key)。)。關系(續)關系(續)l碼碼(續續) 主碼主碼 若一個關系有多個候選碼,則選定其中一個為若一個關系有多個候選碼,則選定其中一個為主主碼碼(Primary key)。)。關系(續)關系(續)l7) 三類關系三類關系 基本關系(基本表或基表)基本關系(基本表或基表) 實際存在的表,是實際存儲數據的邏輯表示實際存在的表,是實際存儲數據的邏輯表示 查詢表查詢表 查詢結果對應的表查詢結果對應的表 視圖表視圖表 由基本表或其他視圖表導出的表,是虛表,不對由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據應實際存儲的數據關系(續)關系(續)l

22、8) 基本關系的性質基本關系的性質 列是同質的(列是同質的(Homogeneous) 每一列中的分量是同一類型的數據,來自同一個每一列中的分量是同一類型的數據,來自同一個域。域。 不同的列可出自同一個域不同的列可出自同一個域 其中的每一列稱為一個屬性其中的每一列稱為一個屬性 不同的屬性要給予不同的屬性名不同的屬性要給予不同的屬性名關系(續)關系(續)例例:上例中也可以只給出兩個域:上例中也可以只給出兩個域:人(人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏張清玫,劉逸,李勇,劉晨,王敏專業(專業(SPECIALITY)=計算機專業,信息專業計算機專業,信息專業SAP關系的導師屬性和研究生屬

23、性都從關系的導師屬性和研究生屬性都從PERSON域中取值。域中取值。為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能直接使用域名。直接使用域名。例如定義導師屬性名為例如定義導師屬性名為SUPERVISOR-PERSON(或(或SUPERVISOR) 研究生屬性名為研究生屬性名為POSTGRADUATE-PERSON(或(或POSTGRADUATE)SAP(SUPERVISOR-PERSON, SPECIALITY , POSTGRADUATE-PERSON)關系(續)關系(續)l基本關系的性質基本關系的性質(續續) 列的順序無所謂列的順序

24、無所謂 列的次序可以任意交換列的次序可以任意交換 遵循這一性質的數據庫產品遵循這一性質的數據庫產品(如如ORACLE),增加,增加新屬性時,永遠是插至最后一列新屬性時,永遠是插至最后一列 但也有許多關系數據庫產品沒有遵循這一性質,但也有許多關系數據庫產品沒有遵循這一性質,例如例如FoxPro仍然區分了屬性順序仍然區分了屬性順序關系(續)關系(續)l基本關系的性質基本關系的性質(續續) 任意兩個元組不能完全相同任意兩個元組不能完全相同 由笛卡爾積的性質決定由笛卡爾積的性質決定 但許多關系數據庫產品沒有遵循這一性質。例如但許多關系數據庫產品沒有遵循這一性質。例如Oracle,FoxPro等都允許關

25、系表中存在兩個完全等都允許關系表中存在兩個完全相同的元組,除非用戶特別定義了相應的約束條相同的元組,除非用戶特別定義了相應的約束條件。件。關系(續)關系(續)l基本關系的性質基本關系的性質(續續) 行的順序無所謂行的順序無所謂 行的次序可以任意交換行的次序可以任意交換 遵循這一性質的數據庫產品遵循這一性質的數據庫產品(如如ORACLE),插入,插入一個元組時永遠插至最后一行一個元組時永遠插至最后一行 但也有許多關系數據庫產品沒有遵循這一性質,但也有許多關系數據庫產品沒有遵循這一性質,例如例如FoxPro仍然區分了元組的順序仍然區分了元組的順序關系(續)關系(續)l基本關系的性質基本關系的性質(

26、續續) 分量必須取原子值分量必須取原子值 每一個分量都必須是不可分的數據項。這是規每一個分量都必須是不可分的數據項。這是規 范條件中最基本的一條范條件中最基本的一條表表2.3 非非 規規 范范 化化 關關 系系POSTGRADUATESUPERVISORSPECIALITYPG1PG2張張清清玫玫信信息息專專業業李李勇勇劉劉晨晨劉劉逸逸信信息息專專業業王王敏敏二、二、 關系模式關系模式l1什么是關系模式什么是關系模式l2定義關系模式定義關系模式l3. 關系模式與關系關系模式與關系1什么是關系模式什么是關系模式l關系模式(關系模式(Relation Schema)是型,關系是值)是型,關系是值l

27、關系模式是對關系的描述關系模式是對關系的描述 元組集合的結構元組集合的結構 屬性構成屬性構成 屬性來自的域屬性來自的域 屬性與域之間的映象關系屬性與域之間的映象關系 元組語義元組語義 完整性約束條件完整性約束條件 屬性間的數據依賴關系集合屬性間的數據依賴關系集合2定義關系模式定義關系模式l關系模式可以形式化地表示為:關系模式可以形式化地表示為: R(U,D,dom,F) R 關系名關系名U 組成該關系的屬性名集合組成該關系的屬性名集合D 屬性組屬性組U中屬性所來自的域中屬性所來自的域dom 屬性向域的映象集合屬性向域的映象集合F 屬性間的數據依賴關系集合。屬性間的數據依賴關系集合。定義關系模式

28、定義關系模式 (續續)例例 在上面例子中,由于導師和研究生出自同一在上面例子中,由于導師和研究生出自同一個域個域人,所以要取不同的屬性名,并在人,所以要取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分模式中定義屬性向域的映象,即說明它們分別出自哪個域,如:別出自哪個域,如: dom(SUPERVISOR-PERSON)= dom(POSTGRADUATE-PERSON)=PERSON定義關系模式定義關系模式 (續續)l關系模式通??梢院営洖殛P系模式通??梢院営洖?R (U) 或或 R (A1,A2,An)R 關系名關系名A1,A2,An 屬性名屬性名注:域名及屬性向域的映象常常直接說

29、明為屬注:域名及屬性向域的映象常常直接說明為屬 性的類型、長度。性的類型、長度。3. 關系模式與關系關系模式與關系l關系模式關系模式 對關系的描述對關系的描述 靜態的、穩定的靜態的、穩定的l關系關系 關系模式在某一時刻的狀態或內容關系模式在某一時刻的狀態或內容 動態的、隨時間不斷變化的動態的、隨時間不斷變化的l關系模式和關系往往統稱為關系,通過關系模式和關系往往統稱為關系,通過上下文加以區別。上下文加以區別。三、關系數據庫三、關系數據庫l1. 關系數據庫關系數據庫l2. 關系數據庫的型與值關系數據庫的型與值1. 關系數據庫關系數據庫l在一個給定的應用領域中,所有實體及在一個給定的應用領域中,所

30、有實體及實體之間聯系的關系的集合構成一個關實體之間聯系的關系的集合構成一個關系數據庫。系數據庫。2. 關系數據庫的型與值關系數據庫的型與值l關系數據庫也有型和值之分關系數據庫也有型和值之分l關系數據庫的型稱為關系數據庫模式,關系數據庫的型稱為關系數據庫模式,是對關系數據庫的描述是對關系數據庫的描述 若干域的定義若干域的定義 在這些域上定義的若干關系模式在這些域上定義的若干關系模式l關系數據庫的值是這些關系模式在某一關系數據庫的值是這些關系模式在某一時刻對應的關系的集合,通常簡稱為關時刻對應的關系的集合,通常簡稱為關系數據庫系數據庫第第2章章 關系數據庫關系數據庫2.1 關系數據庫概述關系數據庫

31、概述2.2 關系數據結構關系數據結構2.3 關系的完整性關系的完整性2.4 關系代數關系代數2.5 關系演算關系演算2.6 關系數據庫管理系統關系數據庫管理系統2.7 小結小結2.3 關系的完整性關系的完整性l關系模型的完整性規則是對關系的某種約束條關系模型的完整性規則是對關系的某種約束條件。件。l關系模型中三類完整性約束:關系模型中三類完整性約束: 實體完整性實體完整性 參照完整性參照完整性 用戶定義的完整性用戶定義的完整性l實體完整性和參照完整性是關系模型必須滿足實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個的完整性約束條件,被稱作是關系的兩個不變不變性性,應

32、該由關系系統自動支持。,應該由關系系統自動支持。關系的完整性關系的完整性(續續)l1. 實體完整性實體完整性l2. 參照完整性參照完整性l3. 用戶定義的完整性用戶定義的完整性一、一、 實體完整性實體完整性l實體完整性規則(實體完整性規則(Entity Integrity) 若屬性若屬性A是基本關系是基本關系R的主屬性,則屬性的主屬性,則屬性A不不能取空值。能取空值。例例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE屬性為主碼(假設研究生不會重屬性為主碼(假設研究生不會重名),則其不能取空值。名),則其不能取空值。實體完整性實體完整性(續

33、續)l關系模型必須遵守實體完整性規則的原因關系模型必須遵守實體完整性規則的原因 (1) 實體完整性規則是針對基本關系而言的。實體完整性規則是針對基本關系而言的。一個基本表通常對應現實世界的一個實體集一個基本表通常對應現實世界的一個實體集或多對多聯系。或多對多聯系。 (2) 現實世界中的實體和實體間的聯系都是現實世界中的實體和實體間的聯系都是可區分的,即它們具有某種唯一性標識??蓞^分的,即它們具有某種唯一性標識。 (3) 相應地,關系模型中以候選碼作為唯一相應地,關系模型中以候選碼作為唯一性標識。性標識。實體完整性實體完整性(續續)l關系模型必須遵守實體完整性規則的原因關系模型必須遵守實體完整性

34、規則的原因(續續) (4) 候選碼中的屬性即主屬性不能取空值。候選碼中的屬性即主屬性不能取空值。所謂空值就是所謂空值就是“不知道不知道”或或“無意義無意義”的值。的值。如果主屬性取空值,就說明存在某個不可標如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第識的實體,即存在不可區分的實體,這與第(2)點相矛盾,因此這個規則稱為實體完整點相矛盾,因此這個規則稱為實體完整性。性。實體完整性實體完整性(續續)l注意注意 實體完整性規則規定基本關系的所有主屬性實體完整性規則規定基本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空都不能取空值,而不僅是主碼整體不能取空值。值

35、。例:例: 選修(學號,課程號,成績)選修(學號,課程號,成績) “學號、課程號學號、課程號”為主碼,為主碼, 則學號和課程號兩個屬性都不能取空值則學號和課程號兩個屬性都不能取空值二、二、 參照完整性參照完整性l1. 關系間的引用關系間的引用l2. 外碼外碼l3. 參照完整性規則參照完整性規則1. 關系間的引用關系間的引用l在關系模型中實體及實體間的聯系都是在關系模型中實體及實體間的聯系都是用關系來描述的,因此可能存在著關系用關系來描述的,因此可能存在著關系與關系間的引用。與關系間的引用。例例1 學生實體、專業實體以及專業與學生間學生實體、專業實體以及專業與學生間的一對多聯系的一對多聯系 學生

36、(學生(學號學號,姓名,性別,專業號,年齡),姓名,性別,專業號,年齡) 專業(專業(專業號專業號,專業名),專業名)學學 號號姓姓 名名性性 別別專專 業業 號號年年 齡齡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專專 業業 號號專專 業業 名名0 1信信 息息0 2數數 學學0 3計計 算算 機機學生(學生(學號學號,姓名,性別,專業號,年齡),姓名,性別,專業號,年齡) 專業(專業(專業號專業號,專業名),專業名)關系間的引用關系間的引用(續續)例例2

37、 學生、課程、學生與課程之間的多對多聯系學生、課程、學生與課程之間的多對多聯系 學生(學生(學號學號,姓名,性別,專業號,年齡),姓名,性別,專業號,年齡) 課程(課程(課程號課程號,課程名,學分),課程名,學分) 選修(選修(學號學號,課程號課程號,成績),成績) 課課程程號號課課程程名名學學分分01數數據據庫庫402數數據據結結構構403編編譯譯404PASCAL2學學 號號姓姓 名名性性 別別專專 業業 號號年年 齡齡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學學 號號課課 程程號號成成 績績801049280103788010285802038280204908030488學生學生學生選課學生選課課程課程關系間的引用關系間的引用(續續)例例3 學生實體及其內部的領導聯系學生實體及其內部的領導聯系(一對多一對多) 學生(學生(學號學號,姓名,性別,專業號,年齡,班長),姓名,性別,專業號,年齡,班長)學學號號姓姓名名性性別別專專業業號號年年齡齡班班長長801張張三三女女0119802802李李四四男男0120803王王五五男男0120802804趙趙六六女女0220805805錢錢七七男男02192外碼外碼l外碼外碼 設設F是基本關系是基本

39、關系R的一個或一組屬性,的一個或一組屬性, 但不但不是關系是關系R的碼。如果的碼。如果F與基本關系與基本關系S的主碼的主碼Ks相 對 應 , 則 稱相 對 應 , 則 稱 F 是 基 本 關 系是 基 本 關 系 R 的的 外 碼外 碼(Foreign Key) 基本關系基本關系R稱稱為為參照關系參照關系(Referencing Relation) 基本關系基本關系S稱稱為為被參照關系被參照關系(Referenced Relation)或)或目標關系目標關系(Target Relation)。)。外碼外碼(續續)l說明說明 關系關系R和和S不一定是不同的關系。不一定是不同的關系。 目標關系目標

40、關系S的主碼的主碼Ks和參照關系的外碼和參照關系的外碼F必必須定義在同一個(或一組)域上。須定義在同一個(或一組)域上。 外碼并不一定要與相應的主碼同名。外碼并不一定要與相應的主碼同名。 當外碼與相應的主碼屬于不同關系時,往往當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別。取相同的名字,以便于識別。l例例3. 參照完整性規則參照完整性規則l參照完整性規則就是定義外碼與主碼之參照完整性規則就是定義外碼與主碼之間的引用規則。間的引用規則。l參照完整性規則參照完整性規則 若屬性(或屬性組)若屬性(或屬性組)F是基本關系是基本關系R的外碼,它與基的外碼,它與基本關系本關系S的主碼的主碼

41、Ks相對應(基本關系相對應(基本關系R和和S不一定是不一定是不同的關系),則對于不同的關系),則對于R中每個元組在中每個元組在F上的值必須上的值必須為:為: 或者取空值(或者取空值(F的每個屬性值均為空值)的每個屬性值均為空值) 或者等于或者等于S中某個元組的主碼值。中某個元組的主碼值。參照完整性規則參照完整性規則(續續)l例例例例1學生關系中每個元組的學生關系中每個元組的“專業號專業號”屬性只能屬性只能取下面兩類值:取下面兩類值:(1)空值,表示尚未給該學生分配專業;)空值,表示尚未給該學生分配專業;(2)非空值,這時該值必須是專業關系中某)非空值,這時該值必須是專業關系中某個元組的個元組的

42、“專業號專業號”值,表示該學生不可能值,表示該學生不可能分配到一個不存在的專業中。分配到一個不存在的專業中。參照完整性規則參照完整性規則(續續)例例2 由于由于“學號學號”和和“課程號課程號”是選修關系中的是選修關系中的主屬性,按照實體完整性和參照完整性規則,主屬性,按照實體完整性和參照完整性規則,它們只能取相應被參照關系中已經存在的主它們只能取相應被參照關系中已經存在的主碼值。碼值。參照完整性規則參照完整性規則(續續)例例3 “班長班長”屬性值可以取兩類值:屬性值可以取兩類值:(1)空值,表示該學生所在班級尚未選出班)空值,表示該學生所在班級尚未選出班長,或該學生本人即是班長;長,或該學生本

43、人即是班長;(2)非空值,這時該值必須是本關系中某個)非空值,這時該值必須是本關系中某個元組的學號值。元組的學號值。三、三、 用戶定義的完整性用戶定義的完整性l用戶定義的完整性是針對某一具體關系用戶定義的完整性是針對某一具體關系數據庫的約束條件,反映某一具體應用數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求。所涉及的數據必須滿足的語義要求。l關系模型應提供定義和檢驗這類完整性關系模型應提供定義和檢驗這類完整性的機制,以便用統一的系統的方法處理的機制,以便用統一的系統的方法處理它們,而不要由應用程序承擔這一功能。它們,而不要由應用程序承擔這一功能。用戶定義的完整性用戶定義的完整

44、性(續續)例例 課程課程(課程號課程號,課程名,學分,課程名,學分) “課程名課程名”屬性必須取唯一值屬性必須取唯一值 非主屬性非主屬性“課程名課程名”也不能取空值也不能取空值 “學分學分”屬性只能取值屬性只能取值1,2,3,4第第2章章 關系數據庫關系數據庫2.1 關系數據庫概述關系數據庫概述2.2 關系數據結構關系數據結構2.3 關系的完整性關系的完整性2.4 關系代數關系代數2.5 關系演算關系演算2.6 關系數據庫管理系統關系數據庫管理系統2.7 小結小結關系代數(續)關系代數(續)l1. 關系代數關系代數l2. 運算的三要素運算的三要素l3. 關系代數運算的三個要素關系代數運算的三個

45、要素l4. 關系代數運算的分類關系代數運算的分類l5. 表示記號表示記號關系代數(續)關系代數(續)l1.關系代數關系代數 一種抽象的查詢語言一種抽象的查詢語言 用對關系的運算來表達查詢用對關系的運算來表達查詢關系代數(續)關系代數(續)l2運算的三要素運算的三要素 運算對象運算對象 運算符運算符 運算結果運算結果關系代數(續)關系代數(續)l3關系代數運算的三個要素關系代數運算的三個要素 運算對象:關系運算對象:關系 運算結果:關系運算結果:關系 運算符:四類運算符:四類關系代數(續)關系代數(續) 運算符(續)運算符(續) 集合運算符集合運算符 將關系看成元組的集合將關系看成元組的集合 從

46、關系的從關系的“水平水平”方向即行的角度來進行運方向即行的角度來進行運算算 專門的關系運算符專門的關系運算符 不僅涉及行而且涉及列不僅涉及行而且涉及列 算術比較符算術比較符 輔助專門的關系運算符進行操作輔助專門的關系運算符進行操作 邏輯運算符邏輯運算符 輔助專門的關系運算符進行操作輔助專門的關系運算符進行操作集集合合運運算算符符-并并差差交交廣義笛廣義笛卡爾積卡爾積比比較較運運算算符符 大于大于大于等于大于等于小于小于小于等于小于等于等于等于不等于不等于運算符運算符含義含義運算符運算符含義含義表表2.4 關系代數運算符關系代數運算符 關系代數(續)關系代數(續)專 門 的專 門 的關系關系運

47、算 符運 算 符 選擇選擇投影投影連接連接除除邏 輯 運邏 輯 運算符算符 非非與與或或運算符運算符含義含義運算符運算符含義含義表表2.4 關系代數運算符(續)關系代數運算符(續) 關系代數(續)關系代數(續)關系代數(續)關系代數(續)l4關系代數運算的分類關系代數運算的分類 傳統的集合運算傳統的集合運算 并、差、交、廣義笛卡爾積并、差、交、廣義笛卡爾積 專門的關系運算專門的關系運算 選擇、投影、連接、除選擇、投影、連接、除關系代數(續)關系代數(續)l5表示記號表示記號 (1) R,t R,tAi 設關系模式為設關系模式為R(A1,A2, ,An)。它的一。它的一個關系設為個關系設為R。t

48、 R表示表示t是是R的一個元組。的一個元組。tAi則表示元組則表示元組t中相應于屬性中相應于屬性Ai的一個分量。的一個分量。 關系代數(續)關系代數(續) (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后剩余的屬性組。后剩余的屬性組。 關系代數(續)關系代數(續) (3) tr ts R為為n目關系,目關

49、系,S為為m目關系。目關系。tr R,ts S, tr ts稱為元組的連接。它是一個稱為元組的連接。它是一個n + m列的元列的元組,前組,前n個分量為個分量為R中的一個中的一個n元組,后元組,后m個個分量為分量為S中的一個中的一個m元組。元組。 關系代數(續)關系代數(續) 4)象集)象集Zx 給定一個關系給定一個關系R(X,Z),),X和和Z為屬性組。為屬性組。當當tX=x時,時,x在在R中的中的象集象集(Images Set)為:為: Zx=tZ|t R,tX=x 它表示它表示R中屬性組中屬性組X上值為上值為x的諸元組在的諸元組在Z上上分量的集合。分量的集合。 2.4 關系代數關系代數l

50、 2.4.1 傳統的集合運算傳統的集合運算l 2.4.2 專門的關系運算專門的關系運算2.4 關系代數關系代數l 2.4.1 傳統的集合運算傳統的集合運算l 2.4.2 專門的關系運算專門的關系運算2.4.1 傳統的集合運算傳統的集合運算l并并l差差l交交l廣義笛卡爾積廣義笛卡爾積1. 并(并(Union)lR和和S 具有相同的目具有相同的目n(即兩個關系都有(即兩個關系都有n個屬性)個屬性) 相應的屬性取自同一個域相應的屬性取自同一個域lRS 仍為仍為n目關系,由屬于目關系,由屬于R或屬于或屬于S的元組組成的元組組成 RS = t|t Rt S 并并(續續)ABCa1b1c1a1b2c2a2

51、b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS 2. 差(差(Difference)lR和和S 具有相同的目具有相同的目n 相應的屬性取自同一個域相應的屬性取自同一個域lR - S 仍為仍為n目關系,由屬于目關系,由屬于R而不屬于而不屬于S的所有元的所有元組組成組組成 R -S = t|t Rt S 差差(續續)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S 3. 交(交(Intersection)lR和和S 具有相同的目具有相同的目n 相應的屬性取自同一個域相應

52、的屬性取自同一個域lRS 仍為仍為n目關系,由既屬于目關系,由既屬于R又屬于又屬于S的元組組的元組組成成 RS = t|t Rt S RS = R (R-S)交交 (續續)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S 4. 廣義笛卡爾積(廣義笛卡爾積(Extended Cartesian Product)lR n目關系,目關系,k1個元組個元組lS m目關系,目關系,k2個元組個元組lRS 列:(列:(n+m)列的元組的集合)列的元組的集合 元組的前元組的前n列是關系列是關系R的一個元組的一個元組 后后m列是關系列

53、是關系S的一個元組的一個元組 行:行:k1k2個元組個元組 RS = tr ts |tr R ts S 廣義笛卡爾積廣義笛卡爾積 (續續)ABCa1 b1 c1a1 b2 c2a2 b2 c1ABCa1 b2 c2a1 b3 c2a2 b2 c1RSR S ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c12.4 關系代數關系代數l2.4.1 傳統的集合運算傳統的集合運算l2.4.2 專門的關系運算專門的關系運算2.4

54、.2 專門的關系運算專門的關系運算l選擇選擇l投影投影l連接連接l除除1. 選擇(選擇(Selection) l1) 選擇又稱為限制(選擇又稱為限制(Restriction)l2) 選擇運算符的含義選擇運算符的含義 在關系在關系R中選擇滿足給定條件的諸元組中選擇滿足給定條件的諸元組 F(R) = t|t RF(t)= 真真 F:選擇條件,是一個邏輯表達式,基本形式為:選擇條件,是一個邏輯表達式,基本形式為: ( X1Y1 ) ( X2Y2 ) :比較運算符(,:比較運算符(,或,或) X1,Y1等:屬性名、常量、簡單函數;屬性名也可以用它等:屬性名、常量、簡單函數;屬性名也可以用它的序號來代替

55、;的序號來代替; :邏輯運算符(:邏輯運算符(或或) :表示任選項:表示任選項 :表示上述格式可以重復下去:表示上述格式可以重復下去選擇(續)選擇(續)l3) 選擇運算是從行的角度進行的運算選擇運算是從行的角度進行的運算 l4) 舉例舉例設有一個學生設有一個學生-課程數據庫,包括學生關系課程數據庫,包括學生關系Student、課程關系、課程關系Course和選修關系和選修關系SC。選擇(續)選擇(續)學學 號號Sno姓姓 名名Sname性性 別別Ssex年年 齡齡Sage所所 在在 系系Sdept95001李勇李勇男男20CS95002劉晨劉晨女女19IS95003王敏王敏女女18MA9500

56、4張立張立男男19IS(a) Student例1例2例4例3例9選擇(續)選擇(續)(b)Course課程號課程號課程名課程名先行課先行課學分學分CnoCnameCpnoCcredit1數據庫數據庫542數學數學 23信息系統信息系統144操作系統操作系統635數據結構數據結構746數據處理數據處理 27PASCAL語言語言64例9選擇(續)選擇(續) (c)SC學學 號號課課 程程 號號成成 績績SnoCnoGrade9500119295001285950013889500229095002380例7例9選擇(續)選擇(續)例例1 查詢信息系(查詢信息系(IS系)全體學生系)全體學生 Sde

57、pt = IS (Student)或或 5 =IS (Student)結果:結果: SnoSnameSsexSageSdept95002劉晨劉晨女女19IS95004張立張立男男19IS選擇(續)選擇(續)例例2 查詢年齡小于查詢年齡小于20歲的學生歲的學生 Sage 20(Student) 或或 4 20(Student)結果:結果: SnoSnameSsexSageSdept95002劉晨劉晨女女19IS95003王敏王敏女女18MA95004張立張立男男19IS 2. 投影(投影(Projection) l1)投影運算符的含義)投影運算符的含義 從從R中選擇出若干屬性列組成新的關系中選擇

58、出若干屬性列組成新的關系 A(R) = tA | t R A:R中的屬性列中的屬性列 2. 投影(投影(Projection) l2)投影操作主要是從列的角度進行運算)投影操作主要是從列的角度進行運算 但投影之后不僅取消了原關系中的某些列,但投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組(避免重復行)而且還可能取消某些元組(避免重復行)投影(續)投影(續)l3) 舉例舉例例例3 查詢學生的姓名和所在系查詢學生的姓名和所在系即求即求Student關系上學生姓名和所在系兩個關系上學生姓名和所在系兩個屬性上的投影屬性上的投影 Sname,Sdept(Student)或或 2,5(Stud

59、ent)結果:結果:投影(續)投影(續)SnameSdept李勇李勇CS劉晨劉晨IS王敏王敏MA張立張立IS投影(續)投影(續)例例4 查詢學生關系查詢學生關系Student中都有哪些系中都有哪些系 Sdept(Student)結果:結果:SdeptCSISMA3. 連接(連接(Join) l1)連接也稱為)連接也稱為連接連接l2)連接運算的含義)連接運算的含義 從兩個關系的笛卡爾積中選取屬性間滿足從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組一定條件的元組 R S = | tr Rts StrAtsB A和和B:分別為分別為R和和S上度數相等且可比的屬性組上度數相等且可比的屬性組 :比較

60、運算符:比較運算符 連接運算從連接運算從R和和S的廣義笛卡爾積的廣義笛卡爾積RS中選中選?。ㄈ。≧關系)在關系)在A屬性組上的值與(屬性組上的值與(S關系)關系)在在B屬性組上值滿足比較關系的元組。屬性組上值滿足比較關系的元組。 ABtr ts 連接連接(續續) l3)兩類常用連接運算)兩類常用連接運算 等值連接(等值連接(equijoin) 什么是等值連接什么是等值連接 為為“”的連接運算稱為等值連接的連接運算稱為等值連接 等值連接的含義等值連接的含義 從關系從關系R與與S的廣義笛卡爾積中選取的廣義笛卡爾積中選取A、B屬性屬性值相等的那些元組,即等值連接為:值相等的那些元組,即等值連接為:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論