中国科技大学MBA电子商务.ppt

上传人:xt****7 文档编号:20569856 上传时间:2021-03-31 格式:PPT 页数:52 大小:522KB
返回 下载 相关 举报
中国科技大学MBA电子商务.ppt_第1页
第1页 / 共52页
中国科技大学MBA电子商务.ppt_第2页
第2页 / 共52页
中国科技大学MBA电子商务.ppt_第3页
第3页 / 共52页
点击查看更多>>
资源描述
0 第二章 关系数据库 2.1 关系数据结构 2.2 关系的完整性 2.3 关系代数 2.4 关系数据库管理系统 1 第二章 关系数据库 关系数据库系统是目前应用最普遍、最有发展前 途的数据库系统,而关系数据库系统的基础即是 关系模型。与其它模型相比,关系模型具有坚实 的理论基础 关系运算理论。因此本章是这门 课程的重点内容,也是后面所有介绍关系数据库 概念的基础知识。 关系模型是由关系数据结构、关系操作集合和关 系的完整性三部分组成。 2 2.1 关系数据结构 从用户的角度看,关系模型的数据结构是一张 二维表,由于关系模式是建立在集合代数的基 础上,这里从集合论角度给出关系数据结构的 形式化定义,以及有关关系模式、关系、元组、 属性、候选码、主码、外码等相关概念。 1.关系 (1)域 (domain) 定义 2.1 域是一组具有相同数据类型的值的集 合。 3 2.1 关系数据结构 关系 (2)笛卡尔积 (Cartesian product) 定义 2.2 给定一组域 D1 ,D2 , ,Dn ,这些域可以完 全不同,也可以部分或全部相同。 D1 ,D2 , ,Dn 的笛卡尔积为: 其中每一个元素 (d1 ,d2 , ,dn )叫作一个 n元组, 简称元组,元素中的每一个值 di叫作一个分量。 若 Di (i=1,2, ,n)为有限集,其基数为 mi (i=1,2, ,n), 则 D1 D2 Dn 的基数为 ( ) 1 2 n 1 2 n i iD D D d , d , , d d D ,i 1 , 2 , , n 1 n i i Mm 4 2.1 关系数据结构 关系 【 例 1】 D1 陈新 ,刘成宾 ( 导师集合 ) D2 计算机 ,信息 ( 专业集合 ) D3 李勇 ,刘英 ,韩小海 ( 研究生集合 ) D1 D2 D3 (陈新 ,计算机 ,李勇 ),(陈新 ,计算机 ,刘 英 ),(陈新 ,计算机 ,韩小海 ),(陈新 ,信息 ,李勇 ),(陈新 , 信息 ,刘英 ),(陈新 ,信息 ,韩小海 ), (刘成宾 ,计算机 ,李 勇 ),(刘成宾 ,计算机 ,刘英 ),(刘成宾 ,计算机 ,韩小 海 ),(刘成宾 ,信息 ,李勇 ),(刘成宾 ,信息 ,刘英 ),(刘成 宾 ,信息 ,韩小海 ) 基数为: 2 2 3 12 是元 组 是分 量 是分 量是分 量 5 2.1 关系数据结构 笛卡尔积可表示为 一个二维表 。 表中 的每行对应一个元 组 , 表中的每列对 应一个域 。 导 师 专 业 研究生 陈 新 计算机 李 勇 陈 新 计算机 刘 英 陈 新 计算机 韩小海 陈 新 信 息 李 勇 陈 新 信 息 刘 英 陈 新 信 息 韩小海 刘成宾 计算机 李 勇 刘成宾 计算机 刘 英 刘成宾 计算机 韩小海 刘成宾 信 息 李 勇 刘成宾 信 息 刘 英 刘成宾 信 息 韩小海 6 2.1 关系数据结构 关系 (3)关系 (relation) 定义 2.3 笛卡尔积的子集叫作在域 D1 ,D2 , ,Dn 上的关系,用 R(D1 ,D2 , ,Dn ) 表示。其中 R为 关系名, n是关系的目或度。 关系中的每个元素是关系中的元组,通常 用 t表示。 关系是笛卡尔积的一个有意义的子集 , 所以关 系也是一张二维表。表中的每行对应一个元组 , 每列对应一个域。因为域可以相同,必须为域 取名,称为属性, n目关系必有 n个属性。 7 2.1 关系数据结构 关系 在关系 DB中,码是关系模型的一个重要概念。 候选码: 关系中的某一属性组,若它的值唯一 地标识了一个元组,而其真子集不行,则该属 性组称为候选码。 主码: 若关系中有多个候选码,则选定其中一 个为关系的主码。 主属性与非主属性: 包含在任何一个候选码中 的属性称为主属性,不包含在任何候选码中的 属性称为非主属性。 8 2.1 关系数据结构 关系 【 例 2】 从前面 例 1的笛卡尔积中选取一个有意义的子 集。 (由于一个研究生只师从于一个导师,学习某一个专 业,所以笛卡尔积中许多元组没有实际意义,我们从中选 出有实际意义的元组来构造关系 ) 假设导师与专业是 1:1的关系,导师与研究生是 1:n的关系。则得到下 列表: 导 师 专 业 研究生 陈 新 计算机 李 勇 陈 新 计算机 刘 英 刘成宾 信 息 韩小海 SPA Key=研究生 9 2.1 关系数据结构 关系 关系的类型: 基本关系: 实际存在的表,它是实际存储数 据的逻辑表示。 查询表: 查询结果对应的表。 视图表: 是由基本表或其他视图表导出地表, 是虚表,不对应实际存储的数据。 10 2.1 关系数据结构 关系 关系的性质 属性值是原子的,不可分解 没有重复元组 没有行序 理论上没有列序,为方便,使用时有列序 列是同质的 11 2.1 关系数据结构 2.关系模式 关系模式是 “ 型 ” 的概念,是对关系的描述。 关系是 “ 值 ” 的概念,是关系模式在某一时刻 的状态或内容。 关系模式是静态的、相对稳定的。 而关系是动态的,随时间的变化而不断变化。 因为关系操作在不断更新着数据库中的数据, 以使得数据库能真实地反映现实世界的最新状 态。 12 2.1 关系数据结构 关系模式 关系需要描述哪些方面? 因为 关系是元组的集合,也就是笛卡尔积的一 个子集,所以 关系模式必须指出这些元组集合 的结构 (即属性的构成、属性来自的域、属性与域之 间的映射关系) 。 其次, 关系模式的关系随时间而变化,但客观 世界许多既有事实限定了这种变化必须满足一 定的完整性约束条件,这些约束条件或者通过 对属性取值范围的限定,或者通过属性间的相 互关连反映出来,所以 关系模式应当刻划这些 完整性约束条件 。 13 2.1 关系数据结构 关系模式 关系模式应当是一个五元组,可形式化地表示 为: R(U, D, DOM, F) 属性名集合 关系名 U中属性来自的域 属性间数据的 依赖关系集 属性向 域 的 映象集合 简记为: R(U) 或 R(A1, A2, , An) 14 2.1 关系数据结构 关系模式 3.关系数据库 在一个给定的应用领域中,所有实体及实体之间 联系的关系的集合构成一个关系数据库。 关系数据库也有型与值之分。 关系数据库的 型 称为关系数据库模式,是对关系 数据库的描述,它包括若干域的定义以及在这些 域上定义的若干关系模式。 关系数据库的 值 是这些关系模式在某一时刻对应 的关系的集合,通常就称为关系数据库。 15 第二章 关系数据库 2.1 关系数据结构 2.2 关系的完整性 2.3 关系代数 2.4 关系数据库管理系统 16 2.2 关系的完整性 关系模型的完整性规则是对关系的某种约束条 件。关系模型中可以有三类完整性约束: 实体 完整性 、 参照完整性 和 用户自定义完整性 。 其中 实体完整性 和 参照完整性 是关系模型必须 满足的完整性约束条件,被称作是关系的两个 不变性 ,是由关系系统自动支持的。 17 2.2 关系的完整性 1.实体完整性 实体完整性规则: 若属性 A是基本关系 R的主属 性,则属性 A不能取空值。 实体完整性规则要求关系中的元组在组成主码 的属性上不能取空值。若取空值,则主码的唯 一性将遭到破坏,这是对关系主码的约束。所 谓空值就是 “ 不知道 ” 或 “ 无意义 ” 的值。 例: 在学生选课关系: SC(学号,课号,成绩 ) 中, (学号,课号 )为主码,则 学号 和 课号 两个 属性都不能取空值。 18 2.2 关系的完整性 2.参照完整性 现实世界中的实体之间往往存在某种联系,在 关系模型中实体及实体间的联系都是用关系来 描述。这就自然存在着关系与关系间的引用。 先看几个 例子 。 19 2.2 关系的完整性 参照完整性 【例 1】 设有学生和专业两个关系,其中主码用 下划线标识: 学生 (学号 ,姓名,性别, 专业号 ,年龄 ) 专业 (专业号 ,专业名 ) 这两个关系之间存在着属性的引用,即学生关 系引用了专业关系的主码 “ 专业号 ” 。 显然,学生关系中专业号的取值,必须是确实 存在的专业的专业号,即专业关系中有该专业 的记录。也就是说, 学生关系中的某个属性的 取值需要参照专业关系的属性取值。 20 2.2 关系的完整性 参照完整性 【例 2】 “学生 课程 ” 数据库中有三个关系: 学生 (学号 ,姓名,性别,专业号,年龄 ) 课程 (课程号 ,课程名,学分 ) 选修 (学号,课程号 ,成绩 ) 这三个关系之间也存在着属性的引用,即选修 关系引用了学生关系的主码 “ 学号 ” 和课程关 系的主码 “ 课程号 ” 。 因此, 选修关系中某些属性的取值需要参照学 生关系和课程关系的属性取值。 21 2.2 关系的完整性 参照完整性 不仅两个或两个以上的关系之间可以存在引用 关系,同一关系内部属性间也可能存在引用关 系。 【 例 3】 设有关系 学生 2(学号 ,姓名 ,性别 ,专业号 ,年龄 ,班长 ) 其中 “ 学号 ” 属性是主码, “ 班长 ” 属性表示 该学生所在班级的班长的学号,它引用了本关 系 “ 学号 ” 属性,即 “ 班长 ” 必须是确实存在 的学生的学号。 22 2.2 关系的完整性 参照完整性 定义 2.4 设 F 是基本关系 R 的一个或一组属性, 但不是关系 R 的码,如果 F 与基本关系 S 的主 码 Ks相对应,则称 F 是基本关系 R 的 外码 ,并 称基本关系 R 为参照关系 , 基本关系 S 为被参 照关系或目标 关系。关系 R 和 S 不一定是不同 的关系。 学生关系 专业关系 专业号 课程关系 选修关系 学号 课程号 学生关系 参照关 系 被参照关 系 专业号 是学 生关系的 外 码 学号 和 课程号 是选修关系的 外码 参照关 系 被参照关 系 被参照关 系 23 2.2 关系的完整性 参照完整性 让一个关系的主码出现在另一个关系中,以实 现关系中数据的联系,这些在另一个关系中起 联系作用的属性组,就称为 外码 。 在关系 DB中,表之间的联系是通过 公共属性 实 现的,这个 公共属性就是一个表的主码和另一 个表的外码 。这是关系 DB的特点。 24 2.2 关系的完整性 参照完整性 参照完整性规则 就是定义外码与主码之间的引用 规则 参照完整性规则: 若属性 F( 或 属性组)是基本 关系 R 的外码,它与基本关系 S 的主码 Ks相对应, 则对于 R 中每个元组在 F 上的 值必须为: 或者取 空值( F 的 每个属性 值 均为空 值); 或者等于 S 中某个 元组的主码 值。 规则要求: 外码 值必须是另一个关系的 主码的有 效 值,或者是 “ 空值 ” 。 这是对关系 外码的约束。 外码 值是否允许为空值,应视具体情况而言。 25 2.2 关系的完整性 参照完整性 对照前例: 【 例 1】 : 学生关系中的专业号可取两类值: 空值, 表示尚未给该学生分配专业 非空值, 必须是专业关系中某个元组的专业号值 【 例 2】 : 按 参照完整性,选修 关系中的学号和课号也可取 两类值,空值或被 参照 关系中已存在的值。但由于学号 和课号是 选修 关系中的主属性,按实体 完整性不能取 空 值,所以实际上 学号和课号只有一种 取 值 。 【 例 3】 : 学生 2关系中的班长属性也可取两类值: 空值, 表示尚未选出班长 非空值, 必须是本关系中某个元组的学号值 26 2.2 关系的完整性 3.用户自定义完整性 用户自定义完整性就是针对某一具体关系 数据库的约束条件。它反映某一具体应用所涉 及的数据必须满足的语义要求。 27 第二章 关系数据库 2.1 关系数据结构 2.2 关系的完整性 2.3 关系代数 2.4 关系数据库管理系统 28 2.3 关系代数 关系代数是关系数据库系统查询语言的理论基础 , 而关系的数据查询语言是关系代数的具体实现。 关系模型给出了关系操作的能力,这个能力是用 关系数据语言来表示的。 关系数据语言包括: 关系代数语言: 是用对关系的运算来表达查询要 求的方式 关系演算语言: 是用谓词来表达查询要求的方式 具有 关系代数和关系演算双重特征特点的语言 SQL 29 2.3 关系代数 关系代数运算符 集合 运算符: , , 专门的 关系运算符: , , , 比较 运算符: , , , , , 逻辑 运算符: , , 30 2.3 关系代数 引入记号: R(A1 ,A2 , ,An)是关系模式, R为一个关系, t R 表示 t是 R的一个元组, tAi表示元组 t中相应于 属性 Ai的一个分量。 若 A=Ai1 , Ai2 , , Aik ,则 A称为属性列, tA=(tAi1, tAi2, , tAik)表示元组 t在属性 列 A上诸分量的集合。 表示 A1 ,A2 , ,An去掉 Ai1 , Ai2 , , Aik后剩余的部分属性组。 31 2.3 关系代数 R为 n目 关系, S为 m目 关系。 tr R , ts S 。 trts称为元组的连接。它是一个 (n+m)列的元组, 前 n个分量 为 R中的一个 n元组,后 m个分量 为 S中 的一个 m元组。 给定一个关系 R(X,Z),X和 Z是属性组,定义 tX=x 时, x在 R中的象集为: Zx= tZ t R ,tX=x 它表示 R中属性组 X上值为 x的 诸元组在 Z上分量 的集合 32 2.3 关系代数 1.传统的集合运算 关系的并: R S t t R t S 由属于 R或属于 S的元组组成。即由关系 R和 S的所 有元组合并,再除去重复元组,组成的一个新 关系。 关系的差: R-S t t R t S 由属于 R而不属于 S的所有元组组成。即关系 R中 除去与 S关系中相同的元组,组成的一个新关系。 关系的交: R S t t R t S 由即属于 R又属于 S的元组组成。即在两个关系 R 与 S中取相同的元组,组成的一个新关系。 33 2.3 关系代数 传统的集合运算 广义 笛卡尔积: R S trts tr R ts S 两个分别为 n目和 m目的 关系 R 和 S 的 广义 笛卡 尔积是一个 (n+m)列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一 个元组。 若 R 有 k1个元组, S 有 k2个元组,则 R S 有 k1 k2个元组。 34 2.3 关系代数 传统的集合运算 传统的集合运算举例: 设有两个关系 R和 S,计 算 R S, R S, R-S, R S。 A B C a1 a1 a2 b1 b2 b2 c1 c2 c1 A B C a1 a1 a2 b2 b3 b2 c2 c2 c1 A B C a1 a1 a2 a1 b1 b2 b2 b3 c1 c2 c1 c2 A B C a1 a2 b2 b2 c2 c1 A B C a1 b1 c1 R S R S R S R-S 35 2.3 关系代数 传统的集合运算 A B C A B C a1 a1 a1 a1 a1 a1 a2 a2 a2 b1 b1 b1 b2 b2 b2 b2 b2 b2 c1 c1 c1 c2 c2 c2 c1 c1 c1 a1 a1 a2 a1 a1 a2 a1 a1 a2 b2 b3 b2 b2 b3 b2 b2 b3 b2 c2 c2 c1 c2 c2 c1 c2 c2 c1 R S A B C a1 a1 a2 b1 b2 b2 c1 c2 c1 A B C a1 a1 a2 b2 b3 b2 c2 c2 c1 R S 36 2.3 关系代数 2.专门的关系运算 关系的选择: 从关系中找出满足给定条件的所有元组。其中 的条件 F是以逻辑表达式给出,那些使逻辑表 达式的值为真的元组被选取。这是从行的角度 进行运算,即水平方向抽取元组。 关系的投影: 从关系中挑选若干属性组成新的关系。这是从 列的角度进行运算,相当于对关系进行垂直分 解。 ( ) ( )F R t t R F t 真 ( ) A R t A t R 37 2.3 关系代数 专门的关系运算 关系的连接: 连接是将两个关系的属性名拼接成一个更宽的 关系,生成的新关系中包含满足连接条件的元 组。运算过程是通过连接条件 A B 来控制的, 连接条件中将出现不同关系中的公共属性名, 连接是对关系的结合。连接运算是从行的角度 进行运算。 r s r s r sABR S t t t R t S t A t B 38 2.3 关系代数 专门的关系运算 自然连接: 自然连接是除去重复属性的等值连接,它是连 接运算的一个特例,是最常用的连接运算。自 然 连接同时从行和列的角度进行运算。 r s r s r sR S t t t R t S t A t A 39 2.3 关系代数 专门的关系运算 连接运算举例: 设有关系 R和 S,计算: A B C a1 a1 a2 a2 b1 b2 b3 b4 5 6 8 12 B E b1 b2 b3 b3 b5 3 7 10 2 2 R S CERS A R.B C S.B E a1 a1 a1 a1 a2 b1 b1 b2 b2 b3 5 5 6 6 8 b2 b3 b2 b3 b3 7 10 7 10 10 40 RS.R B S BRS A B C E a1 a1 a2 a2 b1 b2 b3 b3 5 6 8 8 3 7 10 2 A R.B C S.B E a1 a1 a2 a2 b1 b2 b3 b3 5 6 8 8 b1 b2 b3 b3 3 7 10 2 A B C a1 a1 a2 a2 b1 b2 b3 b4 5 6 8 12 B E b1 b2 b3 b3 b5 3 7 10 2 2 R S 41 2.3 关系代数 专门的关系运算 关系的除: 设有关系 R(X,Y)与关系 S(Z),其中 X,Y,Z为属性集合。假设 Y和 Z具有相同的属性 个数,且对应属性出自相同的域。关系 R(X,Y) 除以 S(Z)所得的商关系,是关系 R在属性 X上投 影的一个子集,该子集和 S(Z)的笛卡尔积必须 包含在 R(X,Y)中。记为: 除操作同时从行和列的角度进行运算。 ( )r r x YR S t X t R Y S 2.3 关系代数 专门的关系运算 除运算举例: 设有关系 R和 S,计算 R S 解 :第一步 ,找出 R中属性 A可取的值的集合 a1,a2,a3,a4; 第二步 ,求 A=a1,a2,a3,a4 时的象集。 a1 的象集 :(b1,c2),(b2,c3),(b2,c1) a2 的象集 :(b3,c2),(b2,c3) a3 的象集 :(b4,c6) a4 的象集 :(b6,c6) 第三步 ,S在 BC上的投影 :(b1,c2),(b2,c1),(b2,c3) 可看出,只有 a1的象集包含 S在 BC上的投影,所以 R S a1 A B C a1 a2 a3 a1 a4 a2 a1 b1 b3 b4 b2 b6 b2 b2 c2 c7 c6 c3 c6 c3 c1 B C D b1 b2 b2 c2 c1 c3 d1 d1 d2 R S 43 2.3 关系代数 专门的关系运算 又解: T=1,2, ,r-s(R) W=(T S)-R V= 1,2, ,r-s(W) R S=T-V 即: R S 1,2, ,r-s(R)-1,2, ,r-s(R)(1,2, ,r-s(R) S)-R) a1,a2,a3,a4 A B C a2 a2 a3 a3 a3 a4 a4 a4 b1 b2 b1 b2 b2 b1 b2 b2 C2 C1 C2 C1 C3 C2 C1 C3 a2,a3,a4 a1 44 2.3 关系代数 3.关系代数表达式综合应用实例 用关系代数运算经有限次复合而成的式子 称为关系代数表达式,这种表达式的运算结果 仍然是一个关系。可以用关系代数表达式表示 对数据库的查询和更新操作 。 【 例 】 设 “ 学生 课程 ” 数据库中的三个关系为: 学生关系 S(S , SNAME, SEX, AGE, DEPT) 课程关系 C(C , CNAME, PC ) 选修关系 SC(S , C , GRADE) 下面用关系代数表达式表示 “ 学生 -课程 ” 数据 库中的查询要求。 2.3 关系代数 关系代数应用实例 (1)查询选修了课程号为 c2 的学生所在系 解: (2)查询选修了课程号为 c1 或 c2 的学生学号 解: (3)查询至少选修了课程号为 c1 ,c2 的学生学号 解:构造临时关系 则结果为 # # # ,S C C 2 S S DS C S # # # C C C 1 C C 2KC # , # # , # # # # S C S C C C C 1 C C 2S C K S C C # # # S C C 1 C C 2 SC 先做投影、选 择,再做连接 看题意 ,找 出操作对 象 K为 : C# C1 C2 46 2.3 关系代数 专门的关系运算 (4)查询至少选修了一门先行课课号为 c6 的学生姓名 解: (5)将新课程元组 (C10,信息安全 ,C8)插入到关 系 C中 解: C (C10,信息安全 ,C8) (6)将学号为 S3, 选修课程号为 C5的成绩 80改为 85分 解: SC-(S3,C5,80) (S3,C5,85) 更新操作要分两步实现,先删除原元组,再插入新 元组。 # # # # , # # ,S N S C P C C 6 S C S S NC S C S 1 2 3 4 5 6 7 47 第二章 关系数据库 2.1 关系数据结构 2.2 关系的完整性 2.3 关系代数 2.4 关系数据库管理系统 48 2.4 关系数据库管理系统 前面讨论了关系模型三要素,关系 DBMS简 称关系系统,和关系模型是两个密切相关而又 不同的概念。一般说,支持关系模型的 DBMS称 为关系系统,但因为关系模型中并非每一部分 都同等重要,所以不苛求一个实际的关系 DBMS 必须完全支持关系模型,也不苛求一个完全支 持关系模型的系统才称为关系系统。下面给出 关系系统的最小要求及分类的定义。 49 2.4 关系数据库管理系统 1.关系系统的定义 定义 2.5 一个系统可以定义为关系系统,当且 仅当它: 支持关系数据结构 支持选择、投影和连接运算,对这些运算不必 要求定义任何物理存取路径。 支持数据结构而无运算功能不能称关系系统, 支持运算但要定义物理存取路径也不能称为关 系系统。但不要求三种运算和关系代数完全一 致,只要求有等价的三种运算即可。 50 2.4 关系数据库管理系统 2.关系系统的分类 前面的定义是关系系统的最小要求,许多 系统不同程度地超过了要求,按 E.F.Codd的思 想,可把关系系统分类: 表示系统: 仅支持结构,不支持集合级操作, 不能称关系系统。 (最小 )关系系统: 即前面定义中的关系系统。 关系完备系统: 支持关系数据结构及所有关 系代数操作。 全关系系统: 支持关系模型的所有特征。 51 第二章结束
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!