已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章关系数据库 本章内容 关系代数 2 2 关系演算 2 3 1 1 1 1 关系数据模型由IBM的研究员E F Codd博士于1970年首先提出 该模型有严格的数学理论基础 抽象级别比较高 而且数据结构简单清晰 便于理解和使用 关系数据库是建立在关系数据模型基础上的 它借助于集合代数来处理数据库中的数据 目前广泛使用并大受欢迎的关系数据库管理系统软件 如Oracle Access DB2 SQLServer Sybase等也都建立在关系数据模型基础之上 2 1关系模型的基本概念 关系数据模型是以集合论中的关系概念为基础 即实体和实体间联系均由关系来表示 关系模型中的主要内容 关系模型的基本术语关系模型的定义形式关系的性质关系的键关系模型的完整性 2 1 1关系模型的基本术语 关系关系是一个属性数目相同的元组的集合 即一个关系就是一张二维表 每个关系都有一个关系名 关系S1 R D1 D2 Dn 关系的名字 n是关系的目或度 元数和基数关系中属性的个数称为元数 元组的个数称为基数 分量元组中的每一个属性值 称为该元组的分量 注意 表中的属性名不能相同 任意两行 元组 也不能相同 关系的实例给定关系中元组的集合称为该关系的实例 属性二维表中垂直方向的列称为属性 元组元组是用来标识实体集中的一个实体 二维表中水平方向的行 除了关系的标题栏外 称为元组 2 1 2关系模型的定义形式 域域是一组具有相同数据类型值的集合 又称为值域 域中数据的个数称为域的基数 例2 1 D1 A B C D D1为域名 基数为4 例2 2 D 数据结构 操作系统 数据库原理 是课程表C中 课程名称 属性的取值范围 即 课程名称 属性域 整数 实数和字符串的集合都是域 Di i 1 2 n 为有限集 Di的基数用mi i 1 2 n表示 则笛卡儿积D1 D2 Dn的基数M为所有域的基数的累乘之积 即 笛卡儿积给定一组域 D1 D2 Dn n表示域的个数 则D1 D2 Dn的笛卡儿积如下 D1 D2 Dn d1 d2 dn di Di i 1 2 n 每一个元素 d1 d2 dn 中的每一个值di叫做一个分量 di Di每一个元素 d1 d2 dn 叫做一个n元组 简称元组 笛卡尔积实际是一个二维表 例2 3 D1 身份 教师 学生 D2 性别 男 女 D3 学历 研究生 本科生 专科生 则D1 D2 D3 教师 男 研究生 教师 男 本科生 教师 男 专科生 教师 女 研究生 教师 女 本科生 教师 女 专科生 学生 男 研究生 学生 男 本科生 学生 男 专科生 学生 女 研究生 学生 女 本科生 学生 女 专科生 分量 教师 学生 男 女 研究生 本科生 专科生 元组 教师 男 研究生 教师 男 本科生 基数 即元组数量为12 笛卡儿积可用二维表的形式表示 如表所示 关系笛卡儿积D D1 D2 Dn的任一子集称为定义在域D1 D2 Dn上的n元关系 简称关系 记为R 可记作 R D D 其中 1 子集D 中的任一元素称为R的一个元组 2 R表示关系的名字 n称为关系的目或度 n目关系必有n个属性 当n 1时 称为单元 目 关系 当n 2时 称为二元 目 关系 当n n时 称为n元关系 关系是笛卡儿积的子集 所以关系是一个二维表 例2 4 例2 3中笛卡儿积的子集 即所有学历为 研究生 的教师构成的集合形成的二维表 称为D1 D2 Dn的一个关系 关系模式关系模式可以形式化地表示为 R U D dom F R为关系名 U为组成该关系的属性名集合 D为属性组U中属性的域 dom为属性向域的映像集合 F为属性间的数据依赖的集合 关系模式是对关系的描述 关系是关系模式在某一时刻的状态或内容 关系模式是静态的 稳定的 而关系是动态的 随时间不断变化的 因为关系操作在不断地更新着数据库表中的数据 数据值域 例2 5 选课关系 SC的关系模式可描述为 SC Sno Cno Score 其中 加下划线表示所有属性为关系中的主关系键 D Sno dom Sno 可定义为长度为6个字符的字符串 D Cno dom Cno 可定义为长度为6个字符的字符串 D Score dom Score 可定义为0 100的整型数 F Sno Cno Score 即成绩完全函数依赖于学号和课程号 属性间数据依赖将在第4章中讨论 关系模式是关系的框架 是对关系结构的描述 2 1 3关系的性质 关系中不允许出现相同的元组 关系中元组的顺序 即行序 可以任意 关系中属性无序 即列的顺序可以任意交换 同一属性名下的各个属性值必须来自同一个域 是同一类型的数据 关系中各个属性必须有不同的名字 而不同的属性可来自同一个域 关系不允许在表中嵌套表 关系是一种规范化了的二维表中行的集合 候选键 学生关系 中的学号能惟一标识每一个学生 选课关系 中 只有属性的组合 学号 课程号 才能惟一地区分每一条选课记录能惟一标识关系中元组的一个属性或属性集 称为候选键 CandidateKey 候选键 候选键 惟一性 最小性 2 1 4关系的键 主关系键从多个候选键中选择一个作为查询 插入或删除元组的操作变量 被选用的候选键称为主关系键 每个关系必定有且仅有一个主关系键 学号 姓名 以学号作为数据操作的依据 以姓名作为数据操作的依据 主键主码关系键关键字 主关系键具有特性 唯一性 非冗余性 有效性 主属性 包含在主关系键中的各个属性称为主属性非码属性 未包含在任何一个候选关键字中的属性称为非码属性 全码 所有属性的组合是关系的候选键 例2 6 假设有教师授课关系TCS 分别有3个属性 教师号 Tno 课程号 Cno 和学生学号 Sno 一个教师可以讲授多门课程 一门课程可以由多个教师讲授 同样 一个学生可以选修多门课程 一门课程可以被多个学生选修 在这种情况下 Tno Cno Sno三者之间是多对多关系 则属性集 Tno Cno Sno 是关系TCS的全码 Tno Cno Sno都是主属性 外部关系键 被参照关系的主码和参照关系的外码必须定义在同一个域上 主关系键 主属性 外部关系键 非码属性 完整性约束 实体完整性 参照完整性 用户自定义完整性 必须满足 体现具体领域中的语义约束 2 1 5关系模型的完整性 实体完整性主关系键的值不能为空或部分为空例2 7 设有学生 课程和选课3个关系 关系和选定主码如下 1 学生 学号 姓名 性别 年龄 籍贯 专业号 主关系键为学号 2 课程 课程号 课程名 课时 开课学期 课程性质 主关系键为课程号 3 选课 学号 课程号 成绩 主关系键为 学号 课程号 学生关系中 学号的值不能为空 选课关系中 主关系键为 学号 课程号 所以学号和课程号的值不能同时为空 也不能部分为空 参照完整性若属性 或属性集 F是参照关系R的外部关系键 它与被参照关系S的主关系键K相对应 则对于R中的每个元组在F上的值必须等于S中某个元组的主关键字值或者取空值 参照完整性规则用来定义外部关系键与主关系键之间的引用规则 该规则的实质是不允许引用不存在的实体 例2 8 学生关系和部门关系如下所示 其中主关系键用下划线表示 学生 学号 姓名 性别 年龄 籍贯 部门号 部门 部门号 部门名称 学生关系引用了部门关系的主关系键部门号 学生关系中的某个属性的取值需要参照部门关系的属性取值 学生关系中每个元组的部门号属性只能取下面两类值 1 空值 表示该学生尚未安排部门 2 非空值 该值必须是部门关系中某个元组的部门号值 表示学生不可能分配到一个不存在的部门中 即被参照的部门关系中一定存在一个元组 其主关系键值等于参照关系 学生关系 中的外部关系键值 用户自定义完整性针对某一具体关系数据库的约束条件反映某一具体应用所涉及的数据必须满足的语义要求 例如 学生关系S中 Sn不能为空 选课关系SC中定义Score在0 100之间 关系操作 关系代数 关系演算 2 2关系代数 用对关系的运算来表达查询要求 用谓词来表达查询要求 元组关系演算 域关系演算 传统的集合运算 专门的关系运算 关系代数是一种抽象的查询语言关系代数的运算对象与运算结果都是关系关系代数运算符 集合运算符 关系运算符 比较运算符 逻辑运算符 p40 与或非 关系代数的运算按运算符的不同主要分为两类 传统的集合运算 把关系看成元组的集合 以元组作为集合中元素来进行运算 其运算是从关系的 水平 方向即行的角度进行的 包括并 差 交和笛卡尔积等运算 专门的关系运算 不仅涉及行运算 也涉及列运算 这种运算是为数据库的应用而引进的特殊运算 包括选取 投影 连接和除法等运算 2 2 1传统的集合运算 并设有两个相容可并的关系R与S 则二者的并由属于R或S的元组组成 其结果与R或S仍是相容可并的 可记作 R S t t R t S 差设有两关系R与S 则关系R与关系S的差是由属于R而不属于S的元组组成的一个新关系 可记作 R S t t R t S 交两个R和S的交 是由既属于R又属于S的所有元组组成的一个新关系 可记作 R S t t R t S 例 2 10 关系R S 关系R S 关系R S 乘积两个分别为m目和n目的关系R和S的广义笛卡儿积是一个 m n 列的元组的集合 若R有k1个元组 S有k2个元组 则关系R和关系S的广义笛卡儿积有k1 k2个元组 可记作 R S t t tm R tn S 例2 13 关系R S 2 2 2专门的关系运算 专门的关系运算可同时从行和列的角度进行关系运算 这种运算是为数据库的应用而引进的特殊运算 选择选择又称为限制 是一个单目运算符 即对一个关系进行运算 F R t t R F t True F为选取的条件 例2 15 查询年龄在18到20岁江苏籍的所有女生 BP 江苏 age 18 age 20 SEX 女 S 投影投影运算是从关系R中选择指定属性列组成新的关系 可记作 A R t A t R 例2 16 查询学生的姓名和籍贯 即求学生关系S在Sn和BP两个属性上的投影 Sn BP S 或 1 6 S 投影 选择 例2 17 查询教师表中所有教师的姓名 表示为 Tn T 或 2 T 例2 18 查询教师表中所有男教师的姓名和职称 表示为 Tn prof Sex 男 T 例2 19 查询授课表中的所有课程号 表示为 Cno SC 投影结果如图2 8所示 图2 8投影结果 嵌套使用 连接连接运算 连接也称为 连接 是从两个关系的笛卡儿积中选取满足连接条件的元组 可记作 RS tr ts tr R tr S tr A ts B 自然连接自然连接是一种特殊的等值连接 它是在广义笛卡儿积R S中选取同名属性中符合相等条件的元组 再进行投影 删除重复的同名属性 组成新的关系 等值连接与自然连接的区别和联系自然连接是一种特殊的等值连接 等值连接中不要求相等属性值的属性名相同 而自然连接要求相等属性值的属性名必须相同 即两关系只有在同名属性才能进行自然连接 等值连接不去掉重复属性 而自然连接去掉重复属性 例2 20 关系R关系S图2 9连接运算举例 小于接接 C D 等值连接 C D 等值连接 R X S X 自然连接 除法R S tr X tr R y S Yx 除法运算同时从行和列的角度进行运算 适合于包含 全部 之类的短语的查询 Yx为x在R中的象集 x tr X 例2 21查询选修 150101 和 150102 课程 并且成绩都为60的学生的学号 查询条件形成的关系K Cno Score Cno 150101 Score 60 Cno 150102 Score 60 SC Cno Score K SC K 所要列选的表 2 2 3关系代数运算的应用举例 输出为女生元组 输出为多个学号属性值 自然连接 信电所有学生做为象集 2 3关系演算 关系代数是过程化语言 怎样做关系演算是非过程化的语言 要做什么 而将怎样做的问题交给系统去解决 2 3 1元组关系演算语言ALPHA语言QUEL语言 关系演算 元组关系演算 域关系演算 ALPHA QUEL QBE 2 3 1元组关系演算 ALPHA语言基本格式操作语句工作空间名 定额 表达式1 操作条件 DOWN UP表达式2 1 操作语句 GET PUT HOLD UPDATE DELETE DROP 2 工作空间是内存空间 用W表示 也可以用别的字母表示 3 定额规定检索的元组个数 4 表达式1指定语句的操作对象 表示为 关系名 关系名 属性名 元组变量 属性名 集函数 5 操作条件表示只有满足此条件的元组才能进行操作 6 DOWN UP表达式2用于指定排序方式 简单检索格式 GETW S W为工作空间名 注意 查询结果自动消去重复行 限定的检索简单的限定检索格式 GETW S 查询的条件元组变量的限定检索格式 RANGE关系名元组变量GETW 元组变量 属性 查询的条件 1 检索操作 GET语句 用一阶逻辑进行多关系限定检索 GETW S 一阶逻辑表达式 带排序的检索GETW S 查询的条件DOWN UP排序依据 带定额的检索GETW 定额 S 条件 集函数GETW 集函数 条件 ALPHA常用的集函数及其功能 2更新操作 修改HOLDW S 条件 读数据MOVE修改值TO元组的属性修改UPDATEW送回 修改数据而读取元组时必须使用HOLD语句 HOLD语句是带并发控制的GET语句 如果修改操作涉及到两个关系 就要执行两次HOLD MOVE UPDATE操作序列 插入MOVE插入值TO建立新元组建立新元组PUTW 关系 写数据 PUT语句只对一个关系操作 也就是说表达式必须为单个关系名 如果插入操作涉及多个关系 必须执行多次PUT操作 删除HOLDW S 条件读数据DELETEW删除 为了保证参照完整性 删除被参照关系中的元组时 相应地要删除参照关系中的元组 一般可先删除参照关系中的元组 再删除被参照关系中的元组 2 3 2域关系演算 域关系演算以元组变量的分量 域变量 作为谓词变元的基本对象QBE操作的表格形式 关系名 属性1 属性n 操作命令 属性值或查询条件 属性值或查询条件 P 打印或显示 U 修改 I 插入 D 删除 注 棕色字体为用户操作蓝色字体为系统操作 QBE语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网江西省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题含答案详解(新)
- 2026秋季国家管网集团建设项目管理公司高校毕业生招聘考试备考试题(浓缩500题)附参考答案详解(突破训练)
- 2026秋季国家管网集团华中公司高校毕业生招聘笔试参考题库(浓缩500题)附参考答案详解(巩固)
- 2026国网辽宁省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题附答案详解(考试直接用)
- 2026国网四川省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题完整答案详解
- 2026国网甘肃省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题附答案详解(精练)
- 2026广西北部湾投资集团有限公司高校毕业生校园招聘考试参考试题(浓缩500题)及答案详解【名师系列】
- 2026国家管网集团北方管道公司秋季高校毕业生招聘考试备考试题(浓缩500题)及答案详解(各地真题)
- 2025国网江苏省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题及答案详解(名校卷)
- 2026年鸡西市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(精练)
- 应急第一响应人理论考试试卷(含答案)
- 人教版数学一年级上册 前后上下左右专项练习题(试题)
- 考察探究皮影戏进校园综合实践活动方案
- 股票入门基础知识培训
- 学校第三方协议书的范本
- 福建省既有建筑地基基础检测技术规程
- FlowmasterV7中文技术手册
- 变电站电气安全工作规程
- (完整版)冠词练习题及答案
- 《治安管理处罚法》课件
- 法院执行培训课件
评论
0/150
提交评论