【正文】
第 2章 關(guān)系運(yùn)算 數(shù)據(jù)庫(kù)原理及應(yīng)用 教學(xué)內(nèi)容 ? 關(guān)系的數(shù)學(xué)定義 ? 關(guān)系代數(shù) ? 關(guān)系演算 第 1節(jié) 關(guān)系的數(shù)學(xué)定義 第 2章 關(guān)系運(yùn)算 主要內(nèi)容 ? 笛卡兒積的數(shù)學(xué)定義 ? 關(guān)系的數(shù)學(xué)定義 ? 關(guān)系的性質(zhì) 一、笛卡兒積的數(shù)學(xué)定義 笛卡兒積的數(shù)學(xué)定義 定義 設(shè)有屬性 A1,A2,… ,An分別在值域 D1,D2,… ,Dn中取值,則這些值域的笛卡兒積定義為: D1 D2 ? Dn={(d1,d2,… ,dn)|dj∈ Dj, j=1,2,… ,n} 其中,每個(gè)元素 (d1,d2,… ,dn)稱為 元組 。 元組中的第 j個(gè)值 dj稱為元組的第 j個(gè) 分量 。 若 Dj (j=1,2,… ,n)為有限集,且其基數(shù)為 mj (j=1,2,… ,n),則笛卡兒積 D1 D2 ? Dn的基數(shù)為 ???njjmm1注: 笛卡兒積的基數(shù)即為笛卡兒積定義的元組集合中元組的個(gè)數(shù)。 一、笛卡兒積的數(shù)學(xué)定義 例 1:設(shè) D1={1,2,3},基數(shù)為 3; D2={a,b},基數(shù)為 2; 則有: D1 D2={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)} 基數(shù)為 3 2=6。 一、笛卡兒積的數(shù)學(xué)定義 例 2:設(shè) D1={李兵,王芳 }, D2={男,女 }, D3={北京,上海 }。 D1 D2 D3={(李兵 ,男 ,北京 ), (李兵 ,男 ,上海 ), (李兵 ,女 ,北京 ), (李兵 ,女 ,上海 ), (王芳 ,男 ,北京 ), (王芳 ,男 ,上海 ), (王芳 ,女 ,北京 ), (王芳 ,女 ,上海 )} 基數(shù)為 2 2 2=8。 一、笛卡兒積的數(shù)學(xué)定義 可見,笛卡兒積實(shí)際上是一個(gè)二維表,結(jié)果共有 8個(gè)元組。 姓名 (D1) 性別 (D2) 籍貫 (D3) 李兵 男 北京 李兵 男 上海 李兵 女 北京 李兵 女 上海 王芳 男 北京 王芳 男 上海 王芳 女 北京 王芳 女 上海 二、關(guān)系的數(shù)學(xué)定義 關(guān)系的數(shù)學(xué)定義 定義 笛卡兒積 D1 D2 ? Dn的任一子集稱為在域D1,D2,… ,Dn上的關(guān)系。 值域集合 D1,D2,… ,Dn是關(guān)系中元組的取值范圍,稱為關(guān)系的 域 ( Domain), n稱為關(guān)系的 目 或 度 ( Degree)。 n=1,一元關(guān)系 n=2,二元關(guān)系 度為 n時(shí), n元關(guān)系 有意義! 姓名 性別 籍貫 李兵 男 北京 王芳 女 上海 姓名 性別 籍貫 李兵 男 上海 王芳 女 北京 三、關(guān)系的性質(zhì) 關(guān)系的性質(zhì) ( 1)關(guān)系中的每個(gè)屬性值都是不可再分的數(shù)據(jù)單位,即關(guān)系表中不能再有子表; ( 2)關(guān)系中任意兩行不能完全相同,即關(guān)系中不允許出現(xiàn)相同的元組; ( 3)關(guān)系是一個(gè)元組的集合,所以關(guān)系中元組間的順序可以任意; ( 4)關(guān)系中的屬性是無(wú)序的,使用時(shí)一般按習(xí)慣排列各列的順序; ( 5)每一個(gè)關(guān)系都有一個(gè)主鍵,唯一地標(biāo)識(shí)它的各個(gè)元組。 關(guān)系是一種規(guī)范化了的二維表。 第 2節(jié) 關(guān)系代數(shù) 第 2章 關(guān)系運(yùn)算 主要內(nèi)容 ? 基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 ? 關(guān)系代數(shù)特有的關(guān)系運(yùn)算 ? 4種非基本關(guān)系運(yùn)算 ? 關(guān)系代數(shù)運(yùn)算在查詢中的應(yīng)用 專門的關(guān)系運(yùn)算符 π , ?, ?, 247。 集合運(yùn)算符 ∪ , ∩ , , 關(guān)系代數(shù) 運(yùn)算符 運(yùn)算結(jié)果 :關(guān)系 運(yùn)算對(duì)象 :關(guān)系 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 并 ① 前提:關(guān)系 R和 S具有相同的關(guān)系模式 ② 定義: R∪ S≡{ t|t∈ R∨ t∈ S} R S R∪ S ③ 運(yùn)算過(guò)程: 將關(guān)系 R和 S的元組放在一起,然后消去重復(fù)的元組。 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 并 ④ 示例 : 求 R1∪ R2 A B C a b c a d e f d c 關(guān)系 R1 A B C a d e f d c f d e 關(guān)系 R2 A B C a b c a d e f d c f d e R1∪R2 ⑤ 適用于 :找出所有出現(xiàn)在兩個(gè)關(guān)系之一的或同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組。 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 交 ① 前提:關(guān)系 R和 S具有相同的關(guān)系模式 ② 定義: R∩ S≡{t∣ t∈ R∧ t∈ S} ③ 運(yùn)算過(guò)程: 找出 同時(shí)存在于關(guān)系 R和 S中的所有相同的元組 。 R S R∩ S 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 交 ④ 示例 : 求 R1∩ R2 A B C a b c a d e f d c 關(guān)系 R1 A B C a d e f d c f d e 關(guān)系 R2 ⑤ 適用于: 需要找出所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組時(shí) 。 R1∩R2 A B C a d e f d c 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 差 ① 前提:關(guān)系 R和 S具有相同的關(guān)系模式 ② 定義: R- S≡{ t|t∈ R∧ t?S} ③ 運(yùn)算過(guò)程: 從關(guān)系 R的元組中去除它與關(guān)系 S相同的那些元組 R S R?S 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 差 ④ 示例 : 求 R1- R2 A B C a b c a d e f d c 關(guān)系 R1 A B C a d e f d c f d e 關(guān)系 R2 ⑤ 適用于: 找出在一個(gè)關(guān)系中而不在另一個(gè)關(guān)系中的那些元組 . R1- R2 A B C a b c 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 廣義笛卡兒積 ①前提:關(guān)系 R和 S的目數(shù)分別為 r和 s。 ②定義: R S≡{ t|t=tr, ts∧ tr∈ R∧ ts∈ S } ③ 運(yùn)算過(guò)程: 用 R的第 i( i=1, 2, … , m)個(gè)元組與 S的全部元組結(jié)合成 n個(gè)元組,所以 R S有 m n個(gè)元組。 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 廣義笛卡兒積 ④ 示例 : 求 R1 R3 D E g h i j 關(guān)系 R3 R1 R3 A B C a b c a d e f d c 關(guān)系 R1 A B C D E a d e g h a d e i j f d c g h f d c i j a b c g h a b c i j 一、基于傳統(tǒng)集合理論的關(guān)系運(yùn)算 廣義笛卡兒積 ⑤ 命名機(jī)制 關(guān)系名 .屬性名 C D g h i j 關(guān)系 R3 R1 R3