资源描述
数 据 库 原 理第 二 章 : 关 系 数 据 库 授 课 教 师 : 王 哲 本章主要学习内容v 关 系 模 型 关 系 数 据 结 构 关 系 操 作 关 系 的 完 整 性 约 束v 关 系 代 数 集 合 计 算 关 系 运 算v 关 系 演 算 元 组 关 系 演 算 语 言 ALPHA 域 关 系 演 算 语 言 QBE 一、关系数据结构及形式化定义v单 一 的 数 据 结 构 -关 系现 实 世 界 的 实 体 以 及 实 体 间 的 各 种 联 系 均 用 关 系 来 表 示v逻 辑 结 构 -二 维 表 从 用 户 角 度 , 关 系 模 型 中 数 据 的 逻 辑 结 构 是 一 张 二 维 表v关 系 操 作 的 对 象 和 结 果 都 是 集 合 , 关 系 模 型 建 立 在 集 合 代数 的 基 础 上 ; 1、域v 域 ( Domain) : 一 组 具 有 相 同 数 据 类 型 的 值 的 集 合 , 也 称 为 值域 , 用 D表 示 。v 域 中 所 包 含 的 值 的 个 数 称 为 域 的 基 数 , 用 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 该 笛 卡 尔 积 的 基 数 为 2x3=6v 元 组 的 个 数 为 6 例 2: D1=导 师 集 合 SUPERVISOR=张 清 玫 , 刘 逸 D2=专 业 集 合 SPECIALITY=计 算 机 专 业 , 信 息 专 业 D3=研 究 生 集 合 POSTGRADUATE=李 勇 , 刘 晨 , 王 敏则 : D1XD2XD3=( 张 清 玫 , 计 算 机 专 业 , 李 勇 ) ,( 张 清 玫 , 计 算 机 专 业 , 刘 晨 ) ,( 张 清 玫 , 计 算 机 专 业 , 王 敏 ) ,( 张 清 玫 , 信 息 专 业 , 李 勇 ) ,( 张 清 玫 , 信 息 专 业 , 刘 晨 ) ,( 张 清 玫 , 信 息 专 业 , 王 敏 ) ,( 刘 逸 , 计 算 机 专 业 , 李 勇 ) ,( 刘 逸 , 计 算 机 专 业 , 刘 晨 ) ,( 刘 逸 , 计 算 机 专 业 , 王 敏 ) ,( 刘 逸 , 信 息 专 业 , 李 勇 ) ,( 刘 逸 , 信 息 专 业 , 刘 晨 ) ,( 刘 逸 , 信 息 专 业 , 王 敏 ) 该 笛 卡 尔 积 的 基 数 为 2x2x3=12即 元 组 的 个 数 为 12 3)笛卡尔积的二维表表示v笛 卡 尔 积 也 可 以 用 二 维 表 表 示 ,其 中 表 的 框 架 由 域 构 成 ,表的 任 意 一 行 就 是 一 个 元 组 ,每 一 列 数 据 来 则 同 一 域 。例 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) 在 数 学 上 , 关 系 是 笛 卡 尔 积 的 任 意 子 集 , 按 照 笛 卡 儿 积 的 定义 , 关 系 可 以 是 一 个 无 限 集 合 。v 但 在 实 际 应 用 中 关 系 是 笛 卡 尔 积 中 所 取 的 有 意 义 的 子 集 。 例 如在 表 中 选 取 一 个 子 集 构 成 如 下 关 系 , 显 然 不 符 合 实 际 情 况 。姓 名 性 别李 力 男李 力 女 v属 性 ( Attribute)n 关 系 中 不 同 列 可 以 对 应 相 同 的 域n 为 了 加 以 区 分 , 必 须 对 每 列 起 一 个 名 字 , 称 为 属 性 名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关 系 模 式 是 对 关 系 的 描 述 元 组 集 合 的 结 构属 性 构 成属 性 来 自 的 域 属 性 与 域 之 间 的 映 象 关 系 元 组 语 义 确 定 满 足 一 定 的 完 整 性 约 束 条 件 属 性 间 的 数 据 依 赖 v关 系 模 式 可 以 形 式 化 地 表 示 为 : R( U, D, DOM, F)R 关 系 名U 组 成 该 关 系 的 属 性 名 集 合D 属 性 组 U中 属 性 所 来 自 的 域DOM 属 性 向 域 的 映 象 集 合F 属 性 间 的 数 据 依 赖 关 系 集 合注 : 域 名 及 属 性 向 域 的 映 象 常 常 直 接 说 明 为 属 性 的 类 型 、 长 度 v关 系 模 式 通 常 可 以 简 记 为 R (U) 或 R (A1, A2, , An)n R: 关 系 名n A1, A2, , An : 属 性 名 关系模式与关系v关 系 模 式n 对 关 系 的 描 述n 静 态 的 、 稳 定 的v关 系n 关 系 模 式 在 某 一 时 刻 的 状 态 或 内 容n 动 态 的 、 随 时 间 不 断 变 化 的v 关 系 模 式 和 关 系 往 往 统 称 为 关 系 , 通 过 上 下 文 加 以 区 别 5、关系数据库v关 系 数 据 库n 在 一 个 给 定 的 应 用 领 域 中 , 所 有 关 系 的 集 合 构 成 一 个 关 系 数据 库 。v关 系 数 据 库 的 型 : 关 系 数 据 库 模 式 , 对 数 据 库 的 描 述 。 是稳 定 的 。v关 系 数 据 库 的 值 : 关 系 模 式 在 某 一 时 刻 对 应 的 关 系 的 集 合 。通 常 就 称 为 关 系 数 据 库 。 二、关系操作v常 用 的 关 系 操 作 查 询 : 查 询 是 关 系 操 作 中 最 主 要 的 部 分 , 包 括 选 择 、 投 影 、 连 接 、除 、 并 、 交 、 差 、 笛 卡 尔 积 , 其 中 选 择 、 投 影 、 并 、 差 、 笛 卡 尔积 是 5种 基 本 操 作 。 数 据 更 新 : 插 入 、 删 除 、 修 改v 关 系 操 作 的 特 点 集 合 操 作 方 式 : 操 作 的 对 象 和 结 果 都 是 集 合 , 一 次 一 集 合 的 方 式 关系数据语言的分类v 关 系 代 数 语 言 用 对 关 系 的 运 算 来 表 达 查 询 要 求 , 代 表 : ISBLv关 系 演 算 语 言 : 用 谓 词 来 表 达 查 询 要 求 元 组 关 系 演 算 语 言 , 谓 词 变 元 的 基 本 对 象 是 元 组 变 量 , 代 表 : APLHA, QUEL 域 关 系 演 算 语 言 , 谓 词 变 元 的 基 本 对 象 是 域 变 量 , 代 表 : QBEv具 有 关 系 代 数 和 关 系 演 算 双 重 特 点 的 语 言 代 表 : SQL, 集 查 询 、 DDL、 DML、 DCL于 一 体 的 关 系 数 据 语 言 , 它 充 分体 现 了 关 系 数 据 语 言 的 特 点 和 优 点 , 是 关 系 数 据 库 的 标 准 语 言 。 三、关系的完整性v为 了 维 护 数 据 库 中 数 据 与 现 实 世 界 的 一 致 性 , 对 关 系 数 据库 的 插 入 、 删 除 和 修 改 操 作 必 须 有 一 定 的 约 束 条 件 , 这 就是 关 系 模 型 的 三 类 完 整 性 : 实 体 完 整 性 参 照 完 整 性 用 户 定 义 的 完 整 性 v实 体 完 整 性 和 参 照 完 整 性 : 关 系 模 型 必 须 满 足 的 完 整 性 约 束 条 件 , 称 为 关 系 的 两 个不 变 性 , 应 该 由 关 系 系 统 自 动 支 持 。v用 户 定 义 的 完 整 性 : 应 用 领 域 需 要 遵 循 的 约 束 条 件 , 体 现 了 具 体 领 域 中 的 语义 约 束 。 1、实体完整性(Entity Integrity)规 则 2.1 实 体 完 整 性 规 则 ( Entity Integrity) , 若 属 性 A是 基 本 关 系 R的 主 属 性 , 则 属 性 A不 能 取 空 值 。如 : 学 生 ( 学 号 , 姓 名 , 性 别 , 专 业 号 , 年 龄 ) 课 程 ( 课 程 号 , 课 程 名 , 学 分 )其 中 主 码 学 号 , 课 程 号 不 可 取 空 值 。 实 体 完 整 性 规 则 的 说 明(1) 实 体 完 整 性 规 则 是 针 对 基 本 关 系 而 言 的 。 一 个 基 本 表 通 常 对 应 现 实世 界 的 一 个 实 体 集 。(2) 现 实 世 界 中 的 实 体 是 可 区 分 的 , 即 它 们 具 有 某 种 唯 一 性 标 识 。(3) 关 系 模 型 中 以 主 码 作 为 唯 一 性 标 识 。(4) 主 码 中 的 属 性 即 主 属 性 不 能 取 空 值 。主 属 性 取 空 值 , 就 说 明 存 在 某 个 不 可 标 识 的 实 体 , 即 存 在 不 可 区分 的 实 体 , 这 与 第 ( 2) 点 相 矛 盾 , 因 此 这 个 规 则 称 为 实 体 完 整 性 2、参照完整性v 在 关 系 模 型 中 实 体 及 实 体 间 的 联 系 都 是 用 关 系 来 描 述 的 , 因 此可 能 存 在 着 关 系 与 关 系 间 的 引 用 。例 1: 学 生 实 体 、 专 业 实 体学 生 ( 学 号 , 姓 名 , 性 别 , 专 业 号 , 年 龄 )专 业 ( 专 业 号 , 专 业 名 )v 学 生 关 系 引 用 了 专 业 关 系 的 主 码 “ 专 业 号 ” 。v 学 生 关 系 中 的 “ 专 业 号 ” 值 必 须 是 确 实 存 在 的 专 业 的 专 业 号 , 即 专 业关 系 中 有 该 专 业 的 记 录 。 例 2: 学 生 、 课 程 、 学 生 与 课 程 之 间 的 多 对 多 联 系学 生 ( 学 号 , 姓 名 , 性 别 , 专 业 号 , 年 龄 )课 程 ( 课 程 号 , 课 程 名 , 学 分 )选 修 ( 学 号 , 课 程 号 , 成 绩 ) 例 3: 学 生 实 体 及 其 内 部 的 一 对 多 联 系学 生 ( 学 号 , 姓 名 , 性 别 , 专 业 号 , 年 龄 , 班 长 )v “ 学 号 ” 是 主 码 , “ 班 长 ” 是 外 码 , 它 引 用 了 本 关 系 的 “ 学 号 ” v “ 班 长 ” 必 须 是 确 实 存 在 的 学 生 的 学 号学号姓名性别专业号年龄班长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) 规 则 2.2 参 照 完 整 性 规 则 若 属 性 ( 或 属 性 组 ) F是 基 本 关 系 R的 外 码 , 它 与 基 本 关系 S的 主 码 Ks相 对 应 ( 基 本 关 系 R和 S不 一 定 是 不 同 的 关系 ) , 则 对 于 R中 每 个 元 组 在 F上 的 值 必 须 为 :n 或 者 取 空 值 ( F 的 每 个 属 性 值 均 为 空 值 )n 或 者 等 于 S 中 某 个 元 组 的 主 码 值 例 1:学 生 关 系 中 每 个 元 组 的 “ 专 业 号 ” 属 性 只 取 两 类 值 :( 1) 空 值 , 表 示 尚 未 给 该 学 生 分 配 专 业( 2) 非 空 值 , 这 时 该 值 必 须 是 专 业 关 系 中 某 个 元 组 的 “ 专业 号 ” 值 , 该 学 生 不 可 能 分 配 一 个 不 存 在 的 专 业 。 例 2:选 修 ( 学 号 , 课 程 号 , 成 绩 )“ 学 号 ” 和 “ 课 程 号 ” 可 能 的 取 值 : ( 1) 选 修 关 系 中 的 主 属 性 , 不 能 取 空 值 ( 2) 只 能 取 相 应 被 参 照 关 系 中 已 经 存 在 的 主 码 值 例 3:学 生 ( 学 号 , 姓 名 , 性 别 , 专 业 号 , 年 龄 , 班 长 )“ 班 长 ” 属 性 值 可 以 取 两 类 值 :( 1) 空 值 , 表 示 该 学 生 所 在 班 级 尚 未 选 出 班 长( 2) 非 空 值 , 该 值 必 须 是 本 关 系 中 某 个 元 组 的 学 号 值 3、用户定义的完整性v针 对 某 一 具 体 关 系 数 据 库 的 约 束 条 件 , 反 映 某 一 具 体 应 用所 涉 及 的 数 据 必 须 满 足 的 语 义 要 求 。v关 系 模 型 应 提 供 定 义 和 检 验 这 类 完 整 性 的 机 制 , 以 便 用 统一 的 系 统 的 方 法 处 理 它 们 , 而 不 要 由 应 用 程 序 承 担 这 一 功能 。例 : 1) 选 修 关 系 中 成 绩 的 取 值 范 围 为 0100之 间2) 某 个 属 性 ( 如 : 课 程 名 ) 必 须 取 唯 一 值 v 最 后 , 关 系 模 型 的 优 点 :1. 结 构 简 单 , 具 有 高 度 的 简 明 性 和 高 度 性2. 可 直 接 处 理 多 对 多 关 系3. 一 次 处 理 一 个 元 组 集 合4. 数 据 独 立 性 很 高5. 坚 实 的 数 学 理 论 基 础 四、关系代数v关 系 数 据 库 的 数 据 操 纵 语 言 ( DML) 的 语 句 分 成 查 询 语 句和 更 新 语 句 两 大 类 。 查 询 语 句 用 于 描 述 用 户 的 各 种 检 索 要求 ; 更 新 语 句 用 于 描 述 用 户 进 行 插 入 、 删 除 、 修 改 等 操 作 。v根 据 关 系 查 询 语 言 其 理 论 基 础 的 不 同 分 成 两 大 类 : 关 系 代 数 语 言 : 查 询 操 作 是 以 集 合 操 作 为 基 础 的 演 算 关 系 演 算 语 言 : 查 询 操 作 是 以 谓 词 演 算 为 基 础 的 演 算 关系代数v关 系 代 数 是 一 种 抽 象 的 查 询 语 言 , 属 于 关 系 操 作 的 一 种v通 过 对 关 系 的 运 算 来 表 达 查 询 操 作v运 算 的 对 象 及 结 果 均 为 关 系v运 算 集 合 运 算 、 关 系 运 算 、 比 较 运 算 、 逻 辑 运 算 关系代数的运算符 v 由 于 关 系 定 义 为 元 数 相 同 的 元 组 的 集 合 , 因 此 把 关 系 看 成 集 合 ,集 合 代 数 中 的 运 算 ( 并 、 差 、 交 、 笛 卡 尔 积 ) 就 可 以 引 入 到 关系 运 算 中 来 。 还 有 一 些 运 算 是 针 对 关 系 数 据 库 环 境 专 门 设 计 的 ,譬 如 对 关 系 进 行 垂 直 分 割 ( 投 影 ) 、 水 平 分 割 ( 选 择 ) 、 关 系的 结 合 ( 连 接 ) 等 。分 别 为1. 传 统 的 集 合 运 算2. 专 门 的 关 系 运 算 1、传统的集合运算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 字 符 型 数 据 的 值 应 该 使 用 单 引 号 括 起 来 , 例 如 : 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上 度 数 相 等 且 可 比 的 属 性 组v是 比 较 运 算 符 AB tr ts vR S是 在 R和 S的 笛 卡 尔 积 中 挑 选 第 a个 分 量 和 S中 第 b个分 量 满 足 运 算 的 元 组 。v两 类 常 用 连 接 运 算 等 值 连 接 ( 为 “ ” 的 连 接 运 算 ) 自 然 连 接 ( 一 种 特 殊 的 等 值 连 接 ) AB 不等连接则 结 果 为 等值连接R SR.B=S.B 自然连接R S 等值连接与自然连接的区别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)。 等值连接与自然连接的区别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、关系代数的应用实例例 : 数 据 库 中 有 三 个 关 系S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)1. 查 询 讲 授 数 据 库 课 程 的 教 师2. 检 索 学 习 课 程 号 为 C2的 学 生 的 学 号 与 成 绩3. 检 索 学 习 课 程 号 为 C2的 学 生 的 学 号 与 姓 名4. 检 索 选 修 课 程 名 为 Maths的 学 生 学 号 与 姓 名5. 检 索 选 修 课 程 号 为 C2或 C4的 学 生 学 号 6. 检 索 不 学 C2课 的 学 生 姓 名 与 年 龄
展开阅读全文