




已阅读5页,还剩107页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章关系数据库 是以关系模型为基础的数据库 目前最为流行 主导型 的数据库 目前绝大多数都是关系数据库在运行 E F Codd于20世纪70年代初提出关系数据理论 他因此获得1981年的ACM图灵奖之后 提出了关系代数和关系演算的概念关系理论是建立在集合代数理论基础上的 有着坚实的数学基础早期代表系统System 由IBM研制INGRES 由加州Berkeley分校研制 关系数据库回顾 2 1关系数据结构及形式化定义 关系特点用二维表格表示实体集 外键表示实体间的联系 关系必须是规范化的 单一的数据结构 规范化了的二维表格 集合代数的基础 1 数学定义 定义1 域 Domain 是一组具有相同类型的值的集合 即每个属性的取值范围 一组值的集合 这组值具有相同的数据类型例 整数集合 0 1 长度小于5的字符串集合等都可以是域 全体学生的集合 2 1 1基本术语 定义2 笛卡尔积给定一组域D1 D2 Dn 这些域中可以有相同的 D1 D2 Dn的笛卡儿积 CartesianProduct 为D1 D2 Dn d1 d2 dn di Di i 1 2 n 其中每一个元素 d1 d2 dn 叫做一个n元组 n tuple 或简称元组 元组中的每一个值di叫做一个分量 Component 它们分别取自相对应的集合Di 度 n 参与笛卡儿积的域的个数 它表示了每一个元组中分量的个数 通常用n的值来称呼元组 当n 1时 称为一元组 当n 2时 称为二元组 当n p时 称为p元组 基 域中可取值的个数 若Di i 1 2 n 是一组有限集 且分别含有mi i 1 2 n 个元素 则称mi为集合Di的基 笛卡儿积是有限集 其基为 M mi n i 1 例 设有域D1 姓名集合 NAME 王三 丁平 D2 职业集合 JOB 工人 农民 商人 D3 住址集合 ADDR 北京 上海 广州 则D1 D2 D3 D1 D2 D3的基分别为2 3 3 所以笛卡儿积的基为MD1 D2 D3 2 3 3 18 其度为3 王三 工人 北京 王三 工人 上海 王三 工人 广州 王三 农民 北京 王三 农民 上海 王三 农民 广州 王三 商人 北京 王三 商人 上海 王三 商人 广州 丁平 工人 北京 丁平 工人 上海 丁平 工人 广州 丁平 农民 北京 丁平 农民 上海 丁平 农民 广州 丁平 商人 北京 丁平 商人 上海 丁平 商人 广州 可以把笛卡儿积看作是一张二维表 行数 元组的个数 即笛卡儿积的基数 列数 域的个数 表中的每行对应一个元组 每列对应一个域 定义3 关系D1 D2 Dn的子集叫作在域D1 D2 Dn上的关系 记为R D1 D2 Dn 其中R是关系 Relation 的名 也是条件的体现 Di i 1 2 n 是关系的域 n是关系的目或度 Degree 关系中的每个元素是关系中的元组 通常用t表示 当n 1时 称为一元关系 UnaryRelation 当n 2时 称为二元关系 BinaryRelation 当n 3时 称为三元关系 TernaryRelation 关系就是一张二维表 行数 元组的个数 即笛卡儿积的基数 列数 域的个数 表中的每行对应一个元组 每列对应一个域 关系中不同列可以对应相同的域为了加以区分 必须对每列起一个名字 称为属性 Attribute n目关系必有n个属性 注意 两个或更多的属性可以都出于同一个域 这就需要在模式中给以映象 说明这个属性来自某个域 例 给出三个域D1 男人集合 MAN 王兵 李平 张英 D2 女人集合 WOMAN 丁梅 吴芳 D3 儿童集合 CHILD 王一 李一 李二 则家庭关系可表示为FAMILY MAN WOMAN CHILD 此例也可以只给出两个域 成人PERSON 王兵 李平 张英 丁梅 吴芳 儿童CHILD 王一 李一 李二 但构造FAMILY时仍要三个属性 其中MAN WOMAN都从PERSON域中取 PERSON这个域在FAMILY这个关系中扮演两个角色 就要给这个角色以不同的名字 即属性的名字 有两种方法 FAMILY M PERSON W PERSON CHILD 或FAMILY HUSBAND WIFE CHILD DOM HUSBAND DOM WIFE PERSON 在域名前加上前缀作为属性名给属性另起名字 代表域的意思 表示HUSBAND和WIFE属性取值来自PERSON域 一般说来 只有笛卡儿积的子集才是有意义的 条件 某人现在的职业和住址 定义的关系R应是R D1 D2 D3 王三 工人 上海 丁平 商人 广州 而全部元素作为关系是无意义的 根据条件去挑选笛卡儿积中的元组组成一个集合 就构成一个关系 条件就是关系的名 记录类型 关系模式 记录1 元组1 记录2 元组2 记录3 元组3 文件 关系 或实例 字段值 属性值 字段 数据项 属性 一般术语关系模型术语 术语对照 关系有三种基本类型基本关系 基本表 实际存在的表 是实际存储数据的逻辑表示 查询表查询结果所对应的表 视图表由基本表或视图表导出的表 是虚表 不对应实际存储的数据 2 关系的性质 每一分量必须是不可再分的数据项 表的列是同质的 即每一列中的所有值具有相同的性质 或说它们来自同一个域 属性 列 的顺序无关紧要 元组 行 的顺序无关紧要 同一关系中不存在两个完全相同的元组 各行相异 每一列称为属性 不同的属性要给予不同的属性名 关系性质1 同质的列 姓名2曾用名 关系性质2 不同的属性名 关系性质3 属性无序 关系性质4 元组不重复 关系性质5 元组无序 关系性质6 分量是原子 非规范化关系 规范化关系 3 有关关系术语解释 域和属性 Domain和Attribute 域是属性的取值范围 属性是列 属性名可以是域名 但有时不同的列名可以定义在同一域中 这时属性名就不能与域名同名了 关系的码 Key 如果一个属性 或属性集合 的值能唯一地标识一个关系的元组而又不含有多余的属性 则称该属性 或属性集合 为关系的码 或候选码 也称键 每个关系都有一个且只有一个主码 PrimaryKey 码的属性称为主属性 不包含在任何码中的属性称为非主属性 外码 ForeignKey FK 如果某一个关系中的属性 或属性集合 在另一个关系中是主码 则称该属性 或属性集合 是外码 关系的码 学生关系 课程关系 学习成绩关系 外部码 外部码 主码 主码 外部关系码 什么是关系模式 定义关系模式 关系模式与关系 2 1 2关系模式 关系模式是型是对数据本身的特性描述元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义以及完整性约束条件属性间的数据依赖关系集合关系是值 是元组的集合关系模式是用DDL定义的包括 关系名 属性名以及属性域的类型和长度 1 什么是关系模式 定义 关系模型中的数据结构就是关系模式 即是对关系的描述 它的形式化表示是一个5元组 R U D dom F 其中 R 关系名 U 属性名集合 D 域 属性组U中属性所来自的域 dom 属性向域的映射 F 属性间数据的依赖关系集合 2 关系模式定义 关系模式通常可以简记为R U 或R A1 A2 An R 关系名A1 A2 An 属性名注 域名及属性向域的映象常常直接说明为属性的类型 长度属性间的数据依赖关系将在第6章中讨论 关系的内涵和外延关系的内涵是关系模式 它是静态的 稳定的 是对关系的描述 关系的外延是关系 的值 任何给定的时刻 出现在关系中的所有元组的集合 它是动态的 随时间变化的 反映了关系模式在某一时刻的状态或内容 3 关系模式与关系 2 1 3关系数据库 关系数据库在一个给定的应用领域中 所有关系的集合构成一个关系数据库关系数据库的型与值 关系数据库的型 关系数据库模式对关系数据库的描述 关系数据库模式包括若干域的定义在这些域上定义的若干关系模式关系数据库的值 关系模式在某一时刻对应的关系的集合 简称为关系数据库 关系数据库 整个数据库 某关系的结构 某关系的实例 数据结构 单一的数据结构类型 关系或表 数据操作 一组完备的高级关系运算 数据的约束条件 三类完整性规则 2 2关系的完整性 1 关系模型关系模型的三要素 例 学生 课程数据库有三个关系 其关系模型结构 二维表 如下 学生关系S 课程关系C 学习关系SC 其关系模式描述如下 S SNO SNAME SDEPT SCLASS SAGE C CNO CNAME CTIME SC SNO CNO GRADE 可以看出 哪些关系之间有联系 到底哪些元组之间有联系 哪些元组之间无联系 这要看具体数据 值 而定 只有公共属性上具有相同属性值的元组之间才有联系 2 关系模型的完整性约束规则域完整性约束规则要求属性值必须取自其对应的值域 域完整性约束是最基本的约束 一个属性值能否为空值由其语义决定 实体完整性规则设属性A是基本关系R的主属性 码的组成部分 则属性A不能取空值 NULL 实体完整性是针对基本关系的 本规则要求基本关系中的元组在组成码属性上不能有空值 现实世界中的实体是可区分的 即它们具有某种唯一性标识 大部分DBMS支持实体完整性规则 S SNO SNAME SDEPT SCLASS SAGE C CNO CNAME CTIME SC SNO CNO GRADE 关系S的主属性SNO不能取空值关系C的主码CNO不能取空值关系SC的主属性SNO CNO不能取空值 参照 引用 完整性规则基本关系R中含有与另一个基本关系S的主码KS相对应的属性组F F称为R的外码 则对于R中的每个元组在F上的值必须为 或者取空值 F的每个属性值均为空值 或者等于S中某个元组的主码值 引用完整性约束是不同关系之间或同一关系的不同元组间的约束 本规则要求不允许引用不存在的元组 大部分DBMS支持引用完整性规则 例2 1职工关系EMP ENO ENAME DNO 部门关系DEPT DNO DNAME 在EMP中 DNO是外码 EMP中每个元组在DNO上的值允许有两种可能 取空值 这说明这个职工尚未分配到某个部门 若非空值 则DNO的值必须是DEPT中某个元组中的DNO值 表示此职工不可能分配到一个不存在的部门 职工表 EMP 部门表 DEPT 关系主码 外部关系码 例2 2学生实体及其内部的一对多联系学生 学号 姓名 性别 专业号 年龄 班长 学生 学号 姓名 性别 专业号 年龄 班长 学号 是主码 班长 是外码 它引用了本关系的 学号 班长 必须是确实存在的学生的学号 班长 属性值可以取两类值 1 空值 表示该学生所在班级尚未选出班长 2 非空值 该值必须是本关系中某个元组的学号值 例2 3选修 学号 课程号 成绩 学号 和 课程号 可能的取值 1 选修关系中的主属性 不能取空值 2 只能取相应被参照关系中已经存在的主码值 域完整性约束是最基本的约束 实体完整性约束是一个关系内的约束 引用完整性是不同关系之间或同一关系的不同元组间的约束 实体完整性和引用完整性是关系模型必须满足的完整性约束条件 称为关系的两个不变性 应该由关系数据库系统自动支持 用户自定义完整性规则这是针对某一具体数据的约束条件 由应用环境决定 用户定义的完整性规则反映某一具体应用所涉及的数据必须满足的语义要求 关系模型应提供定义和检验这类完整性的机制 以便用统一的系统的方法处理它们 而不要应用程序承担这一功能 并不是每个合乎语法的元组都能成为关系R的元组 它还要受到语义的限制 数据的语义不但会限制属性的值 而且还会制约属性间的关系 有些DBMS中 允许用户对个别数据说明一些约束及违反约束时的处理 但还没有一个RDBMS产品全面实现用户定义的完整性约束检查 例 学生的年龄限制为15 28岁之间 一个学生在图书馆借书的数目不能超过10本 用户定义的完整性 常用的关系操作查询 选择 投影 连接 除 并 交 差 笛卡尔积 数据更新 插入 删除 修改说明查询的表达能力是其中最主要的部分选择 投影 并 差 笛卡尔基是5种基本操作 2 3关系数据语言 在关系数据中 提供给用户对数据库进行操作的语言 称为关系数据语言 关系数据语言 关系演算语言 关系代数语言ISBL 元组关系演算语言QUEL 域关系演算语言QBE 具有关系代数和关系演算SQL双重特点的语言 关系数据语言特点 是集合操作语言 高度非过程化的 可以独立使用 也可以与主语言结合起来使用 具有完备的表达能力 具有定义 更新 增 删 改 和控制一体化的特点 2 4关系代数 关系代数语言是由一组关系作为运算对象的特定运算所组成的 关系代数运算 传统的集合运算并 交 差 广义笛卡儿积 专门的关系运算选择 投影 连接 除 关系代数的运算对象是关系 运算结果也是关系 关系代数用到的运算符有 集合运算符 专门的关系运算符 比较运算符 逻辑运算符 1 传统的集合运算一个关系从 水平 的方向看就是元组的集合 传统的集合运算就是以元组作为集合中的元素来进行运算的的集合运算 即参加运算的集合都是以元组作为它的元素 传统的集合运算是一个二目运算 定义1 设给定两个关系R和S 若满足 具有相同的度n 且R中第i个属性和S中第j个属性必须来自同一个域 则说关系R和S是相容的 即 关系R和S有相同的度 即有相同的属性个数 且对应的属性的域相同 约定 大写字母表示命名关系和关系的属性 小写字母表示元组 并 Union 关系R和S的并记为R S 结果仍为n度关系 由或属于R或属于S的元组组成 R S t t R t S R S R S 差 Difference 关系R和S的差记为R S 结果仍为n度关系 由属于R而不属于S的元组组成 R S t t R t S R R S S 交 Intersection 关系R和S的并记为R S 结果仍为n度关系 由既属于R又属于S的元组组成 R S t t R t S R S R S R S R R S 广义笛卡儿积 ExtendendCartesianProduct R是一个n度关系 S是一个m度关系 关系R和S的广义笛卡儿积记为R S 其结果是 n m 度的关系 结果中的元组是R中元组和S中元组连成的一串 前n个分量是R中的一个元组 后m个分量是S的一个元组 假定R中有元组 r1 r2 rn S中有元组 s1 s2 sm 则结果中的元组为 r1 r2 rn s1 s2 sm 若R有k1个元组 S有k2个元组 则R S有k1 k2个元组 R S t t tr ts tr R ts S 例 R S R S R S 2 专门的关系运算先介绍几个概念 设关系模式R D1 D2 Dn 的一个关系R t R表示t是关系R的一个元组 t Di 则表示在元组t中相应于属性Di的分量 值 例 t a1 b2 c2 R 则t 2 b2 若D Di1 Di2 Dik 其中Di1 Di2 Dik是 D1 D2 Dn 中的一部分 则D称为属性列或域列 D则表示 D1 D2 Dn 中去掉 Di1 Di2 Dik 各列后剩余的属性列的总体 t D t Di1 t Di2 t Dik 表示元组t在属性列D上诸分量的集合 例 t a1 b2 c2 R D b2 则D a1 c2 连串R为n度关系 S为m度关系 tr r1 r2 rn R ts s1 s2 sm S trts是称为元组的连串 Concatenation 这是一个 n m 列的元组 前n个分量为R中的一个n元组 后m个分量是S中的一个m元组 象集给定一个关系R X Z 其中X Z为属性组 定义当t X x时 x在R中的象集 ImageSet 为 Zx t Z t R t X x 表示R中属性组X上值为x的诸元组在Z上分量的集合 象集的计算方法 求关系R中满足t X x条件的元组集合 对求出的元组集合 去掉属于X的分量 一个或几个 a1在R中的象集Ba1 B1 B2 B3 a2在R中的象集Ba2 B2 B3 a3在R中的象集Ba3 B1 B3 例2 4象集举例 R 例2 5设关系R A B C X A C Z B 当t X x a3 c7 时 求x在R中的象集 R Zx t B t R t X1 a3 t X2 c7 b3 例 设有学生 课程关系数据库 如下所示 S D C SC SC 选择 Selection 也称为限制 Restriction 从一个关系中选出所有满足指定条件的元组 即在给定关系中 从水平方向上选取符合给定条件的元组的子集 一般定义为 F R t t R F t True 读作关系R关于公式F的选择运算 表示从R中选择那些满足公式F的元组 F R 中 为选择运算符 F是一个公式 它的取值为 真 或 假 书写时将条件F置于 的右下脚 关系名R写在 之后用 括起来 F由逻辑运算符 连接各比较表达式组成 比较表达式基本形式为X Y X Y是属性名或常量或简单函数 属性名也可以用它的序号来代替 例2 7求计算机系CS的学生 SSD SDEPT CS S SSD SSD 3 CS S 第3列 例2 8求年龄大于或等于20 且是计算机系CS的学生 SSA SSA SAGE 20 SDEPT CS S 或SSD 4 20 3 CS S 第3列 第4列 投影 Projection 从一个关系出发构造其垂直子集的运算 即结果关系由运算分量中的某些列组成 并消去重复的元组 一般定义为 关系R在域列A上的投影 A R t A t R 表示投影运算符 A为R中的属性列 R是运算对象的关系 写在 之后用 括起来 注意 因为投影运算的属性表不一定包含关系的码 经投影运算后 结果中很可能出现重复元组 消除重复元组后所得关系的元组将小于等于原关系的元组数 如果属性列中包含码 则不可能出现重复元组 投影运算后所得关系的元组与原关系一样 投影不仅会取消一些列 也可能取消某些行 SND 例2 9求学生关系S在学生姓名和所在系这两个属性上的投影 SND SNAME SDEPT S 或SND 2 3 S 对学生姓名和所在系属性取投影 SSD 例2 10求有多少个系 查询学生关系中都有哪些系 SSD SDEPT S 或SSD 3 S 连接 Join 也称为 连接从连接的两个关系R和S的笛卡儿积中选取满足给定属性间一定条件的那些元组 要求A和B分别为R和S上度数相等且可比的属性组 连接运算用来连接相互之间有联系的两个关系 被连接的两个关系通常是具有1 n联系的父子关系 所以连接过程一般是由参照关系的外码和被参照关系的主码来控制的 这样的属性通常称为连接属性 一般定义为 关系R在域列A上的投影 R S trts tr R ts S tr A ts B A B 表示连接运算符 为比较运算符 A B是条件表达式 写在连接运算符 的下方 含义是 从R S的广义笛卡儿积中选取R关系在A属性组上的值与S关系在B属性组上值满足比较运算 的那些元组 条件连接运算又可定义如下 R S A k B R S 这里 k表示关系R的度含义是 从R S的广义笛卡儿积中选取满足如下条件的元组的集合 这些元组第A个分量 对应于R的第A个分量 和第k B个分量 对应于S的第B个分量 满足关系运算 的那些元组 A B 当 是 时 那么R S运算为等值连接 A B R S trts tr R ts S tr A ts B A B 当 是 时 那么R S运算为小于连接 A B 当 是 时 那么R S运算为大于连接 A B R S R S 连接运算 自然连接 NaturalJoin 是一种特殊而常用的连接 自然连接只当两个关系含有公共属性时才能进行 自然连接是构造新关系的有效方法 是关系代数中常用的一种运算 关系间的联系主要靠自然连接来实现 在查询操作中 当需要的信息分布在一个以上的关系时 常常要用自然连接把所有关系连接起来 若关系R和关系S具有公共属性组B 则自然连接定义为 R S trts B tr R ts S tr A ts B ts B 表示关系S中去掉与R相同的公共属性组 含义是 从两个关系的笛卡儿积中选取公共属性值相等的元组 且在非公共属性和一组公共属性上投影而形成的结果关系 自然连接计算过程计算广义笛卡儿积R S 选择满足条件r Ai s Aj 的所有元组 假设A1 A2 Ak是关系R和S的公共属性组 挑选R S中满足tr A1 ts A1 tr A2 ts A2 tr Ak ts Ak 的那些元组 去掉重复的属性 在R S关系上去掉S关系上的属性A1 A2 Ak R S R S 自然连接运算 比较 等值连接与自然连接 等值连接是在笛卡儿积的基础上选择满足两个关系中给定属性值相等的元组的集合 自然连接是在两个关系的相同属性组上的等值连接 并且自然连接要在结果中把重复的属性去掉 而等值连接则不必 自然连接要求两个关系中相等的分量必须是公共属性组 而等值连接则不需要 外连接如果把舍弃的元组也保存在结果关系中 而在其他属性上填空值 Null 这种连接就叫做外连接 OUTERJOIN 左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接 LEFTOUTERJOIN或LEFTJOIN 右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接 RIGHTOUTERJOIN或RIGHTJOIN 关系R和关系S如下所示 关系R和关系S的外连接 图 b 是关系R和关系S的左外连接 图 c 是关系R和关系S的右外连接 除 Division 一般定义为 设关系R X Y 和S Y Z 其中X Y Z为属性组 R中的Y与S中的Y可以有不同的属性名 但必须出自相同的域 除运算记为R S R S tr X tr R Y S Yx Yx为x在R中的象集 x tr X R S的计算方法有 方法一 R中满足下列条件的元组在X属性列上的投影 元组在X上分量值x的象集Yx包含S在Y上投影的集合 属性构成 由关系R中那些不出现在关系S中的属性组成 元组构成 由关系S在Y属性组上投影中出现的所有元组在R中对应的相同的值组成 方法二 由定义计算其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省寻甸回族彝族自治县2025年上半年事业单位公开遴选试题含答案分析
- 拎包入住房屋租赁合同
- 河北省肃宁县2025年上半年公开招聘城市协管员试题含答案分析
- 2025标牌规范建设项目安全管理培训合同
- 2025年度琴行教师学生安全教育与事故处理合同
- 2025版石灰矿产品买卖及资源开发合同
- 2025车库租赁合同附带车位使用权及车位改造工程
- 2025房产抵押贷款合同范本:抵押物价值评估与处置程序
- 2025版外墙真石漆施工与施工图纸规范合同
- 海南省文昌市2025年上半年公开招聘辅警试题含答案分析
- 2025云南省腾冲市边防办招聘边境专职联防员(10人)笔试备考试题及答案解析
- 湘教版七年级地理上册同步课时教学设计
- 涂装安全知识培训课件
- GB/T 20833.2-2025旋转电机绕组绝缘第2部分:定子绕组绝缘在线局部放电测量
- 2025人教版(PEP)2024一年级上册英语教学计划
- 2025年高考甘肃卷地理试题解读及答案详解讲评(课件)
- 幼儿园保安培训课件
- 金融专业面试实战经验分享:金融行业常见面试题解答
- 建筑工程预算编制实操案例解析
- 凉山州人力资源和社会保障局“千名英才·智汇凉山”行动2025年第一批引才(609人)模拟试卷含答案解析
- 税务合规指引解读
评论
0/150
提交评论