《數(shù)據(jù)庫系統(tǒng)原理》課件.ppt
《《數(shù)據(jù)庫系統(tǒng)原理》課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫系統(tǒng)原理》課件.ppt(214頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫系統(tǒng)原理 主講人:黃順強 Tel: 18984849883, 13985138163 13368699848 QQ:287986791 E-mail: 貴州大學(xué)軟 件 學(xué) 院 2010年 3月 數(shù)據(jù)庫發(fā)展經(jīng)歷了人工管理 ,文件系統(tǒng)和數(shù) 據(jù)庫三個階段 信息世界表示信息的模型常用 ER模型 數(shù)據(jù)模型有層次,網(wǎng)狀,關(guān)系三種 數(shù)據(jù)庫系統(tǒng)的具有外模式,模式和內(nèi)模式三 級模式 數(shù)據(jù)庫系統(tǒng)包括硬件,操作系統(tǒng), DBMS和相 關(guān)人員(比如 DBA,用戶,系統(tǒng)分析員,程序 設(shè)計工程師等) 上章內(nèi)容回顧: 2 第二章 關(guān)系數(shù)據(jù)庫 2 教學(xué)目標: 關(guān)系模型的概念 關(guān)系模型基本概念的形式化定義 關(guān)系完整性約束
2、第二章 關(guān)系數(shù)據(jù)庫 2.1 關(guān)系模型概述 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 關(guān)系數(shù)據(jù)庫簡介 系統(tǒng)而嚴格地提出關(guān)系模型的是美國 IBM公司 的 E.F.Codd 1970年提出關(guān)系數(shù)據(jù)模型 E.F.Codd, A Relational 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范式 關(guān)系數(shù)據(jù)庫簡介 關(guān)系數(shù)據(jù)庫 應(yīng)用數(shù)學(xué)方法 來
3、處理數(shù)據(jù)庫中的數(shù) 據(jù) 80年代后 , 關(guān)系數(shù)據(jù)庫系統(tǒng)成為最重要 、 最流 行的數(shù)據(jù)庫系統(tǒng) 關(guān)系數(shù)據(jù)庫簡介 典型實驗系統(tǒng) System R University INGRES 典型商用系統(tǒng) ORACLE SYBASE INFORMIX DB2 INGRES 第二章 關(guān)系數(shù)據(jù)庫 2.1 關(guān)系模型概述 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié) 2.1 關(guān)系模型概述 關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng) 關(guān)系模型的組成 關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系操作集合 關(guān)系完整性約束 1. 關(guān)系數(shù)據(jù)結(jié)構(gòu) 單一的數(shù)據(jù)結(jié)構(gòu) -關(guān)系 現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)
4、系 來表示 數(shù)據(jù)的邏輯結(jié)構(gòu) -二維表 從用戶角度 , 關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張 二維表 。 2. 關(guān)系操作集合 1) 常用的關(guān)系操作 2) 關(guān)系操作的特點 3) 關(guān)系數(shù)據(jù)語言的種類 4) 關(guān)系數(shù)據(jù)語言的特點 關(guān)系操作集合 1) 常用的關(guān)系操作 查詢 選擇 (select)、 投影 (project)、 連接 (join)、 除 (divide)、 并 (union)、 交 (intersection)、 差 (difference) 數(shù)據(jù)更新 插入 (insert)、 刪除 (delete)、 修改 (update) 查詢的表達能力是其中最主要的部分 關(guān)系操作集合(續(xù)) 2) 關(guān)系操作的
5、特點 集合操作方式 , 即操作的對象和結(jié)果都是集合 。 非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄 文件系統(tǒng)的數(shù)據(jù)操作方式 關(guān)系操作集合(續(xù)) 3) 關(guān)系數(shù)據(jù)語言的種類 有三種:即關(guān)系代數(shù)語言 關(guān)系演算語言 具有以上兩種特點的語言 關(guān)系代數(shù)語言 用對關(guān)系的運算來表達查詢要求 典型代表: ISBL 關(guān)系操作集合(續(xù)) 關(guān)系數(shù)據(jù)語言的種類 ( 續(xù) ) 關(guān)系演算語言:用謂詞來表達查詢要求 元組關(guān)系演算語言 - 謂詞變元的基本對象是元組變量 - 典型代表: APLHA, QUEL 域關(guān)系演算語言 - 謂詞變元的基本對象是域變量 - 典型代表: QBE 具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言 典型代表: S
6、QL(Structurel Query Language) 它是集 Query、 DDL、 DML、 DCL 于一體的關(guān)系數(shù)據(jù)語言 , 是關(guān)系數(shù)據(jù)庫的標準語言 關(guān)系操作集合(續(xù)) 4) 關(guān)系數(shù)據(jù)語言的特點 關(guān)系語言是一種高度非過程化的語言 存取路徑的選擇由 DBMS的優(yōu)化機制來完成 用戶不必用循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作 能夠嵌入高級語言中使用 關(guān)系代數(shù) 、 元組關(guān)系演算和域關(guān)系演算三種語言 在表達能力上完全等價 3. 關(guān)系的三類完整性約束 實體完整性 通常由關(guān)系系統(tǒng)自動支持 參照完整性 早期系統(tǒng)不支持 , 目前大型系統(tǒng)能自動支持 用戶定義的完整性 反映應(yīng)用領(lǐng)域需要遵循的約束條件 , 體現(xiàn)了具體
7、 領(lǐng)域中的語義約束 用戶定義后由系統(tǒng)支持 第二章 關(guān)系數(shù)據(jù)庫 2.1 關(guān)系模型概述 2.2 關(guān)系的數(shù)據(jù)結(jié)構(gòu)及形式化定義 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié) 2.2 關(guān)系的數(shù)據(jù)結(jié)構(gòu)及形式化定義 關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上 關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念 關(guān)系 關(guān)系模式 關(guān)系數(shù)據(jù)庫 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.2.1 關(guān)系 2.2.2 關(guān)系模式 2.2.3 關(guān)系數(shù)據(jù)庫 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.2.1 關(guān)系 2.2.2 關(guān)系模式 2.2.3 關(guān)系數(shù)據(jù)庫 2.2.1 關(guān)系 域 ( Domain) 2. 笛卡爾積 ( Cartesian Product) 3. 關(guān)系 (
8、Relation) 域( Domain) 域 是一組具有相同數(shù)據(jù)類型的值的集合 。 例 整數(shù) 實數(shù) 介于某個取值范圍的整數(shù) 長度指定長度的字符串集合 男 , 女 介于某個取值范圍的日期 2. 笛卡爾積( Cartesian Product) 1) 笛卡爾積 給定一組域 D1, D2, , Dn, 這些域中可以有相同 的 。 D1, D2, , Dn的笛卡爾積為: D1 D2 Dn ( d1, d2, , dn) diDi, i 1, 2, , n 所有域的所有取值的一個組合 不能重復(fù) 笛卡爾積(續(xù) ) 例 2-1 給出三個域: D1=SUPERVISOR = 張清玫 , 劉逸 D2=SPECI
9、ALITY=計算機專業(yè) , 信息專業(yè) D3=POSTGRADUATE=李勇 , 劉晨 , 王敏 則 D1, D2, D3的笛卡爾積為: D1 D2 D3 (張清玫 , 計算機專業(yè) , 李勇 ), (張清玫 , 計 算機專業(yè) , 劉晨 ), (張清玫 , 計算機專業(yè) , 王敏 ), (張清玫 , 信息專業(yè) , 李勇 ), (張清玫 , 信息專業(yè) , 劉晨 ), (張清玫 , 信息專業(yè) , 王敏 ), (劉逸 , 計算機專業(yè) , 李勇 ), (劉逸 , 計算機專業(yè) , 劉晨 ), (劉逸 , 計算機專業(yè) , 王敏 ), (劉逸 , 信息專業(yè) , 李勇 ), (劉逸 , 信息專業(yè) , 劉晨 ), (
10、劉逸 , 信息 專業(yè) , 王敏 ) 笛卡爾積(續(xù) ) 2) 元組 ( Tuple) 笛卡爾積中每一個元素 ( d1, d2, , dn) 叫作一個 n元組 ( n-tuple) 或簡稱元組 。 例 3) 分量( Component) 笛卡爾積元素( d1, d2, , dn)中的每一個值 di叫作一個 分量。 4) 基數(shù) ( Cardinal number) 若 Di( i 1, 2, , n) 為有限集 , 其基數(shù)為 mi ( i 1, 2, , n) , 則 D1 D2 Dn的基數(shù) M為: 在上例中,基數(shù): 2 2 3 12,即 D1 D2 D3共 有 2 2 3 12個元組 笛卡爾積(續(xù)
11、 ) mM i n 1i 笛卡爾積(續(xù) ) 5)笛卡爾積的表示方法 笛卡爾積可表示為一個二維表 。 表中的每行對應(yīng) 一個元組 , 表中的每列對應(yīng)一個域 。 在上例中 , 12個元組可列成一張二維表 表 2 . 1 D 1 , D 2 , D 3 的笛卡爾積 S U P E R V I S OR S P E C I A L IT Y P OS T GR A D U A T E 張清玫 計算機專業(yè) 李勇 張清玫 計算機專業(yè) 劉晨 張清玫 計算機專業(yè) 王敏 張清玫 信息專業(yè) 李勇 張清玫 信息專業(yè) 劉晨 張清玫 信息專業(yè) 王敏 劉逸 計算機專業(yè) 李勇 劉逸 計算機專業(yè) 劉晨 劉逸 計算機專業(yè) 王敏
12、劉逸 信息專業(yè) 李勇 劉逸 信息專業(yè) 劉晨 劉逸 信息專業(yè) 王敏 笛卡爾積(續(xù) ) 表 2 . 1 D 1 , D 2 , D 3 的笛卡爾積 S U P E R V I S OR S P E C I A L IT Y P OS T GR A D U A T E 張清玫 計算機專業(yè) 李勇 張清玫 計算機專業(yè) 劉晨 張清玫 計算機專業(yè) 王敏 張清玫 信息專業(yè) 李勇 張清玫 信息專業(yè) 劉晨 張清玫 信息專業(yè) 王敏 劉逸 計算機專業(yè) 李勇 劉逸 計算機專業(yè) 劉晨 劉逸 計算機專業(yè) 王敏 劉逸 信息專業(yè) 李勇 劉逸 信息專業(yè) 劉晨 劉逸 信息專業(yè) 王敏 3. 關(guān)系( Relation) 1) 關(guān)系 D
13、1 D2 Dn的子集叫作在域 D1, D2, , Dn上 的關(guān)系 , 表示為 R( D1, D2, , Dn) R: 關(guān)系名 n: 關(guān)系的目或度 ( Degree) 關(guān)系(續(xù)) 1) 關(guān)系 (續(xù) ) 注意 關(guān)系是笛卡爾積的有限子集 。 無限關(guān)系在數(shù)據(jù)庫系統(tǒng) 中是無意義的 。 由于笛卡爾積不滿足交換律 , 即 (d1, d2, , dn )(d2, d1, , dn ) 但關(guān)系滿足交換律 , 即 (d1, d2 , , di , dj , , dn) =( d1, d2 , , dj, di , , dn) ( i, j = 1, 2, , n) 解決方法:為關(guān)系的每個列附加一個屬性名以取消 關(guān)
14、系元組的有序性 關(guān)系(續(xù)) 例如在表 2.1 的笛卡爾積中取出有實際意義的元組 來構(gòu)造關(guān)系 關(guān)系: SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE) 關(guān)系名 , 屬性名 假設(shè): 導(dǎo)師與專業(yè): 1:1( 即一個導(dǎo)師只能對一個專業(yè) ) , 導(dǎo)師與研究生: 1:n( 一個研究生只能遵從一個導(dǎo)師 ) 于是: SAP關(guān)系可以包含三個元組 (張清玫 , 信息專業(yè) , 李勇 ), (張清玫,信息專業(yè),劉晨 ), (劉逸,信息專業(yè),王敏 ) 關(guān)系(續(xù)) 2) 元組 關(guān)系中的每個元素是關(guān)系中的元組 , 通常用 t表示 。 3) 單元關(guān)系與二元關(guān)系 當 n=1時 , 稱該關(guān)系為單
15、元關(guān)系 ( Unary relation) 。 當 n=2時 , 稱該關(guān)系為二元關(guān)系 ( Binary relation) 。 關(guān)系(續(xù)) 4) 關(guān)系的表示 關(guān)系也是一個二維表 , 表的每行對應(yīng)一個元組 , 表的 每列對應(yīng)一個域 。 表 2 . 2 S A P 關(guān)系 S U P E R V I S O R S P E C I A L I T Y P O S T G R A D U A T E 張清玫 信息專業(yè) 李勇 張清玫 信息專業(yè) 劉晨 劉逸 信息專業(yè) 王敏 關(guān)系(續(xù)) 5) 屬性 關(guān)系中不同列可以對應(yīng)相同的域 , 為了加以區(qū)分 , 必 須對每列起一個名字 , 稱為屬性 ( Attribut
16、e) 。 n目關(guān)系必有 n個屬性 。 關(guān)系(續(xù)) 6) 碼 候選碼 ( Candidate key) 若關(guān)系中的某一屬性組的值能唯一地標識一個元 組,則稱該屬性組為候選碼,在有多個 候 選碼 時可以選一個作為主碼。 在最簡單的情況下,候選碼只包含一個屬性。 在最極端的情況下,關(guān)系模式的所有屬性組 是這個關(guān)系模式的候選碼,稱為 全碼( All-key) 關(guān)系(續(xù)) 碼 (續(xù) ) 主碼 若一個關(guān)系有多個候選碼 , 則選定其中一個 為主碼 ( Primary key) 主碼的諸屬性稱為 主屬性 ( Prime attribute) 。 不包含在任何侯選碼中的屬性稱為 非碼屬性 ( Non-key a
17、ttribute) 關(guān)系(續(xù)) 7) 三類關(guān)系 ( 或稱三類表 ) 基本關(guān)系 ( 基本表或基表 ) 實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示 查詢表 查詢結(jié)果對應(yīng)的表 視圖表 由基本表或其他視圖表導(dǎo)出的表 , 是虛表 , 不對 應(yīng)實際存儲的數(shù)據(jù) 8) 基本關(guān)系的性質(zhì) 列是同質(zhì)的( Homogeneous) 每一列中的分量是同一類型的數(shù)據(jù) , 來自同 一個域 不同的列可出自同一個域 其中的每一列稱為一個屬性 不同的屬性要給予不同的屬性名 基本關(guān)系的性質(zhì) (續(xù) ) 上例中也可以只給出兩個域: 人 ( PERSON) =張清玫 , 劉逸 , 李勇 , 劉晨 , 王敏 專業(yè) ( SPECIALITY)
18、=計算機專業(yè) , 信息專業(yè) SAP關(guān)系的導(dǎo)師屬性和研究生屬性都從 PERSON域中取值 為了避免混淆 , 必須給這兩個屬性取不同的屬性名 , 而不能直接使 用域名 。 例如定義 : 導(dǎo)師屬性名為 SUPERVISOR-PERSON( 或 SUPERVISOR) 研究生屬性名為 POSTGRADUATE-PERSON( 或 POSTGRADUATE) 基本關(guān)系的性質(zhì) (續(xù) ) 列的順序無所謂 列的次序可以任意交換 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品 (如 ORACLE), 增加新屬性時,永遠是插至最后一列 但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一 性質(zhì),例如 FoxPro仍然區(qū)分了屬性順序 基本關(guān)系的性質(zhì) (
19、續(xù) ) 任意兩個元組不能完全相同 由笛卡爾積的性質(zhì)決定 但許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì) 。 例如 : Oracle, SQL SERVER, FoxPro等都允許關(guān)系表中存 在兩個完全相同的元組 , 除非用戶特別定義了相應(yīng)的 約束條件 。 基本關(guān)系的性質(zhì) (續(xù) ) 行的順序無所謂 行的次序可以任意交換 遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品 (如 ORACLE), 插入一個元組時永遠插至最后一行 但也有許多關(guān)系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性 質(zhì) , 例如 FoxPro仍然區(qū)分了元組的順序 基本關(guān)系的性質(zhì) (續(xù) ) 分量必須取原子值 每一個分量都必須是不可分的數(shù)據(jù)項。 這是規(guī)范條件中最基本的一條 表 2 .
20、3 非規(guī)范化關(guān)系 P O S T G R A D U A T E S U P E R V I S O R S P E C I A L I T Y P G 1 P G 2 張清玫 信息專業(yè) 李勇 劉晨 劉逸 信息專業(yè) 王敏 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.2.1 關(guān)系 2.2.2 關(guān)系模式 2.2.3 關(guān)系數(shù)據(jù)庫 2.2.2 關(guān)系模式 1 什么是關(guān)系模式 2定義關(guān)系模式 3. 關(guān)系模式與關(guān)系 1什么是關(guān)系模式 關(guān)系模式 ( Relation Schema) 是型 關(guān)系是值 關(guān)系模式是對關(guān)系的描述 元組集合的結(jié)構(gòu) 屬性構(gòu)成 屬性來自的域 屬性與域之間的映象關(guān)系 元組語義以及完整性約束條件 屬性間的數(shù)據(jù)依
21、賴關(guān)系集合 2定義關(guān)系模式 關(guān)系模式可以形式化地表示為: R( U, D, dom, F) R 關(guān)系名 U 組成該關(guān)系的屬性名集合 D 屬性組 U中屬性所來自的域 dom 屬性向域的映象集合 F 屬性間的數(shù)據(jù)依賴關(guān)系集合 定義關(guān)系模式 (續(xù) ) 例 : 導(dǎo)師和研究生出自同一個域 人, 取不同的屬性名,并在模式中定義屬性向 域 的映象,即說明它們分別出自哪個域: dom( SUPERVISOR-PERSON) = dom( POSTGRADUATE-PERSON) =PERSON 定義關(guān)系模式 (續(xù) ) 關(guān)系模式通??梢院営洖?R (U) 或 R (A1, A2, , An) R 關(guān)系名 A1,
22、 A2, , An 屬性名 注:域名及屬性向域的映象常常直接說明為 屬性的類型、長度 3. 關(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ū)別 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.2.1 關(guān)系 2.2.2 關(guān)系模式 2.2.3 關(guān)系數(shù)據(jù)庫 2.2.3 關(guān)系數(shù)據(jù)庫 1. 關(guān)系數(shù)據(jù)庫 2. 關(guān)系數(shù)據(jù)庫的型與值 1. 關(guān)系數(shù)據(jù)庫 在一個給定的應(yīng)用領(lǐng)域中 , 所有實體及實 體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù) 據(jù)庫 。 2. 關(guān)系數(shù)據(jù)庫的型與值 關(guān)系數(shù)據(jù)庫也有型和值之分 關(guān)系數(shù)據(jù)庫的型
23、稱為關(guān)系數(shù)據(jù)庫模式 , 是對關(guān)系 數(shù)據(jù)庫的描述 若干域的定義 在這些域上定義的若干關(guān)系模式 關(guān)系數(shù)據(jù)庫的值 是這些關(guān)系模式在某一時刻對應(yīng) 的關(guān)系的集合 , 通常簡稱為關(guān)系數(shù)據(jù)庫 第二章 關(guān)系數(shù)據(jù)庫 2.1 關(guān)系模型概述 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié) 2.3 關(guān)系的完整性 關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件 。 關(guān)系模型中三類完整性約束: 實體完整性 參照完整性 用戶定義的完整性 實體完整性和參照完整性是關(guān)系模型必須滿足的完整性 約束條件 , 被稱作是關(guān)系的兩個 不變性 , 應(yīng)該由關(guān)系 系統(tǒng)自動支持 。 關(guān)系的完整性 (續(xù)
24、) 2.3.1 實體完整性 2.3.2. 參照完整性 2.3.3. 用戶定義的完整性 關(guān)系的完整性 (續(xù) ) 2.3.1 實體完整性 2.3.2. 參照完整性 2.3.3. 用戶定義的完整性 2.3.1 實體完整性 實體完整性規(guī)則 ( Entity Integrity) 若屬性 A是基本關(guān)系 R的主屬性 , 則屬性 A不能取空值 例 SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE) POSTGRADUATE屬性為主碼 ( 假設(shè)研究生不會重名 ) , 則其不能取空值 實體完整性 (續(xù) ) 關(guān)系模型必須遵守實體完整性規(guī)則的原因 (1) 實體完整性規(guī)則是針對基本關(guān)系
25、而言的 。 一個基 本表通常對應(yīng)現(xiàn)實世界的一個實體集或多對多聯(lián)系 。 (2) 現(xiàn)實世界中的實體和實體間的聯(lián)系都是可區(qū)分的 , 即它們具有某種唯一性標識 。 (3) 相應(yīng)地 , 關(guān)系模型中以主碼作為唯一性標識 。 實體完整性 (續(xù) ) 關(guān)系模型必須遵守實體完整性規(guī)則的原因 (續(xù) ) (4) 主碼中的屬性即主屬性不能取空值 。 空值就是 不知道 或 無意義 的值 。 主屬性取空值 , 就說明存在某個不可標識的實體 , 即 存在不可區(qū)分的實體 , 這與第 ( 2) 點相矛盾 , 因此 這個規(guī)則稱為實體完整性 。 實體完整性 (續(xù) ) 注意 實體完整性規(guī)則規(guī)定基本關(guān)系的所有 主屬性都不能取空值 例 選
26、修(學(xué)號,課程號,成績) 學(xué)號、課程號為主碼,則兩個屬性都不 能取空值。 關(guān)系的完整性 2.3.1 實體完整性 2.3.2. 參照完整性 2.3.3. 用戶定義的完整性 2.3.2 參照完整性 1. 關(guān)系間的引用 2. 外碼 3. 參照完整性規(guī)則 1. 關(guān)系間的引用 在關(guān)系模型中實體及實體間的聯(lián)系都是用 關(guān)系來描述的 , 因此可能存在著關(guān)系與關(guān) 系間的引用 。 例 2-2 學(xué)生實體 、 專業(yè)實體以及專業(yè)與學(xué)生 間的一對多聯(lián)系 學(xué)生 ( 學(xué)號 , 姓名 , 性別 , 專業(yè)號 , 年齡 ) 專業(yè) ( 專業(yè)號 , 專業(yè)名 ) 學(xué)號 姓名 性別 專業(yè)號 年齡 801 張三 女 01 19 802 李四
27、 男 01 20 803 王五 男 01 20 804 趙六 女 02 20 805 錢七 男 02 19 專業(yè)號 專業(yè)名 01 信息 02 數(shù)學(xué) 03 計算機專業(yè)( 專業(yè)號 ,專業(yè)名) 學(xué)生( 學(xué)號 ,姓名,性別, 專業(yè)號 ,年齡) 關(guān)系間的引用 (續(xù) ) 例 2-3 學(xué)生 、 課程 、 學(xué)生與課程之間的多對多聯(lián) 系 學(xué)生 ( 學(xué)號 , 姓名 , 性別 , 專業(yè)號 , 年齡 課程 ( 課程號 , 課程名 , 學(xué)分 ) 選修 ( 學(xué)號 , 課程號 , 成績 ) 課程號 課程名 學(xué)分 01 數(shù)據(jù)庫 4 02 數(shù)據(jù)結(jié)構(gòu) 4 03 編譯 4 04 P ASC AL 2 學(xué)號 姓名 性別 專業(yè)號 年齡
28、 801 張三 女 01 19 802 李四 男 01 20 803 王五 男 01 20 804 趙六 女 02 20 805 錢七 男 02 19 學(xué)號 課程號 成績 801 04 92 801 03 78 801 02 85 802 03 82 802 04 90 803 04 88 學(xué)生 學(xué)生選課 課程 關(guān)系間的引用 (續(xù) ) 例 2-4 學(xué)生實體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系 (一對多 ) 學(xué)生 ( 學(xué)號 , 姓名 , 性別 , 專業(yè)號 , 年齡 , 班長 ) 學(xué)號 姓名 性別 專業(yè)號 年齡 班長 801 張三 女 01 19 802 802 李四 男 01 20 803 王五 男 01 20
29、802 804 趙六 女 02 20 805 805 錢七 男 02 19 2外碼( Foreign Key) 設(shè) F是基本關(guān)系 R的一個或一組屬性 , 但不 是關(guān)系 R的碼 。 如果 F與基本關(guān)系 S的主碼 Ks相對應(yīng) , 則稱 F是基本關(guān)系 R的 外碼 基本關(guān)系 R稱 為 參照關(guān)系 ( Referencing Relation) 基本關(guān)系 S稱 為 被參照關(guān)系 ( Referenced Relation) 或 目標關(guān)系 ( Target Relation) 。 外碼 (續(xù) ) 說明 關(guān)系 R和 S不一定是不同的關(guān)系 目標關(guān)系 S的主碼 Ks 和參照關(guān)系的外碼 F必須定義 在同一個(或一組)
30、域上 外碼并不一定要與相應(yīng)的主碼同名 當外碼與相應(yīng)的主碼屬于不同關(guān)系時,往往 取相同 的名字,以便于識別 3. 參照完整性規(guī)則 若屬性 ( 或?qū)傩越M ) F是基本關(guān)系 R的外碼 它與基本關(guān)系 S的主碼 Ks相對應(yīng) ( 基本關(guān) 系 R和 S不一定是不同的關(guān)系 ) , 則對 于 R中每個元組在 F上的值必須為: 或者取空值 ( F的每個屬性值均為空值 ) 或者等于 S中某個元組的主碼值 。 參照完整性規(guī)則 (續(xù) ) 學(xué)生關(guān)系中每個元組的 專業(yè)號 屬性只 取下面兩類值: ( 1) 空值 , 表示尚未給該學(xué)生分配專業(yè) ( 2) 非空值 , 這時該值必須 是專業(yè)關(guān)系中某個元組 的 專業(yè)號 值 , 表示該
31、學(xué)生不可能分配到一個不 存在的專業(yè)中 參照完整性規(guī)則 (續(xù) ) 選修( 學(xué)號 , 課程號 ,成績) 學(xué)號和課程號是選修關(guān)系中的主屬性 按照實體完整性和參照完整性規(guī)則,它們 只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼 值 參照完整性規(guī)則 (續(xù) ) 學(xué)生( 學(xué)號 ,姓名,性別,專業(yè)號,年齡, 班長 ) 班長屬性值可以取兩類值: ( 1)空值,表示該學(xué)生所在班級尚未選出班長,或該學(xué) 生本人即是班長; ( 2)非空值,這時該值必須是本關(guān)系中某個元組的學(xué)號 值 關(guān)系的完整性 (續(xù) ) 2.3.1 實體完整性 2.3.2. 參照完整性 2.3.3. 用戶定義的完整性 2.3.3 用戶定義的完整性 用戶定義的完整
32、性是針對某一具體關(guān)系數(shù)據(jù)庫 的約束條件 , 反映某一具體應(yīng)用所涉及的數(shù)據(jù) 必須滿足的語義要求 。 關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制 , 以便用統(tǒng)一的系統(tǒng)的方法處理它們 , 而不要 由應(yīng)用程序承擔(dān)這一功能 。 用戶定義的完整性 (續(xù) ) 例 : 課程 (課程號 , 課程名 , 學(xué)分 ) 課程名 屬性必須取唯一值 非主屬性 課程名 也不能取空值 學(xué)分 屬性只能取值 1, 2, 3, 4 小結(jié) 關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系 域 笛卡爾積 關(guān)系 - 關(guān)系,屬性,元組 - 候選碼,主碼,主屬性 - 基本關(guān)系的性質(zhì) 關(guān)系模式 關(guān)系數(shù)據(jù)庫 關(guān)系的數(shù)據(jù)操作集合 查詢 選擇、投影、連接、除、并、交、差 數(shù)據(jù)更新
33、插入、刪除、修改 關(guān)系的完整性約束 實體完整性 參照完整性 外碼 用戶定義的完整性 2.4 關(guān)系代數(shù) 概述 傳統(tǒng)的集合運算 專門的關(guān)系運算 概述 1. 關(guān)系代數(shù) 2. 運算的三要素 3. 關(guān)系代數(shù)運算的三個要素 4. 關(guān)系代數(shù)運算的分類 5. 表示記號 概述 1.關(guān)系代數(shù) 一種抽象的查詢語言 用對關(guān)系的運算來表達查詢 概述 (續(xù) ) 2 關(guān)系代數(shù)運算的三個要素 運算對象:關(guān)系 運算結(jié)果:關(guān)系 運算符:四類 概述 (續(xù) ) 運算符 ( 續(xù) ) 集合運算符 將關(guān)系看成元組的集合 運算是從關(guān)系的 水平 方向即行的角度來進行 專門的關(guān)系運算符 不僅涉及行而且涉及列 算術(shù)比較符 輔助專門的關(guān)系運算符進行
34、操作 邏輯運算符 輔助專門的關(guān)系運算符進行操作 概述 (續(xù) ) 4關(guān)系代數(shù)運算的分類 傳統(tǒng)的集合運算 并 、 差 、 交 、 廣義笛卡爾積 專門的關(guān)系運算 選擇 、 投影 、 連接 、 除 概述 (續(xù) ) 5表示記號 ( 1) R, tR, tAi 設(shè)關(guān)系模式為 R(A1, A2, , An) 它的一個關(guān)系設(shè)為 R。 tR表示 t是 R的一個元組 tAi則表示元組 t中相應(yīng)于屬性 Ai的一個分量 專門的關(guān)系運算 專門的關(guān)系運算包括選擇、投影、連接、除等。為了敘述上的方 便,首先引入幾個記號。 (1)設(shè)關(guān)系模式為 R(A1,A2,A n),tR表示 t是 R的一個元組。 tAi 表示元組 t中相
35、應(yīng)于屬性 Ai的一個分量。 ( 2) 若 A=Ai1, Ai2, , Aik,其中 Ai1, Ai2, , Aik是 A1, A2, , An中的一部分,則 A稱為屬性列或域列。 tA=(tAi1, tAi2, , tAik)表示元組 t在屬性列 A上諸分量的集合。 A則表 示 A1, A2, , An中去掉 Ai1, Ai2, , Aik后剩余的屬性組 。 概述 (續(xù) ) (3) tr ts R為 n目關(guān)系, S為 m目關(guān)系。 tr R, tsS, tr ts稱為 元組的連接。它是一個 n + m列的元組,前 n個分量為 R 中的一個 n元組,后 m個分量為 S中的一個 m元組。 概述 (續(xù)
36、 ) (4)象集 Zx 給定一個關(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ù) 概述 傳統(tǒng)的集合運算 專門的關(guān)系運算 2.4.1 傳統(tǒng)的集合運算 并 差 交 廣義笛卡爾積 1. 并( Union) R和 S 具有相同的目 n( 即兩個關(guān)系都有 n個屬性 ) 相應(yīng)的屬性取自同一個域 R S 仍為 n目關(guān)系 , 由屬于 R或?qū)儆?S的元組組成 R S = t|t R t S 并 (續(xù) ) A B C a1 b1
37、 c1 a1 b2 c2 a2 b2 c1 A B C a1 b1 c1 a1 b2 c2 a1 b3 c2 a2 b2 c1 A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R S R S 2. 差( Difference) R和 S 具有相同的目 n 相應(yīng)的屬性取自同一個域 R - S 仍為 n目關(guān)系 , 由屬于 R而不屬于 S的所有元組組成 R -S = t|tR tS 差 (續(xù) ) A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 A B C a1 b1 c1 A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R S R-S 3. 交(
38、 Intersection) R和 S 具有相同的目 n 相應(yīng)的屬性取自同一個域 RS 仍為 n目關(guān)系 , 由既屬于 R又屬于 S的元組組成 RS = t|t R t S RS = R (R-S) 交 (續(xù) ) A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 A B C a1 b2 c2 a2 b2 c1 A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R S R S 4. 廣義笛卡爾積( Extended Cartesian Product) R n目關(guān)系 , k1個元組 S m目關(guān)系 , k2個元組 R S 列: ( n+m) 列的元組的集合 元組的前
39、n列是關(guān)系 R的一個元組 后 m列是關(guān)系 S的一個元組 行: k1 k2個元組 R S = tr ts |tr R tsS 廣義笛卡爾積 (續(xù) ) A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 A B C a1 b1 c1 a1 b1 c1 a1 b1 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a2 b2 c1 A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R S R S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 a1 b2 c2 a1 b3 c2 a2 b2 c1 a1 b2
40、 c2 a1 b3 c2 a2 b2 c1 2.4 關(guān)系代數(shù) 概述 傳統(tǒng)的集合運算 專門的關(guān)系運算 2.4.2 專門的關(guān)系運算 選擇 投影 連接 除 1. 選擇( Selection) 1) 選擇又稱為限制 ( Restriction) 2) 選擇運算符的含義 在關(guān)系 R中選擇滿足給定條件的諸元組 F(R) = t|tR F(t)= 真 F:選擇條件 , 是一個邏輯表達式 , 基本形式為: ( X1Y1 ) ( X2Y2 ) :比較運算符 ( , , , , 或 ) X1, Y1等:屬性名 、 常量 、 簡單函數(shù); 屬性名也可以用它的序號來代替; :邏輯運算符 ( 或 ) :表示任選項 :表示
41、上述格式可以重復(fù)下去 選擇(續(xù)) 3) 選擇運算是從行的角度進行的運算 4) 舉例 設(shè)有一個學(xué)生 -課程數(shù)據(jù)庫 , 包括學(xué)生關(guān)系 Student 、 課程關(guān)系 Course和選修關(guān)系 SC。 選擇(續(xù)) 學(xué) 號 Sno 姓 名 Sname 性 別 Ssex 年 齡 Sage 所 在 系 Sdept 95001 李勇 男 20 CS 95002 劉晨 女 19 IS 95003 王敏 女 18 MA 95004 張立 男 19 IS (a) Student 例 1 例 2 例 4 例 3 例 9 選擇(續(xù)) (b) Course 課程號 課程名 先行課 學(xué)分 Cno Cname Cpno Ccr
42、edit 1 數(shù)據(jù)庫 5 4 2 數(shù)學(xué) 2 3 信息系統(tǒng) 1 4 4 操作系統(tǒng) 6 3 5 數(shù)據(jù)結(jié)構(gòu) 7 4 6 數(shù)據(jù)處理 2 7 PASCAL語言 6 4 例 9 選擇(續(xù)) (c) SC 學(xué) 號 課 程 號 成 績 Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 例 7 例 9 選擇(續(xù)) 例 1 查詢信息系 ( IS系 ) 全體學(xué)生 Sdept = IS (Student) 或 5 =IS (Student) 結(jié)果: Sno Sname Ssex Sage Sdept 95002 劉晨 女 19 I
43、S 95004 張立 男 19 IS 選擇(續(xù)) 例 2 查詢年齡小于 20歲的學(xué)生 Sage 20(Student) 或 4 20(Student) 結(jié)果: Sno Sname Ssex Sage Sdept 95002 劉晨 女 19 IS 95003 王敏 女 18 MA 95004 張立 男 19 IS 2. 投影( Projection) 1) 投影運算符的含義 從 R中選擇出若干屬性列組成新的關(guān)系 A(R) = tA | t R A: R中的屬性列 2. 投影( Projection) 2) 投影操作主要是從列的角度進行運算 但投影之后不僅取消了原關(guān)系中的某些列 , 而且 還可能取
44、消某些元組 ( 避免重復(fù)行 ) 投影(續(xù)) 3) 舉例 例 3 查詢學(xué)生的姓名和所在系 即求 Student關(guān)系上學(xué)生姓名和所在系兩個屬性上 的投影 Sname, Sdept(Student) 或 2, 5(Student) 結(jié)果: 投影(續(xù)) Sname Sdept 李勇 CS 劉晨 IS 王敏 MA 張立 IS 投影(續(xù)) 例 4 查詢學(xué)生關(guān)系 Student中都有哪些系 Sdept(Student) 結(jié)果: Sdept CS IS MA 3. 連接( Join) 1) 連接也稱為 連接 2) 連接運算的含義 從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件 的元組 R S = | tr R
45、ts S trAtsB A和 B: 分別為 R和 S上度數(shù)相等且可比的屬性組 :比較運算符 連接運算從 R和 S的廣義笛卡爾積 R S中選?。?R 關(guān)系)在 A屬性組上的值與( S關(guān)系)在 B屬性組上 值滿足比較關(guān)系的元組。 AB tr ts 連接 (續(xù) ) 3)兩類常用連接運算 等值連接( equijoin) 什么是等值連接 -為的連接運算稱為等值連接 等值連接的含義 - 從關(guān)系 R與 S的廣義笛卡爾積中選取 A、 B 屬性值相等的那些元組 , 即等值連接為: R S = | tr R ts S trA = tsB A=B tr ts 連接 (續(xù) ) 自然連接 ( Natural join)
46、 什么是自然連接 - 自然連接是一種特殊的等值連接 - 兩個關(guān)系中進行比較的分量必須是相 同的屬性組 - 在結(jié)果中把重復(fù)的屬性列去掉 自然連接的含義 R和 S具有相同的屬性組 B R S = | tr R ts S trB = tsB t r ts 連接 (續(xù) ) 4) 一般的連接操作是從行的角度進行運算 。 自然連接還需要取消重復(fù)列,所以是同時從行和 列的角度進行運算。 AB R S 連接 (續(xù) ) 5)舉例 例 5 A B C a1 b1 5 a1 b2 6 a2 b3 8 a2 b4 12 B E b 1 3 b 2 7 b 3 10 b3 2 b 5 2 R S 連接 (續(xù) ) R S
47、 A R.B C S.B E a1 b1 5 b2 7 a 1 b1 5 b3 10 a 1 b2 6 b2 7 a 1 b2 6 b3 10 a2 b3 8 b3 10 C E 連接 (續(xù) ) 等值連接 R S R.B=S.B A R.B C S.B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2 b3 8 b3 10 a2 b3 8 b3 2 連接 (續(xù) ) 自然連接 R S A B C E a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3 8 2 4)象集 Z 給定一個關(guān)系 R( X, Z) , X和 Z為屬性組 。 當 tX=x時 , x在 R中的
48、 象集 ( Images Set) 為: Zx=tZ|t R, tX=x 它表示 R中屬性組 X上值為 x的諸元組在 Z上分 量的集合。 4)象集 Z A B C a1 b1 c2 a 2 b3 c7 a 3 b4 c6 a 1 b2 c3 a 4 b6 c6 a 2 b2 c3 a 1 b2 c1 B C D b1 c2 d1 b2 c1 d1 b2 c3 d2 R S 4. 除( Division) 給定關(guān)系 R (X, Y) 和 S (Y, Z), 其中 X, Y, Z為屬性組 。 R中的 Y與 S中的 Y可以有不同的屬性名 , 但必須出自相同 的域集 。 R與 S的除運算得到一個新的關(guān)
49、系 P(X), P是 R中 滿足下列條件的元組在 X屬性列上的投影:元組在 X上分 量值 x的象集 Yx包含 S在 Y上投影的集合 。 R S = tr X | tr R Y (S) Yx Yx: x在 R中的象集 , x = trX 除 (續(xù) ) 2) 除操作是同時從行和列角度進行運算 3) 舉例 例 6 R S 除 (續(xù) ) A B C a1 b1 c2 a 2 b3 c7 a 3 b4 c6 a 1 b2 c3 a 4 b6 c6 a 2 b2 c3 a 1 b2 c1 B C D b1 c2 d1 b2 c1 d1 b2 c3 d2 R S A a 1 R S 分析: 在關(guān)系 R中 ,
50、 A可以取四個值 a1, a2, a3, a4 a1的象集為 (b1, c2), (b2, c3), (b2, c1) a2的象集為 (b3, c7), (b2, c3) a3的象集為 (b4, c6) a4的象集為 (b6, c6) S在 (B, C)上的投影為 (b1, c2), (b2, c1), (b2, c3) 只有 a1的象集包含了 S在 (B, C)屬性組上的投影 所以 R S =a1 5綜合舉例 以學(xué)生 -課程數(shù)據(jù)庫為例 例 7 查詢至少選修 1號課程和 3號課程的學(xué)生號碼 首先建立一個臨時關(guān)系 K: 然后求: Sno.Cno(SC) K Cno 1 3 綜合舉例 (續(xù) ) 例
51、 7續(xù) Sno.Cno(SC) 95001象集 1, 2, 3 95002象集 2, 3 Cno(K)=1, 3 于是: Sno.Cno(SC) K=95001 Sno Cno 95001 1 95001 2 95001 3 95002 2 95002 3 綜合舉例 (續(xù) ) 例 8 查詢選修了 2號課程的學(xué)生的學(xué)號 。 Sno( Cno=2( SC) 95001, 95002 綜合舉例 (續(xù) ) 例 9 查詢至少選修了一門其直接先行課為 5號課程的課 程的學(xué)生姓名 。 Sname(Cpno=5(Course SC Student) 或 Sname(Cpno=5(Course) SC Sno,
52、 Sname(Student) 或 Sname (Sno (Cpno=5 (Course) SC) Sno, Sname (Student) 綜合舉例 (續(xù) ) 例 10 查詢選修了全部課程的學(xué)生號碼和姓名 。 Sno, Cno( SC) Cno( Course) Sno, Sname( Student) 小結(jié) l 關(guān)系代數(shù)運算 關(guān)系代數(shù)運算 并 、 差 、 交 、 笛卡爾積 、 投影 、 選擇 、 連接 、 除 基本運算 并 、 差 、 笛卡爾積 、 投影 、 選擇 交 、 連接 、 除 可以用 5種基本運算來表達 引進它們并不增加語言的能力 , 但可以簡化表達 小結(jié) (續(xù) ) l 關(guān)系代數(shù)
53、表達式 關(guān)系代數(shù)運算經(jīng)有限次復(fù)合后形成的式子 l 典型關(guān)系代數(shù)語言 ISBL( Information System Base Language) 由 IBM United Kingdom研究中心研制 用于 PRTV( Peterlee Relational Test Vehicle)實 驗系統(tǒng) 第二章 關(guān)系數(shù)據(jù)庫 2.1 關(guān)系模型概述 2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.3 關(guān)系的完整性 2.4 關(guān)系代數(shù) 2.5 關(guān)系演算 2.6 小結(jié) 2.5 關(guān)系演算 關(guān)系演算 以數(shù)理 邏輯 中的謂詞演算為基礎(chǔ) 種類:按謂詞變元不同分類 1.元組關(guān)系演算: 以 元組變量 作為謂詞變元的基本對象 元組關(guān)系演算語言 A
54、LPHA 2.域關(guān)系演算: 以 域變量 作為謂詞變元的基本對象 域關(guān)系演算語言 QBE 2.5.1 元組關(guān)系演算語言 ALPHA 由 E.F.Codd提出 INGRES所用的 QUEL語言是參照 ALPHA語言研制的 語句 檢索語句 GET 更新語句 PUT, HOLD, UPDATE, DELETE, DROP 一、檢索操作 語句格式: GET 工作空間名 ( 定額 ) ( 表達式 1) : 操作條件 DOWN/UP 表達式 2 定額:規(guī)定檢索的元組個數(shù) 格式: 數(shù)字 表達式 1:指定語句的操作對象 格式: 關(guān)系名 | 關(guān)系名 . 屬性名 | 元組變量 . 屬性名 | 集函數(shù) , 操作條件:
55、將操作結(jié)果限定在滿足條件的元組中 格式: 邏輯表達式 表達式 2:指定排序方式 格式: 關(guān)系名 . 屬性名 | 元組變量 . 屬性 名 , 檢索操作 (續(xù) ) (1) 簡單檢索 (即不帶條件的檢索 ) (2) 限定的檢索 (即帶條件的檢索 ) (3) 帶排序的檢索 (4) 帶定額的檢索 (5) 用元組變量的檢索 (6) 用存在量詞的檢索 檢索操作 (續(xù) ) (7) 帶有多個關(guān)系的表達式的檢索 (8) 用全稱量詞的檢索 (9) 用兩種量詞的檢索 (10) 用蘊函 ( Implication) 的檢索 (11) 集函數(shù) ( 1)簡單檢索 GET 工作空間名 ( 表達式 1) 例 1 查詢所有被選修
56、的課程號碼 。 GET W (SC.Cno) 例 2 查詢所有學(xué)生的數(shù)據(jù) 。 GET W (Student) ( 2)限定的檢索 格式 GET 工作空間名 ( 表達式 1) : 操作條件 例 3 查詢信息系 (IS)中年齡小于 20歲的學(xué)生的學(xué)號 和年齡 。 GET W (Student.Sno , Student.Sage): Student.Sdept=IS Student.Sage19 條件查詢(與條件) 例 4 求計算機科學(xué)系年齡大于 19歲的學(xué)生的學(xué) 號 。 方法 ( 1) :把兩個條件寫在同一行上 Student Sno Sname Ssex Sage Sdept P.95001
57、19 CS 條件查詢(續(xù)) 方法 ( 2) :把兩個條件寫在不同行上 , 但使用 相同的示例元素值 Student Sno Sname Ssex Sage Sdept P.95001 P.95001 19 CS 條件查詢(續(xù)) 例 5 查詢既選修了 1號課程又選修了 2號課程的學(xué)生 的學(xué)號 。 SC Sno Cno Grade P.95001 P.95001 1 2 條件查詢(續(xù)) 例 6 查詢計算機科學(xué)系或者年齡大于 19歲的學(xué)生的 學(xué)號 。 Student Sno Sname Ssex Sage Sdept P.95001 P.95002 19 CS 多表連接 例 7 查詢選修 1號課程的
58、學(xué)生姓名 。 注意:示例元素 Sno是連接屬性,其值在兩個表中要 相同 。 SC Sno Cno Grade 95001 1 Student Sno Sname Ssex Sage Sdept 95001 P.李勇 條件查詢(非條件) 例 8 查詢未選修 1號課程的學(xué)生姓名 思路:顯示學(xué)號為 95001的學(xué)生名字 , 而該學(xué)生選修 1號課程的情 況為假 SC Sno Cno Grade 95001 1 Student Sno Sname Ssex Sage Sdept 95001 P.李勇 條件查詢(續(xù)) 例 9 查詢有兩個人以上選修的課程號 思路:查詢這樣的課程 1, 它不僅被 95001選
59、修 而且也被另一個學(xué)生 ( 95001) 選修了 SC Sno Cno Grade 95001 .95001 P.1 1 3. 集函數(shù) 常用集函數(shù): 函 數(shù) 名 功 能 CNT 對元組計數(shù) SUM 求 總 和 AVG 求平均值 MAX 求最大值 MIN 求最小值 集函數(shù)(續(xù)) 例 10 查詢信息系學(xué)生的平均年齡 。 Student Sno Sname Ssex Sage Sdept P.AVG.ALL. IS 4.對查詢結(jié)果排序 (續(xù)) 例 11 查全體男生的姓名 , 要求查詢結(jié)果按所在 系升序排序 , 對相同系的學(xué)生按年齡降序排序 。 Student Sno Sname Ssex Sage
60、Sdept P.李勇 男 DO( 2) . AO( 1) . 二、修改操作 例 12 把 95001學(xué)生的年齡改為 18歲 。 方法 (1) :將操作符 U.放在值上 Student Sno Sname Ssex Sage Sdept 95001 U. 18 修改操作 (續(xù) ) 方法 (2): 將操作符 U.放在關(guān)系上 碼 95001標明要修改的元組 。 U.標明所在的行是 修改后的新值 。 由于主碼是不能修改的 , 所以系統(tǒng)不會混淆要修改 的屬性 。 Student Sno Sname Ssex Sage Sdept U. 95001 18 修改操作 (續(xù) ) 例 13將計算機系所有學(xué)生的年
61、齡都改為 18歲 Student Sno Sname Ssex Sage Sdept 95008 U.18 CS 修改操作 (續(xù) ) 例 14 把 95001學(xué)生的年齡增加 1歲 分兩行分別表示改前和改后的示例元素 必須將操作符 U.放在關(guān)系上 Student Sno Sname Ssex Sage Sdept U 95001 95001 17 17+1 修改操作 (續(xù) ) 例 15 將計算機系所有學(xué)生的年齡都增加 1歲 Student Sno Sname Ssex Sage Sdept U 95008 95008 18 18+1 CS 2.插入操作 例 16 把信息系女生 95701, 姓名
62、張三 , 年齡 17歲存入數(shù) 據(jù)庫中 。 Student Sno Sname Ssex Sage Sdept I. 95701 張三 女 17 IS 3. 刪除操作 例 17 刪除學(xué)生 95089 為保證參照完整性 , 刪除 95089學(xué)生前 , 先刪除 95089學(xué) 生選修的全部課程 Student Sno Sname Ssex Sage Sdept D. 95089 SC Sno Cno Grade D. 95089 聚集操作 聚集操作是指輸入一個值的集合,然后根據(jù)該 值集合得到一個單一的值作為結(jié)果。常用的聚 集函數(shù)包括求最大值 max、 最小值 min、 平均 值 avg、 總和值 su
63、n和計數(shù)值 count等 。 例:在 S( S#, SNAME, AGE, SEX) 中,求男同 學(xué)的平均年齡,可以用式子 avgage( sex=M( S) ) 求年齡為 18歲的人數(shù)可用式子 count(S#)( age=18( S) 2.6 關(guān)系演算 把數(shù)理邏輯的謂詞演算引入到關(guān)系運算中, 就可得到以關(guān)系演算為基礎(chǔ)的運算。關(guān)系演算又 可分為元組演算和域關(guān)系演算,前者以元組為變 量,后者以屬性(域)為變量,分別稱為元組演 算和域演算。 2.6.1 元組關(guān)系演算 在元組關(guān)系演算 ( Tuple Relation Calculus) 中 ,元組關(guān)系演算表達式簡稱為元組表達式,其一般 形式為 t
64、| P( t) 其中, t是元組變量,表示一個元數(shù)固定的元組; P是公式,在數(shù)理邏輯中也稱為謂詞,也就是計算 機語言中的條件表達式。 t| P( t) 表示滿足公式 P的所有元組 t的集合。 1 原子公式和公式的定義 在元組表達式中,公式由原子公式組成。 定義 2.4 原子公式 ( Atoms) 有下列三種形式: R( s) 。 其中 R是關(guān)系名 , s是元組變量 。 它表示了 這樣一個命題 : “ s是關(guān)系 R的一個元組 ” 。 si uj。 其中 s和 u是元組變量 , 是算術(shù)比較運 算符 , si和 uj分別是 s的第 i個分量和 u的第 j個分量 ( 即屬性 )。 si uj表示了這樣
65、一個命題 : “ 元組 s的 第 i個分量和 u的第 j個分量之間滿足 關(guān)系 ” 。 si或 uj。 這里 是常量 。 “ si”表 示這樣一個命題 : “ 元組 s的第 i個分量值與常量 之 間滿足 關(guān)系 ” 。 定義 2.5 公式 ( Formula) 的遞歸定義如下 : 每個原子是一個公式。其中元組變量是自由變量。 如果 P1和 P2是公式 , 那么 P1、 P1P 2、 P1P 2和 P1P2也 都是公式。分別表示下列命題: “ P1不為真 ” , “ P1或 P2是 真 ” , “ P1和 P2都是真 ” , “ 若 P1為真則 P2必然為真 ” 。 公 式中元組變量的自由約束性質(zhì)如
66、同在 P1和 P2中一樣,仍然是 自由的或約束的。 如果 P1是公式,那么 ( s)( P1 ) 和 ( s)( P1 ) 也 都是公式。其中 s是公式 P1中的自由元組變量, 在 (s)( P1 ) 和 ( s)( P1 ) 中稱為約束元組變量。這兩個公式分 別表示下列命題: “ 存在一個元組 s使得公式 P1為真 ” , “ 對于所有元組 s都使得公式 P1為真 ” 。公式中其他元組的自 由約束性,與 P1中的一樣。 公式中各種運算符的優(yōu)先級從高到低依次為: A. 算術(shù)比較運算符最高; B. 量詞次之,且 的優(yōu)先級高于 的優(yōu)先級; C. 邏輯運算符最低 , 且 的優(yōu)先級高于 的優(yōu)先級 , 的優(yōu)先級高于 的優(yōu)先級; D. 加括號時,括號中運算符優(yōu)先,同一括號內(nèi)的運 算符之優(yōu)先級遵循 A、 B、 C各項。 公式只能由上述四種形式構(gòu)成,除此之外構(gòu)成的都 不是公式。 2關(guān)系代數(shù)表達式到元組表達式的轉(zhuǎn)換 關(guān)系代數(shù)表達式可以等價地轉(zhuǎn)換到元組 表達式。由于所有的關(guān)系代數(shù)表達式都能 用五個基本操作組合而成,因此我們只要 把五個基本操作用元組演算表達出來就行 了。 例: 設(shè)關(guān)系 R和 S都是三元關(guān)系
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇教版五上《小數(shù)乘整數(shù)》ppt課件
- 蘇教版一年級數(shù)學(xué)上冊《數(shù)一數(shù)》ppt課件
- 江南1優(yōu)秀課件
- 提高印字質(zhì)量課件
- 服務(wù)分銷策略課件
- 數(shù)學(xué)必修蘇教版互斥事件課件3(共32張PPT)
- 第三章要素費用的核算PPT優(yōu)秀資料
- 元素的質(zhì)量分數(shù)計算答案
- 圖形的欣賞與設(shè)計
- 八年級下期Uuit10SectionA課件
- 部編七年級語文下冊4孫權(quán)勸學(xué)課件
- 部編一年級語文下冊端午粽課件
- 超市防損的技能課件
- 表彰班會教學(xué)課件教學(xué)課件
- 第17講中考數(shù)學(xué)專題復(fù)習(xí) 函數(shù)的綜合應(yīng)用中考數(shù)學(xué)專題復(fù)習(xí)課件課件各版通用