數(shù)據(jù)庫原理二章關系數(shù)據(jù)庫
數(shù) 據(jù) 庫 原 理第 二 章 : 關 系 數(shù) 據(jù) 庫 授 課 教 師 : 王 哲 本章主要學習內容v 關 系 模 型 關 系 數(shù) 據(jù) 結 構 關 系 操 作 關 系 的 完 整 性 約 束v 關 系 代 數(shù) 集 合 計 算 關 系 運 算v 關 系 演 算 元 組 關 系 演 算 語 言 ALPHA 域 關 系 演 算 語 言 QBE 一、關系數(shù)據(jù)結構及形式化定義v單 一 的 數(shù) 據(jù) 結 構 -關 系現(xiàn) 實 世 界 的 實 體 以 及 實 體 間 的 各 種 聯(lián) 系 均 用 關 系 來 表 示v邏 輯 結 構 -二 維 表 從 用 戶 角 度 , 關 系 模 型 中 數(shù) 據(jù) 的 邏 輯 結 構 是 一 張 二 維 表v關 系 操 作 的 對 象 和 結 果 都 是 集 合 , 關 系 模 型 建 立 在 集 合 代數(shù) 的 基 礎 上 ; 1、域v 域 ( Domain) : 一 組 具 有 相 同 數(shù) 據(jù) 類 型 的 值 的 集 合 , 也 稱 為 值域 , 用 D表 示 。v 域 中 所 包 含 的 值 的 個 數(shù) 稱 為 域 的 基 數(shù) , 用 m表 示 。v 關 系 中 用 域 表 示 屬 性 的 取 值 范 圍 。 例 如 : D1=李 力 , 王 平 , 劉 偉 m1=3 D2=男 , 女 m2=2 D3=47,28,30 m3=3 其 中 , D1, D2, D3為 域 名 , 分 別 表 示 教 師 關 系 中 姓 名 、 性 別 、 年齡 的 集 合 。v 域 名 無 排 列 次 序 , 如 D2=男 , 女 =女 , 男 2、笛卡爾積v1) 笛 卡 爾 積 ( Cartesian Product) 給 定 一 組 域 D1,D2,.Dn(域 可 相 同 ) , 它 們 的 笛 卡 兒 積 為 : D1xD2x.xDn=(d1,d2,.,dn)|di Di,i=1,2,.,n 所 有 域 的 所 有 取 值 組 成 一 個 集 合 , 其 中 每 一 個 元 素( d1,d2,.,dn)叫 做 一 個 n元 組 , 簡 稱 元 組 。 元 組 中 的 每 個 值 d i叫 做 一 個 分 量 。 元 組 的 每 個 分 量 ( di) 是 按 序排 列 的 。 如 : ( 1, 2, 3) ( 2, 3, 1) ( 1, 3, 2) ; 元 組 不 能 重 復 , 元 組 之 間 是 無 序 的 。 2)實例例 1: D1=a1,a2 D2=b1,b2,b3則 : D1XD2=(a1,b1),(a1,b2),(a1,b3),(a2,b1),(a2,b2),(a2,b3)v 其 中 a1、 b1、 b2等 是 分 量v (a1,b1),(a1,b2)等 是 元 組v 該 笛 卡 爾 積 的 基 數(shù) 為 2x3=6v 元 組 的 個 數(shù) 為 6 例 2: D1=導 師 集 合 SUPERVISOR=張 清 玫 , 劉 逸 D2=專 業(yè) 集 合 SPECIALITY=計 算 機 專 業(yè) , 信 息 專 業(yè) D3=研 究 生 集 合 POSTGRADUATE=李 勇 , 劉 晨 , 王 敏則 : D1XD2XD3=( 張 清 玫 , 計 算 機 專 業(yè) , 李 勇 ) ,( 張 清 玫 , 計 算 機 專 業(yè) , 劉 晨 ) ,( 張 清 玫 , 計 算 機 專 業(yè) , 王 敏 ) ,( 張 清 玫 , 信 息 專 業(yè) , 李 勇 ) ,( 張 清 玫 , 信 息 專 業(yè) , 劉 晨 ) ,( 張 清 玫 , 信 息 專 業(yè) , 王 敏 ) ,( 劉 逸 , 計 算 機 專 業(yè) , 李 勇 ) ,( 劉 逸 , 計 算 機 專 業(yè) , 劉 晨 ) ,( 劉 逸 , 計 算 機 專 業(yè) , 王 敏 ) ,( 劉 逸 , 信 息 專 業(yè) , 李 勇 ) ,( 劉 逸 , 信 息 專 業(yè) , 劉 晨 ) ,( 劉 逸 , 信 息 專 業(yè) , 王 敏 ) 該 笛 卡 爾 積 的 基 數(shù) 為 2x2x3=12即 元 組 的 個 數(shù) 為 12 3)笛卡爾積的二維表表示v笛 卡 爾 積 也 可 以 用 二 維 表 表 示 ,其 中 表 的 框 架 由 域 構 成 ,表的 任 意 一 行 就 是 一 個 元 組 ,每 一 列 數(shù) 據(jù) 來 則 同 一 域 。例 1: D1=學 生 的 集 合 甲 ,乙 ,丙 D2=性 別 的 集 合 男 ,女 D3=班 級 的 集 合 01,02 共 2 2 3=12個 元 組 , 用 二 維 表 可 表 示 為 : D1 D2 D3甲 男 01甲 男 02甲 女 01甲 女 02乙 男 01乙 男 02乙 女 01乙 女 02丙 男 01 丙 男 02丙 女 01丙 女 02 3、關系v關 系 ( Relation)nD1 D2 Dn的 子 集 叫 作 在 域 D1, D2, , Dn上 的關 系 。n表 示 為 R( D1, D2, , Dn)nR: 關 系 名nn: 關 系 的 目 或 度 ( Degree)nT: 關 系 中 的 每 個 元 素 是 關 系 中 的 元 組 幾點說明v1) 單 元 關 系 與 二 元 關 系nn: 關 系 的 目 或 度 ( Degree) n當 n=1時 , 稱 該 關 系 為 單 元 關 系 ( Unary relation)或 一 元 關 系 。 n當 n=2時 , 稱 該 關 系 為 二 元 關 系 ( Binary relation)nn當 n=n時 , 稱 為 n元 關 系 。 v 2) 在 數(shù) 學 上 , 關 系 是 笛 卡 爾 積 的 任 意 子 集 , 按 照 笛 卡 兒 積 的 定義 , 關 系 可 以 是 一 個 無 限 集 合 。v 但 在 實 際 應 用 中 關 系 是 笛 卡 爾 積 中 所 取 的 有 意 義 的 子 集 。 例 如在 表 中 選 取 一 個 子 集 構 成 如 下 關 系 , 顯 然 不 符 合 實 際 情 況 。姓 名 性 別李 力 男李 力 女 v屬 性 ( Attribute)n 關 系 中 不 同 列 可 以 對 應 相 同 的 域n 為 了 加 以 區(qū) 分 , 必 須 對 每 列 起 一 個 名 字 , 稱 為 屬 性 名n n目 關 系 必 有 n個 屬 性v碼 ( Key)( 1) 候 選 碼 ( Candidate key)n 若 關 系 中 的 某 一 屬 性 組 的 值 能 唯 一 地 標 識 一 個 元 組 , 則 稱 該 屬 性組 為 候 選 碼 。 n 最 簡 單 的 情 況 : 候 選 碼 只 包 含 一 個 屬 性 ( 2) 全 碼 ( All-key)n 最 極 端 的 情 況 : 關 系 模 式 的 所 有 屬 性 組 是 關 系 模 式 的 候 選 碼 , 稱 為 全 碼 。( 3) 主 碼 ( Primary key)n 若 一 個 關 系 有 多 個 候 選 碼 , 則 選 定 其 中 一 個 為 主 碼 。( 4) 主 屬 性 ( Prime attribute)n 候 選 碼 的 諸 屬 性 稱 為 主 屬 性( 5) 非 主 屬 性 ( Non-key attribute)n 不 包 含 在 任 何 侯 選 碼 中 的 屬 性 稱 為 非 主 屬 性 或 非 碼 屬 性 。 基 本 關 系 的 6條 性 質 列 是 同 質 的 不 同 的 列 可 出 自 同 一 個 域n 其 中 的 每 一 列 稱 為 一 個 屬 性n 不 同 的 屬 性 要 給 予 不 同 的 屬 性 名 列 的 順 序 無 所 謂 , 列 的 次 序 可 以 任 意 交 換 任 意 兩 個 元 組 的 候 選 碼 不 能 相 同 行 的 順 序 無 所 謂 , 行 的 次 序 可 以 任 意 交 換 分 量 必 須 取 原 子 值 4、關系模式(Relation Schema)v關 系 模 式 是 型 , 關 系 是 值v關 系 模 式 是 對 關 系 的 描 述 元 組 集 合 的 結 構屬 性 構 成屬 性 來 自 的 域 屬 性 與 域 之 間 的 映 象 關 系 元 組 語 義 確 定 滿 足 一 定 的 完 整 性 約 束 條 件 屬 性 間 的 數(shù) 據(jù) 依 賴 v關 系 模 式 可 以 形 式 化 地 表 示 為 : R( U, D, DOM, F)R 關 系 名U 組 成 該 關 系 的 屬 性 名 集 合D 屬 性 組 U中 屬 性 所 來 自 的 域DOM 屬 性 向 域 的 映 象 集 合F 屬 性 間 的 數(shù) 據(jù) 依 賴 關 系 集 合注 : 域 名 及 屬 性 向 域 的 映 象 常 常 直 接 說 明 為 屬 性 的 類 型 、 長 度 v關 系 模 式 通 常 可 以 簡 記 為 R (U) 或 R (A1, A2, , An)n R: 關 系 名n A1, A2, , An : 屬 性 名 關系模式與關系v關 系 模 式n 對 關 系 的 描 述n 靜 態(tài) 的 、 穩(wěn) 定 的v關 系n 關 系 模 式 在 某 一 時 刻 的 狀 態(tài) 或 內 容n 動 態(tài) 的 、 隨 時 間 不 斷 變 化 的v 關 系 模 式 和 關 系 往 往 統(tǒng) 稱 為 關 系 , 通 過 上 下 文 加 以 區(qū) 別 5、關系數(shù)據(jù)庫v關 系 數(shù) 據(jù) 庫n 在 一 個 給 定 的 應 用 領 域 中 , 所 有 關 系 的 集 合 構 成 一 個 關 系 數(shù)據(jù) 庫 。v關 系 數(shù) 據(jù) 庫 的 型 : 關 系 數(shù) 據(jù) 庫 模 式 , 對 數(shù) 據(jù) 庫 的 描 述 。 是穩(wěn) 定 的 。v關 系 數(shù) 據(jù) 庫 的 值 : 關 系 模 式 在 某 一 時 刻 對 應 的 關 系 的 集 合 。通 常 就 稱 為 關 系 數(shù) 據(jù) 庫 。 二、關系操作v常 用 的 關 系 操 作 查 詢 : 查 詢 是 關 系 操 作 中 最 主 要 的 部 分 , 包 括 選 擇 、 投 影 、 連 接 、除 、 并 、 交 、 差 、 笛 卡 爾 積 , 其 中 選 擇 、 投 影 、 并 、 差 、 笛 卡 爾積 是 5種 基 本 操 作 。 數(shù) 據(jù) 更 新 : 插 入 、 刪 除 、 修 改v 關 系 操 作 的 特 點 集 合 操 作 方 式 : 操 作 的 對 象 和 結 果 都 是 集 合 , 一 次 一 集 合 的 方 式 關系數(shù)據(jù)語言的分類v 關 系 代 數(shù) 語 言 用 對 關 系 的 運 算 來 表 達 查 詢 要 求 , 代 表 : ISBLv關 系 演 算 語 言 : 用 謂 詞 來 表 達 查 詢 要 求 元 組 關 系 演 算 語 言 , 謂 詞 變 元 的 基 本 對 象 是 元 組 變 量 , 代 表 : APLHA, QUEL 域 關 系 演 算 語 言 , 謂 詞 變 元 的 基 本 對 象 是 域 變 量 , 代 表 : QBEv具 有 關 系 代 數(shù) 和 關 系 演 算 雙 重 特 點 的 語 言 代 表 : SQL, 集 查 詢 、 DDL、 DML、 DCL于 一 體 的 關 系 數(shù) 據(jù) 語 言 , 它 充 分體 現(xiàn) 了 關 系 數(shù) 據(jù) 語 言 的 特 點 和 優(yōu) 點 , 是 關 系 數(shù) 據(jù) 庫 的 標 準 語 言 。 三、關系的完整性v為 了 維 護 數(shù) 據(jù) 庫 中 數(shù) 據(jù) 與 現(xiàn) 實 世 界 的 一 致 性 , 對 關 系 數(shù) 據(jù)庫 的 插 入 、 刪 除 和 修 改 操 作 必 須 有 一 定 的 約 束 條 件 , 這 就是 關 系 模 型 的 三 類 完 整 性 : 實 體 完 整 性 參 照 完 整 性 用 戶 定 義 的 完 整 性 v實 體 完 整 性 和 參 照 完 整 性 : 關 系 模 型 必 須 滿 足 的 完 整 性 約 束 條 件 , 稱 為 關 系 的 兩 個不 變 性 , 應 該 由 關 系 系 統(tǒng) 自 動 支 持 。v用 戶 定 義 的 完 整 性 : 應 用 領 域 需 要 遵 循 的 約 束 條 件 , 體 現(xiàn) 了 具 體 領 域 中 的 語義 約 束 。 1、實體完整性(Entity Integrity)規(guī) 則 2.1 實 體 完 整 性 規(guī) 則 ( Entity Integrity) , 若 屬 性 A是 基 本 關 系 R的 主 屬 性 , 則 屬 性 A不 能 取 空 值 。如 : 學 生 ( 學 號 , 姓 名 , 性 別 , 專 業(yè) 號 , 年 齡 ) 課 程 ( 課 程 號 , 課 程 名 , 學 分 )其 中 主 碼 學 號 , 課 程 號 不 可 取 空 值 。 實 體 完 整 性 規(guī) 則 的 說 明(1) 實 體 完 整 性 規(guī) 則 是 針 對 基 本 關 系 而 言 的 。 一 個 基 本 表 通 常 對 應 現(xiàn) 實世 界 的 一 個 實 體 集 。(2) 現(xiàn) 實 世 界 中 的 實 體 是 可 區(qū) 分 的 , 即 它 們 具 有 某 種 唯 一 性 標 識 。(3) 關 系 模 型 中 以 主 碼 作 為 唯 一 性 標 識 。(4) 主 碼 中 的 屬 性 即 主 屬 性 不 能 取 空 值 。主 屬 性 取 空 值 , 就 說 明 存 在 某 個 不 可 標 識 的 實 體 , 即 存 在 不 可 區(qū)分 的 實 體 , 這 與 第 ( 2) 點 相 矛 盾 , 因 此 這 個 規(guī) 則 稱 為 實 體 完 整 性 2、參照完整性v 在 關 系 模 型 中 實 體 及 實 體 間 的 聯(lián) 系 都 是 用 關 系 來 描 述 的 , 因 此可 能 存 在 著 關 系 與 關 系 間 的 引 用 。例 1: 學 生 實 體 、 專 業(yè) 實 體學 生 ( 學 號 , 姓 名 , 性 別 , 專 業(yè) 號 , 年 齡 )專 業(yè) ( 專 業(yè) 號 , 專 業(yè) 名 )v 學 生 關 系 引 用 了 專 業(yè) 關 系 的 主 碼 “ 專 業(yè) 號 ” 。v 學 生 關 系 中 的 “ 專 業(yè) 號 ” 值 必 須 是 確 實 存 在 的 專 業(yè) 的 專 業(yè) 號 , 即 專 業(yè)關 系 中 有 該 專 業(yè) 的 記 錄 。 例 2: 學 生 、 課 程 、 學 生 與 課 程 之 間 的 多 對 多 聯(lián) 系學 生 ( 學 號 , 姓 名 , 性 別 , 專 業(yè) 號 , 年 齡 )課 程 ( 課 程 號 , 課 程 名 , 學 分 )選 修 ( 學 號 , 課 程 號 , 成 績 ) 例 3: 學 生 實 體 及 其 內 部 的 一 對 多 聯(lián) 系學 生 ( 學 號 , 姓 名 , 性 別 , 專 業(yè) 號 , 年 齡 , 班 長 )v “ 學 號 ” 是 主 碼 , “ 班 長 ” 是 外 碼 , 它 引 用 了 本 關 系 的 “ 學 號 ” v “ 班 長 ” 必 須 是 確 實 存 在 的 學 生 的 學 號學號姓名性別專業(yè)號年齡班長801張三女01 19 802 802李四男01 20803王五男01 20 802804趙六女02 20 805805錢七男02 19 v 外 碼 ( Foreign Key) 設 F是 基 本 關 系 R的 一 個 或 一 組 屬 性 , 但 不 是 關 系 R的 碼 。 如 果F與 基 本 關 系 S的 主 碼 Ks相 對 應 , 則 稱 F是 基 本 關 系 R的 外 碼 。基 本 關 系 R稱 為 參 照 關 系 ( Referencing Relation)基 本 關 系 S稱 為 被 參 照 關 系 ( Referenced Relation) 或 目 標關 系 ( Target Relation) 規(guī) 則 2.2 參 照 完 整 性 規(guī) 則 若 屬 性 ( 或 屬 性 組 ) F是 基 本 關 系 R的 外 碼 , 它 與 基 本 關系 S的 主 碼 Ks相 對 應 ( 基 本 關 系 R和 S不 一 定 是 不 同 的 關系 ) , 則 對 于 R中 每 個 元 組 在 F上 的 值 必 須 為 :n 或 者 取 空 值 ( F 的 每 個 屬 性 值 均 為 空 值 )n 或 者 等 于 S 中 某 個 元 組 的 主 碼 值 例 1:學 生 關 系 中 每 個 元 組 的 “ 專 業(yè) 號 ” 屬 性 只 取 兩 類 值 :( 1) 空 值 , 表 示 尚 未 給 該 學 生 分 配 專 業(yè)( 2) 非 空 值 , 這 時 該 值 必 須 是 專 業(yè) 關 系 中 某 個 元 組 的 “ 專業(yè) 號 ” 值 , 該 學 生 不 可 能 分 配 一 個 不 存 在 的 專 業(yè) 。 例 2:選 修 ( 學 號 , 課 程 號 , 成 績 )“ 學 號 ” 和 “ 課 程 號 ” 可 能 的 取 值 : ( 1) 選 修 關 系 中 的 主 屬 性 , 不 能 取 空 值 ( 2) 只 能 取 相 應 被 參 照 關 系 中 已 經(jīng) 存 在 的 主 碼 值 例 3:學 生 ( 學 號 , 姓 名 , 性 別 , 專 業(yè) 號 , 年 齡 , 班 長 )“ 班 長 ” 屬 性 值 可 以 取 兩 類 值 :( 1) 空 值 , 表 示 該 學 生 所 在 班 級 尚 未 選 出 班 長( 2) 非 空 值 , 該 值 必 須 是 本 關 系 中 某 個 元 組 的 學 號 值 3、用戶定義的完整性v針 對 某 一 具 體 關 系 數(shù) 據(jù) 庫 的 約 束 條 件 , 反 映 某 一 具 體 應 用所 涉 及 的 數(shù) 據(jù) 必 須 滿 足 的 語 義 要 求 。v關 系 模 型 應 提 供 定 義 和 檢 驗 這 類 完 整 性 的 機 制 , 以 便 用 統(tǒng)一 的 系 統(tǒng) 的 方 法 處 理 它 們 , 而 不 要 由 應 用 程 序 承 擔 這 一 功能 。例 : 1) 選 修 關 系 中 成 績 的 取 值 范 圍 為 0100之 間2) 某 個 屬 性 ( 如 : 課 程 名 ) 必 須 取 唯 一 值 v 最 后 , 關 系 模 型 的 優(yōu) 點 :1. 結 構 簡 單 , 具 有 高 度 的 簡 明 性 和 高 度 性2. 可 直 接 處 理 多 對 多 關 系3. 一 次 處 理 一 個 元 組 集 合4. 數(shù) 據(jù) 獨 立 性 很 高5. 堅 實 的 數(shù) 學 理 論 基 礎 四、關系代數(shù)v關 系 數(shù) 據(jù) 庫 的 數(shù) 據(jù) 操 縱 語 言 ( DML) 的 語 句 分 成 查 詢 語 句和 更 新 語 句 兩 大 類 。 查 詢 語 句 用 于 描 述 用 戶 的 各 種 檢 索 要求 ; 更 新 語 句 用 于 描 述 用 戶 進 行 插 入 、 刪 除 、 修 改 等 操 作 。v根 據(jù) 關 系 查 詢 語 言 其 理 論 基 礎 的 不 同 分 成 兩 大 類 : 關 系 代 數(shù) 語 言 : 查 詢 操 作 是 以 集 合 操 作 為 基 礎 的 演 算 關 系 演 算 語 言 : 查 詢 操 作 是 以 謂 詞 演 算 為 基 礎 的 演 算 關系代數(shù)v關 系 代 數(shù) 是 一 種 抽 象 的 查 詢 語 言 , 屬 于 關 系 操 作 的 一 種v通 過 對 關 系 的 運 算 來 表 達 查 詢 操 作v運 算 的 對 象 及 結 果 均 為 關 系v運 算 集 合 運 算 、 關 系 運 算 、 比 較 運 算 、 邏 輯 運 算 關系代數(shù)的運算符 v 由 于 關 系 定 義 為 元 數(shù) 相 同 的 元 組 的 集 合 , 因 此 把 關 系 看 成 集 合 ,集 合 代 數(shù) 中 的 運 算 ( 并 、 差 、 交 、 笛 卡 爾 積 ) 就 可 以 引 入 到 關系 運 算 中 來 。 還 有 一 些 運 算 是 針 對 關 系 數(shù) 據(jù) 庫 環(huán) 境 專 門 設 計 的 ,譬 如 對 關 系 進 行 垂 直 分 割 ( 投 影 ) 、 水 平 分 割 ( 選 擇 ) 、 關 系的 結 合 ( 連 接 ) 等 。分 別 為1. 傳 統(tǒng) 的 集 合 運 算2. 專 門 的 關 系 運 算 1、傳統(tǒng)的集合運算v1) 并 ( Union)R和 S 具 有 相 同 的 目 n( 即 兩 個 關 系 都 有 n個 屬 性 ) 相 應 的 屬 性 取 自 同 一 個 域R S 仍 為 n目 關 系 , 由 屬 于 R或 屬 于 S的 元 組 組 成 可 表 示 為 : R S = t|t R t S R S 則 R S為 : 2)差(Except )vR和 S 具 有 相 同 的 目 n 相 應 的 屬 性 取 自 同 一 個 域vR-S 仍 為 n目 關 系 , 由 屬 于 R而 不 屬 于 S的 所 有 元 組 組 成 可 表 示 為 : R -S = t|tR tS R - SR - S 則 R-S為 : 3)交(Intersect )vR和S具有相同的目n相應的屬性取自同一個域vRS仍為n目關系,由既屬于R又屬于S的元組組成可表示為:RS = t|t R t S RS = R (R-S)= ?RS 則 R S為 : 4)笛卡爾積(Cartesian Product)v關 系 R、 S的 笛 卡 爾 積 是 兩 個 關 系 的 元 組 的 集 合 所 組 成 的新 關 系 。vR S: 屬 性 是 R和 S的 組 合 ( n+m個 列 , 有 重 復 ) 元 組 是 R和 S所 有 元 組 的 可 能 組 合 ( K1k2個 元 組 ) 是 R、 S的 無 條 件 連 接 , 使 任 意 兩 個 關 系 的 信 息 能 組 合 在 一 起 記 作 RS=t r ts |tr R tsS 2、專門的關系運算v選 擇 、 投 影 、 連 接 、 除 法v符 號 介 紹 1)R,tR,tAi 2) A, tA, A 3) tr ts 4) 象 集 Z x 1) R, tR, tAi 設 關 系 模 式 為 R(A1, A2, , An) 它 的 一 個 關 系 設 為 R tR表 示 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目 關 系 , S為 m目 關 系 。 tr R, tsS, tr ts稱 為 元 組 的 連 接 。 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上 分 量 的 集 合v x 1在R中的象集 Zx1 =Z1,Z2,Z3,v x2在R中的象集 Zx2 =Z2,Z3,v x3在R中的象集 Zx3=Z1,Z3 1)選擇(Selection) v 從 關 系 R中 選 擇 符 合 條 件 的 元 組 構 成 新 的 關 系vF(R) = t|tR F(t)= 真 v為 選 取 運 算 符vF(R),表 示 從 R中 選 擇 滿 足 條 件 (F表 示 選 擇 條 件 )的 元 組v 選 取 運 算 實 際 上 是 從 關 系 R中 選 取 使 邏 輯 表 達 式 為 真 的 元組 , 是 從 行 的 角 度 進 行 的 運 算 , 即 對 行 的 運 算 。 選擇運算練習A B C3 6 72 5 77 2 34 4 3R A5(R) A B C3 6 72 5 74 4 3A5 C=7(R) A B C 3 6 72 5 7 例 1: 查 詢 計 算 機 系 的 全 體 學 生 Sdept = IS (Student) 或 5 =IS (Student) 例 2: 查 詢 年 齡 小 于 20歲 的 男 同 學 (Sage 20) (SSex=男) (Student) 或 (4 20) (3=男) (Student)注 意 :v對于 5 =IS,其 中 5為 DEPT的 屬 性 序 號 , 表 示 從 Student中 挑 選 第 5個 分 量值 等 于 IS的 元 組 所 構 成 的 關 系 。v 字 符 型 數(shù) 據(jù) 的 值 應 該 使 用 單 引 號 括 起 來 , 例 如 : IS, 計 算 機 , 男 。 2)投影(Projection)v對 R的 垂 直 分 割 , 從 關 系 R中 選 擇 若 干 屬 性 組 成 新 的 關 系vA1,A2,An(R),表 示 從 R中 選 擇 屬 性 集 A1,A2,An組 成 新的 關 系v對 列 的 運 算v投 影 運 算 的 結 果 中 ,也 要 去 除 可 能 的 重 復 元 組 v 例 1: 查 詢 學 生 關 系 中 有 哪 些 系Sdept(Student) 或 5(Student) v 例 2: 查 詢 學 生 關 系 中 學 生 的 姓 名 和 所 在 系Sname,Sdept(Student)v 例 3: 查 詢 男 同 學 所 在 的 系Sdept(SEX=男 ( Student))v 例 4: 查 詢 學 號 為 95001的 學 生 的 課 程 號 及 成 績 Cno,Grade(Sno=95001 ( S C))其 中 5(Student) 表 示 關 系 Student只 取 第 5列 , 組 成 新 的 關 系 。 3)連接(Join) v從 R S的 笛 卡 爾 積 結 果 集 中 選 取 在 指 定 的 屬 性 集 上 滿 足 條 件 的 元 組 , 組 成 新 的 關 系 。vR S = | tr R ts S trAtsB vA和 B: 分 別 為 R和 S上 度 數(shù) 相 等 且 可 比 的 屬 性 組v是 比 較 運 算 符 AB tr ts vR S是 在 R和 S的 笛 卡 爾 積 中 挑 選 第 a個 分 量 和 S中 第 b個分 量 滿 足 運 算 的 元 組 。v兩 類 常 用 連 接 運 算 等 值 連 接 ( 為 “ ” 的 連 接 運 算 ) 自 然 連 接 ( 一 種 特 殊 的 等 值 連 接 ) AB 不等連接則 結 果 為 等值連接R SR.B=S.B 自然連接R S 等值連接與自然連接的區(qū)別v 1. 等 值 連 接 中 不 要 求 相 等 屬 性 值 的 屬 性 名 相 同 , 而 自 然 連 接 要求 相 等 屬 性 值 的 屬 性 名 必 須 相 同 。 即 兩 關 系 只 有 在 同 名 屬 性 才能 進 行 自 然 連 接 。 如 上 例 R中 的 C列 和 S中 的 D列 可 進 行 等 值 連接 , 但 因 為 屬 性 名 不 同 , 不 能 進 行 自 然 連 接 。v 2. 等 值 連 接 不 將 重 復 屬 性 去 掉 , 而 自 然 連 接 去 掉 重 復 屬 性 。 也可 以 說 , 自 然 連 接 是 去 掉 重 復 列 的 等 值 連 接 。 如 上 例 R中 的 B列和 S中 的 B列 進 行 等 值 連 接 時 , 結 果 有 兩 個 重 復 的 屬 性 列 B,而 進行 自 然 連 接 時 , 結 果 只 有 一 個 屬 性 列 B。 v 外 連 接 如 果 把 舍 棄 的 元 組 也 保 存 在 結 果 關 系 中 , 而 在 其 他 屬 性 上 填 空 值(Null), 這 種 連 接 就 叫 做 外 連 接 ( OUTER JOIN) 。v 左 外 連 接 如 果 只 把 左 邊 關 系 R中 要 舍 棄 的 元 組 保 留 就 叫 做 左 外 連 接 (LEFT OUTER JOIN或 LEFT JOIN)v 右 外 連 接 如 果 只 把 右 邊 關 系 S中 要 舍 棄 的 元 組 保 留 就 叫 做 右 外 連 接 (RIGHT OUTER JOIN或 RIGHT JOIN)。 等值連接與自然連接的區(qū)別v1. 等 值 連 接 中 不 要 求 相 等 屬 性 值 的 屬 性 名 相 同 , 而 自 然 連接 要 求 相 等 屬 性 值 的 屬 性 名 必 須 相 同 。 即 兩 關 系 只 有 在 同名 屬 性 才 能 進 行 自 然 連 接 。v2. 等 值 連 接 不 將 重 復 屬 性 去 掉 , 而 自 然 連 接 去 掉 重 復 屬 性 。也 可 以 說 , 自 然 連 接 是 去 掉 重 復 列 的 等 值 連 接 。 R S自然連接 v 外 連 接 如 果 把 舍 棄 的 元 組 也 保 存 在 結 果 關 系 中 , 而 在 其 他 屬 性 上 填 空 值(Null), 這 種 連 接 就 叫 做 外 連 接 ( OUTER JOIN) 。v 左 外 連 接 如 果 只 把 左 邊 關 系 R中 要 舍 棄 的 元 組 保 留 就 叫 做 左 外 連 接 (LEFT OUTER JOIN或 LEFT JOIN)v 右 外 連 接 如 果 只 把 右 邊 關 系 S中 要 舍 棄 的 元 組 保 留 就 叫 做 右 外 連 接 (RIGHT OUTER JOIN或 RIGHT JOIN)。 A B C B Da1 b1 2 b1 5a1 b2 4 b2 6a2 b3 6 b4 7a2 b4 8 b5 8R SA B C Da1 b1 2 5 a1 b2 4 6a2 b3 6 nulla2 b4 8 7null b5 null 8外 連 接 A B C Da1 b1 2 5a1 b2 4 6a2 b3 6 nulla2 b4 8 7左 外 連 接 A B C Da1 b1 2 5a1 b2 4 6a2 b4 8 7null b5 null 8右 外 連 接 3、關系代數(shù)的應用實例例 : 數(shù) 據(jù) 庫 中 有 三 個 關 系S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)1. 查 詢 講 授 數(shù) 據(jù) 庫 課 程 的 教 師2. 檢 索 學 習 課 程 號 為 C2的 學 生 的 學 號 與 成 績3. 檢 索 學 習 課 程 號 為 C2的 學 生 的 學 號 與 姓 名4. 檢 索 選 修 課 程 名 為 Maths的 學 生 學 號 與 姓 名5. 檢 索 選 修 課 程 號 為 C2或 C4的 學 生 學 號 6. 檢 索 不 學 C2課 的 學 生 姓 名 與 年 齡