




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章关系数据模型 3 1关系数据模型概述 3 2关系数据库的数据结构 3 3从E R模型到关系模型 3 4关系的完整性约束 本章内容 3 5关系代数 1 掌握关系数据模型的基本概念 4 理解关系完整性约束的含义 3 掌握从E R模型到关系模型的转换 学习要求 2 理解关系数据库实现联系的方法 5 熟悉使用关系代数表示查询的方法 3 1关系数据模型概述 关系数据模型是数据模型的一种 关系模型由关系数据结构 关系数据操作和关系完整性约束三个部分组成 3 1 1关系数据结构 3 2节 3 1 2关系数据操作 3 5节 3 1 3关系的完整性约束 3 3节 3 1 1关系数据结构 关系数据模型的数据结构非常单一 在关系模型下 现实世界的实体及实体间的各种联系均用关系来表示 在用户看来 关系模型中数据的逻辑结构就是一张二维表 3 1 2关系数据操作 关系数据操作是采用关系数据语言对关系数据库中的数据进行操作 关系模型中常用的关系操作包括 选择 投影 连接 除 并 交 差等查询操作和增加 删除 修改操作两大部分 查询的表达能力是其中最主要的部分 关系操作采用集合操作方式 即操作的对象和结果都是集合 这种操作方式也称为一次一集合 setatatime 的方式 相应地 非关系数据模型的数据操作方式则为一次一记录 recordatatime 的方式 3 1 2关系数据操作 早期 关系操作能力通常是用代数方式或逻辑方式来表示 分别称为关系代数和关系演算 关系代数是用对关系的运算来表达查询要求的方式 关系演算是用谓词来表达查询要求的方式 另外还有一种介于关系代数和关系演算之间的语言SQL structuredquerylanguage 结构化查询语言 SQL不仅具有丰富的查询功能 而且具有数据定义和数据控制功能 是集查询 DDL 数据定义语言 DML 数据操纵语言 和DCL 数据控制语言 于一体的关系数据语言 它充分体现了关系数据语言的特点和优点 是关系数据库的标准语言 3 1 2关系数据操作 3 1 3关系的完整性约束 完整性约束是一组规则 用以限定符合数据模型的数据库状态和状态的变化 以保证数据的正确 有效和相容 关系模型提供了丰富的完整性控制机制 允许定义三类完整性 实体完整性 参照完整性和用户定义的完整性 其中 实体完整性和参照完整性是关系模型必须满足的完整性约束条件 应该由关系系统自动支持 称为是通用的完整性约束 用户自定义的完整性约束称为是专用完整性约束 3 1 3关系的完整性约束 3 2关系数据库的结构 关系数据库是采用关系模型作为组织方式构建的数据库 在用户观点下 关系就是一张二维表 由行和列组成 关系模型的数据结构 3 2关系数据库的结构 3 2 1基本概念3 2 2码 3 2 1基本概念 1 关系 Relation 一个关系对应于通常说的一张表 2 元组 Tuple 表中的一行即为一个元组 3 属性 Attribute 表中的一列即为一个属性 给每一个属性起一个名称即属性名 4 域 Domain 属性的取值范围 如属性系名的域是学校所有系名的集合 3 2关系数据库的结构 5 分量元组中的一个属性值 如上表中的王小明 3 2关系数据库的结构 6 关系模式关系模式是对关系的描述 由关系名和关系的属性集合组成 如 学生 学号 姓名 性别 班级名称 在数据库中要区分型和值 在关系数据库中关系模式是型 关系是值 关系是关系模式在某一时刻的状态或内容 关系模式是静态 稳定的 而关系是动态的 在实际当中 人们常把关系模式和关系都称为关系 3 2 2码 码 Key 是表中的属性或者属性组 可以唯一确定一个元组 码又称候选码分类1 超码 SuperKey 能够唯一标识一个元组的属性或属性组 2 候选码 CandidateKey 最小的超码 该属性组能唯一标识一个元组 又不包含多余的属性 3 主码 PrimaryKey 用户可以指定一个候选码为主码 即用户正在使用的候选码为主码 主码又叫主键 3 2 2码 主属性 Primaryattribute 候选码的属性称为主属性 非主属性 Non keyattribute 不包含在任何候选码中的属性称为非主属性或非码属性 候选码 教师编号和身份证号主码 教师编号或身份证号主属性 教师编号 身份证号非主属性 姓名 学历 3 2 2码 在一个关系模式中 可以有多个候选码 但只能有一个主码 例如 1 在关系模式供应商 供应商名称 供应商地址 供应商电话 中 供应商名称是唯一的候选码 也是它的主码 2 关系模式选修 学号 课程号 成绩 中 属性的组合 学号 课程号 是唯一的候选码 也是它的主码 注意 单个学号属性和单个的课程号属性不是码 3 在关系模式教师信息 教师编号 姓名 身份证号 学历 中 有两个候选码 教师编号和身份证号 可以选择其中一个作为主码 3 2 2码 4 外码 ForeignKey 如果一个关系的属性或属性组不是它的码 但却是另一个关系的主码 则该属性或属性组称为该关系的外码 外码是关系数据库实现数据之间联系的方法 3 2关系数据库的结构 术语对比 3 3从E R模型到关系模型 E R模型和关系模型都是现实世界抽象的逻辑表示 不同在于E R模型并不被DBMS直接支持 更适合对现实世界建模 而关模型则是DBMS直接支持的数据模型 由于两种模型采用了类似的设计原理 我们容易将E R模型转换成关系模型 3 3从E R模型到关系模型 将E R模型转换成关系模型的方法 1 每个实体集用一个关系表示 实体集的名字作为关系的名字 实体集的全部属性构成关系的全部属性 实体集的码作为关系的码 2 每个联系集用一个关系表示 联系集名作为关系名 参与联系的各个实体集的码和联系集的属性共同构成关系的属性 关系的码根据联系的类型 按如下方法确定 3 3从E R模型到关系模型 如果联系是一对一的 则每个实体集的码都是关系的码 如果联系是一对多 多对一 的 则 多端 实体集的码组合成关系的码 如果联系是多对多的 则参与联系的所有实体集的码组合成关系的码 3 3从E R模型到关系模型 3 另外 如果两个关系模式具有相同的码 则可以合并它们 以减少重复存放的空间开销 在关系模式中的码 主码用下划线标识 例 将例2 2的概念模型转换为相应的关系模型 3 4关系的完整性约束 关系模型的完整性规则是对关系的某种约束条件 关系模型中有三类完整性约束 实体完整性约束 参照完整性约束和用户定义的完整性约束 其中 实体完整性约束和参照完整性约束是关系模型必须满足的完整性约束条件 由DBMS自动支持 称为是通用的完整性约束 用户自定义的完整性约束称为是专用完整性约束 3 4 1实体完整性约束3 4 2参照完整性约束3 4 3用户自定义完整性约束 3 4 1实体完整性约束 实体完整性规则 基本关系R的所有元组在主码上的值必须唯一 并且在主码的任何属性上不能取空值 空值指 缺失的值 是目前尚不知道的值 通常用NULL表示 如 在教师关系中 某一元组在属性院系名上取空值 表示该教师尚未分配到具体院系 或者是校长 3 4 1实体完整性约束 例 学生 课程 学生与课程之间的多对多联系可以如下3个关系表示 学生 学号 姓名 性别 专业号 年龄 课程 课程号 课程名 学分 选修 学号 课程号 成绩 在学生关系中 主码学号必须是非空唯一的在课程关系中 主码课程号必须是非空唯一的在选修关系中 主码 学号 课程号 中的任何一个属性学号 课程号都必须是非空唯一的 3 4 2参照完整性约束 参照完整性约束是定义外码和主码之间的应用规则 参照完整性规则 若属性 或属性组 F是基本关系R的外码 它与基本关系S的主码KS相对应 即R的外码参照S的主码 则关系R的某个元组在F上的取值或者等于关系S在主码KS上的值 或者为空值 3 4 2参照完整性约束 例1 学生 学号 姓名 性别 专业号 年龄 专业 专业号 专业名 学生关系中属性 专业号 是它的外码 参照专业关系的主码 专业号 按照完整性规则 学生关系中某个元组的 专业号 属性只能取两类值 1 空值 表示尚未给该学生分配专业 2 非空值 这时该值必须是专业关系中的某个元组的 专业号 的值 表示该学生不可能分配到一个不存在的专业中 即被参照关系 专业 中一定存在一个元组 它的主码值等于该参照关系 学生 中的外码值 3 4 2参照完整性约束 例2 学生 学号 姓名 性别 专业号 年龄 课程 课程号 课程名 学分 选修 学号 课程号 成绩 在选修关系中 学号 课程号 是它的主码 单个的 学号 和 课程号 不是它的码 同样 按照按照完整性规则 学号 和 课程号 属性也可以取两类值 空值或者目前关系中已经存在的值 但由于 学号 课程号 是选修关系的主码 按照实体完整性规则 它们均不能取空值 所以 在选修关系中 学号 和 课程号 属性实际上只能取相应被参照关系中已经存在的主码的值 3 4 2参照完整性约束 参照完整性规则中 两个关系 和 可以是同一个关系 例3 学生 学号 姓名 性别 专业号 年龄 班长 关系中 学号 属性是主码 班长 属性表示该学生所在班级的班长的学号 它引用了学生关系 学号 属性 即 班长 必须是确实存在的学生的学号 按照参照完整性规则 班长 属性可以取两类值 1 空值 表示该学生所在的班级尚未选出班长 2 非空值 这时该值必须是本关系中某个元组的学号值 3 4 3用户自定义的完整性约束 任何关系数据库系统都支持实体完整性约束和参照完整性约束 此外 某些数据库所涉及的数据还需要一些特殊的约束条件 这就需要用户自定义完整性规则 如 在教务管理数据库中 我们可以定义如下约束条件 1 学生的成绩必须是0到100之间的整数 2 性别的取值只能是男 女 3 教师和学生的姓名都不能取空值DBMS提供定义和检查用户自定义完整性机制 用户可以根据实际问题定义特定的语义约束条件 系统根据用户的定义进行检查 确保用户定义的语义约束能够满足 3 5关系代数 关系代数是一种抽象的查询语言 是关系数据操纵语言的一种传统表达方式 它是用对关系的运算来表达查询的 任何一种运算都包含运算对象 运算结果和运算符 关系代数的运算对象是关系 运算结果亦为关系 运算符有四类 传统的集合运算符 专门的关系运算符 算术比较运算符和逻辑运算符 3 5关系代数 关系代数运算符 3 5关系代数 其中 1 传统的集合运算是从关系的水平方向即行的角度来进行 2 专门的关系运算不仅涉及行也涉及列 3 比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的 3 5关系代数 3 5 1传统的集合运算3 5 2专门的关系运算3 5 3用关系代数表达式表示查询 3 5 1传统的集合运算 两个关系R和S若进行并 交 差运算 则它们必须是相容的 1 关系R和S必须是同元的 即它们的属性数目必须相同 2 对于所有i R的第i个属性的域必须和S的第i个属性的域相同 1 并 Union 运算设R和S是n元关系 并且两者各对应属性的数据类型也相同 则R和S的并运算定义为 R S t t R t S 其结果仍为n元关系 由属于R或属于S的元组构成 R S 3 5 1传统的集合运算 1 并 Union 运算 3 5 1传统的集合运算 R S R S 2 交 Intersection 运算设R和S是n元关系 并且两者各对应属性的数据类型也相同 则R和S的交运算定义为 R S t t R t S 其结果仍为n元关系 由既属于R又属于S的元组构成 交运算可以通过差运算来重写 R S R R S 3 5 1传统的集合运算 2 交 Intersection 运算 3 5 1传统的集合运算 R S R S 3 差 Difference 运算 3 5 1传统的集合运算 设R和S是n元关系 并且两者各对应属性的数据类型也相同 则R和S的差运算定义为 R S t t R t S 其结果仍为n元关系 由属于R而不属于S的元组构成 R S 3 差 Difference 运算 3 5 1传统的集合运算 R S R S 3 5 1传统的集合运算 并 交 差运算的例子 4 广义的笛卡尔积 ExtendCartesianProduct 定义 两个关系R S 其元分别为n m 则它们的广义笛卡尔积是所有这样的元组集合 元组的前n个分量是R中的一个元组 后m个分量是S中的一个元组 记作 R S的列为R与S的列之和 R S的元组个数为R和S的元组个数的乘积 3 5 1传统的集合运算 4 广义的笛卡尔积 ExtendCartesianProduct 3 5 1传统的集合运算 R S R S 4 广义的笛卡尔积 ExtendCartesianProduct 例 有学生和必修课关系 规定每一名学生必须学习所有必修课程 试通过关系代数计算出该学习关系 学生 学号 姓名 必修课 课号 课程名 学分 学习 学号 姓名 课号 课程名 学分 学习 学生 必修课 3 5 1传统的集合运算 3 5 1传统的集合运算 学习关系 3 5 2专门的关系运算 由于传统的集合运算只是从行的角度进行 而要灵活地实现关系数据库多样的查询操作 必须引入专门的关系运算 在讲专门的关系运算之前 为叙述方便先引入几个概念 1 设关系模式为R A1 A2 An 它的一个关系为R t R表示t是R的一个元组 t Ai 则表示元组t中相应的属性Ai的一个分量 3 5 2专门的关系运算 2 若A Ai1 Ai2 Aik 其中Ai1 Ai2 Aik是A1 A2 An中的一部分 A称为属性列或域 t A t Ai1 t Ai2 t Aik 表示元组t在属性列A上诸分量的集合 3 R为n元关系 S为m元关系 tr R ts S 称为元组的连接 它是一个n m列的元组 前n个分量为R中的一个n元元组 后m个分量为S中的一个m元元组 3 5 2专门的关系运算 4 给定一个关系R X Y X和Y为属性组 定义当t X x时 x在R中的象集 imageset 为 Yx t Y t R t X x 它表示R中的属性组X上 值为x的各元组在Y上分量的集合 3 5 2专门的关系运算 1 选择 Selection 运算选择运算是从指定的关系中选择某些元组形成一个新的关系 被选择的元组是用满足某个逻辑条件来指定的 选择运算表示为 其中 R是关系名 是选择运算符 F是逻辑表达式 通常 在选择条件中使用 进行比较构成简单布尔表达式 并且可以用连词与 或 和非 将多个简单布尔表达式连接起来 选择操作是从行的角度进行的运算 3 5 2专门的关系运算 1 选择 Selection 运算 B b R R B b C c R 3 5 2专门的关系运算 1 选择 Selection 运算 性别 男 学生 3 5 2专门的关系运算 2 投影 Projection 运算投影运算是从指定的关系中选择满足一定条件的属性形成一个新的关系 投影运算分两步产生一个新关系 1 选择指定的属性 形成一个可能含有重复行的表格 2 删除重复行 形成新的关系 投影运算表示为 其中 R是关系名 是投影运算符 A是被投影的属性或属性集 投影操作是从列的角度进行的运算 3 5 2专门的关系运算 2 投影 Projection 运算 R 3 5 2专门的关系运算 2 投影 Projection 运算 姓名 班级 学生 3 5 2专门的关系运算 3 连接 Join 运算连接运算是两个表之间的运算 连接过程一般是由参照关系的外码和被参照关系的主码来控制 从两个关系的广义笛卡儿积中选取给定属性间满足 操作的元组 连接运算表示为 RS tr R ts S tr A ts B 其中 为算术比较符 如 等 A和B分别为关系R和S上可比较的属性 连接操作是从行和列的角度进行的运算 3 5 2专门的关系运算 3 连接 Join 运算 R S R S 3 5 2专门的关系运算 3 连接 Join 运算在连接运算中有两种比较重要的 也是最常用的连接 等值连接与自然连接 等值连接 为 的连接运算 从两个关系R和S的笛卡尔积中选取属性A和B值相等的元组 等值连接运算表示为 RS tr R ts S tr A ts B 3 5 2专门的关系运算 3 连接 Join 运算自然连接 是一种特殊的等值连接 它要求两个关系中进行比较的分量必须是相同的属性 并且在结果中把重复的属性列去掉 即若R和S有相同的属性B 则自然连接可以表示为 RS tr R ts S tr B ts B 自然连接的操作步骤 计算广义笛卡尔积R S 选择满足条件r B s B 的所有元组 去掉重复的属性 3 5 2专门的关系运算 3 连接 Join 运算 R S 3 5 2专门的关系运算 学生 系 例 使用自然连接列出学生和所在系的信息 3 5 2专门的关系运算 例 使用自然连接列出学生和所在系的信息 3 5 2专门的关系运算 4 除 Division 运算给定关系R X Y 和S Y Z 其中X Y Z为属性组 R中的Y与S中的Y可以有不相同的属性名 但必须出自相同的属性域 R S得到一个新的关系P X P是R中满足下列条件的元组在X属性组上的投影 元组在X上分量值x的象集Yx包含S在Y上投影的集合 除运算表示为 R S tr X tr R Y S Yx 其中 Yx为x在R中的象集 除操作是从行和列的角度进行的运算 3 5 2专门的关系运算 4 除 Division 运算 R S 3 5 2专门的关系运算 4 除 Division 运算 在关系R中 A可以取四个值 a1 a2 a3 a4 a1的象集为 b1 c2 b2 c3 b2 c1 a2的象集为 b3 c7 b2 c3 a3的象集为 b4 c6 a4的象集为 b6 c6 S在 B C 上的投影为 b1 c2 b2 c1 b2 c3 只有a1的象集包含了S在 B C 属性组上的投影所以R S a1 3 5 2专门的关系运算 例 设有学生选课关系R 和课程关系S 找出同时选修C101和C104两门课程的学生的学号 R S 确定学号为X 课号为Y计算R中X可以取三个值 S1 S2 S3 S1的像集为 C101 C104 C108 S2的像集为 C101 C104 S3的像集为 C104 C108 S在Y上的投影 Y S C101 C104 S1和S2的象集都包含了S在Y上的投影 所以R S S1 S2 3 5 2专门的关系运算 如何理解除运算 R X Y 是被除关系 S Y 是除关系 商关系由R中某些X属性值构成 其中的任一X值所对应的一组Y值 即Yx 都包含除关系S Y 即 Y S R S运算适用于包含短语 S中全部 所有 的查询或运算 R S tr X tr R Y S Yx Students 学生 SC 选修 Courses 课程 3 5 3用关系代数表达式表示查询 3 5 3用关系代数表达式表示查询 1 列出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机模线样板移型工多工种协调能力考核试卷及答案
- 三方协议书有偿
- 公司汽车维修工职业健康技术规程
- 药芯焊丝成型工数字化转型工具应用考核试卷及答案
- 锚链打包浸漆工协作配合积极性考核试卷及答案
- 铸造造型(芯)工6S现场管理考核试卷及答案
- 公司感光材料涂布工岗位现场作业技术规程
- 公司茶园管理员工艺技术规程
- 福建省泉州第十六中学2026届七年级数学第一学期期末检测试题含解析
- 2025合同模板个人房屋租赁合同示范文本范本
- 《水的组成说课课案》课件
- 理疗课件教学课件
- 起重作业十不吊、八严禁
- 医院消防安全知识培训课件
- 快件处理员(中级)职业技能鉴定考试题库(含答案)
- 《公共政策学(第二版)》 课件 杨宏山 第1-6章 导论、政策系统-政策执行
- 报关委托书格式模板
- 教学研究经验总结
- DZ∕T 0219-2006 滑坡防治工程设计与施工技术规范(正式版)
- 2024年江苏国信新丰海上风力发电有限公司招聘笔试冲刺题(带答案解析)
- GB/T 43795-2024磁性氧化物制成的磁心机械强度测试方法
评论
0/150
提交评论