版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关系运算和完整性约束 第三章 第三章概述 1 在用户看来,一个关系就是一张二维表 2 关系模型可以理解为二维表格的定义 3关系模型的数据操作关系模型的数据操作:主要有选择(Select)、投影 (Project)、连接 (Join)、除(Division)、并(Union)、 交(Intersection)、差(Difference),查询(Query),增 加(Insert)、删除(Delete)、修改(Update) 等更新操作。 3 关系操作的表示方式:关系操作的表示方式:代数方式、逻辑方式以及 结合两者特点的方式。 第三章概述 4、关系语言可以分三类 关系代数语言例如 ISBL 元组关
2、系演算语言例如 ALPHA, QUEL 关系数据语言 关系演算语言 域关系演算语言例如 QBE 具有关系代数和关系演算双重特点的语言例如SQL 5、完整性约束:、完整性约束:关系模型允许定义三类完整性约束, 实体完整性; 参照完整性; 用户定义的完整性。 返回 3.1 关系的定义 定义定义3.1 给定一组集合 D1,D2, ,Dn,且这些集合可以相 同,定义D1,D2,Dn的笛卡尔积(Cartesian Product)为: D1D2Dn= (d1,d2,dn)|diDi,i= l ,2 , ,n 其中的每一个元素(d1,d2,dn)叫做一个n元组(n-tuple), 元素中第i个值di叫做第
3、i个分量。 3.1 关系的定义 注意:关系和笛卡尔(数学中)的区别:关系是笛卡尔积的 有限子集。无限关系在数据库系统中是无意义的。 由于笛卡尔积不满足交换律,即 (d1,d2 ,dn) (d1,d2 ,dn) 但关系满足交换律,即 (d1,d2 ,dn)=(d1,d2 ,dn) 3.1 关系的定义 定义定义3.2 笛卡尔积D1D2Dn的任一子集称为 D1 ,D2,Dn上的一个关系。 集合D1,D2,Dn是关系中元组的取值范围,称为 关系的域(Domain),n称为关系的度(Degree)。度 为n的关系称为n元关系。例如n=1(n=2)的关系称为 一元(二元)关系。 返回 关系的性质 每一列中
4、的值是同类型的数据,都来自同一个域。不同的 列可以有相同的域,每一列称为一个属性,用属性名标识。 元组中的每个分量是不可分的数据项 关系中的各个元组是不同的,即不允许有重复的元组。 见下页例子说明。 元组的次序是无关紧要的,列的次序也是无关的。 3.2 关系的性质 表3-2 职工信息表 姓名职业兼职 李宏行政辅导员 张敏教师辅导员 刘丽工人行政 表3-3教师关系表(a) 表3-4教师关系表(b) 表3-5教师关系表(c) 姓名性别姓名性别性别姓名 王平男李丽女男王平 李丽女王平男女李丽 返回 3.3 关系的码 关系的码码是关系的一个重要概念,关系数据库要求关系中的 每一个元组具有唯一性唯一性。
5、 关键码关键码:在关系模式中,必定存在一个属性(属性组)可以 唯一确定关系中别的属性的值。这个属性(属性组)就是关 系模式的关键码。 关键码根据细节不同通常分为如下几类: 超码(超码(Super Key) 在关系中能唯一标识元组的属性集称为关系的超码。 候选码(候选码(Candidate Key) 不包含多余属性的超码称为候选码。对于某个关系,可 能存在多个候选码。 3.3 关系的码 4主码主码(Primary Key) 从候选码中任选一个作为现行关键码,则该关键 码称为主码。一个关系的主码只能有一个,主 码一旦确定通常不变。 5外码(Foreign Key) 不是当前关系的候选码,却是另一个
6、关系的候选 码。关系之间的连接通常利用外码实现。 返回 表 1 学生表格 学号姓名姓名兼职 返回 表 2 课程表 课程号课程名学分 表 3 选课表格 学号课程号成绩 3.4 数据的完整性 关系模式关系模式:对一类实体特征的结构性描述,即对关系 的结构性描述,该描述一般包括关系名、属性名、属 性域的类型和长度,属性之间固有的依赖联系等。 若U=A1, A2 , An为关系R的属性集,则关系模式简 记为R(U)或R(A1, A2, , An) 关系模式和关系的区别和联系:关系模式和关系的区别和联系:关系模式是表格的定 义,关系是一个具体的表格。 关系数据库也有型和值之分 3.4 完整性规则 在数据
7、库系统中,为了维护数据库中数据与现实世界 的一致性,计算机和现实世界的数据之间必须遵循一 定的约束规则,关系模型定义三类完整性:实体完整 性,参照完整性和用户定义完整性。 实体完整性规则(Entity Integrity):关系中每一个元组 的主码(主键)属性不能重复,并且不能取空值。 空值:当前“不知道”的值,它既不是0也不是空字 符,用NULL表示。 参照完整性规则参照完整性规则(Reference Integrity):设属性组A是关系R的 外键且A又是关系S的主键,则对于R中的每一个元组在属性 A上的值必须为:空值或者等于S中某一个元组的主键值。 谓参照,就是关系R与另一关系S之间的联
8、系,这种联系是通 过其相同属性来建立的。参照完整性规则给出 了关系之间建 立联系的约束条件。 实体完整性和参照完整性都是关系模型必须满足的完整性 约束条件,这些约束条件由RDBMS自动支持。 在实践中,能否取空值取决于生活的理解 3.4 完整性规则 3、用户定义的完整性规则用户定义的完整性规则(User-defined Integrity): 用户根据具体应用而对数据附加的约束条件。 说明:现在的商品化RDBMS提供了定义和检查 这类完整性约束的机制。 3.4 完整性规则 3.4 完整性约束类型 完整性控制是围绕完整性约束条件进行的,根 据完整性约束条件的作用对象和状态,可将完 整性约束分为以
9、下类型: 静态属性约束:对属性取值的说明。主要包括: 数据类型、格式、取值范围、空值的约束 静态元组约束:规定组成一个元组的各列的值 之间的约束关系。 静态关系约束:关系的各元组之间或者若干关 系之间常常存在各种联系或者约束。实体完整 性、参照完整性、函数依赖和统计约束。 3.4 完整性约束类型 动态属性约束:修改定义或者修改属性时应满 足的约束条件。 动态元组约束:修改某个元组的值时需要参照 其旧值,并且新旧值之间需要满足某种约束条 件。 动态关系约束:关系变化前后状态上的限制条 件。例如:事务一致性约束条件。 3.4 完整性控制机制 一个完善的完整性控制机制应该具有以下三个方 面的功能:
10、定义功能:定义功能:为用户提供定义完整性约束条件的命令或工 具。 检查功能:检查功能:能够自动检查用户发出的操作请求是否违背 了完整性约束条件。 违约处理:违约处理:当发现用户的操作请求违背了完整性约束条 件时,能够自动采取一定的措施确保数据的完整性不遭 破坏。 3.4 完整性控制机制 由于实体完整性的定义和控制比较容易实现,因 此,下面主要讨论实现参照完整性需要考虑的几 个问题。 外码空值问题 被参照关系中删除元组问题 在参照关系中插入元组问题 元组中主码的修改问题 综上所述,DBMS的参照完整性机制,在提供定 义主码和外码机制的同时,还需要提供不同的删 除、插入和修改策略供用户选择。至于选
11、择哪种 策略,一般根据实际需求确定。 返回 3.5 关系代数 3.5.1 传统的集合运算 3.5.2 专门的关系运算 返回 集 合 运 算 符 - 并 差 交 广义笛卡 尔积 比 较 运 算 符 大于 大于等于 小于 小于等于 等于 不等于 运算符含义运算符含义 关系代数运算符关系代数运算符 1 1、并运算:、并运算:关系R和S的并并是一个新的关系,记为 RS = t | tRtS,它由属于R或属于S的所有 元组构成。 2 2、差运算、差运算:关系R和S的差差是一个新的关系,记为 R-S=t | tRtS,它由属于R但不属于S的元组 构成。 3 3、交运算、交运算:关系R和S的交交是一个新的关
12、系,记为 RS= t | tRtS ,它由属于R同时也属于S的 元组构成。 3.5.1 传统的集合运算 并 ABC a1b1c1 a1b2c2 a2b2c1 ABC a1b1c1 a1b2c2 a1b3c2 a2b2c1 ABC a1b2c2 a1b3c2 a2b2c1 R S RS 差 ABC a1b1c1 a1b2c2 a2b2c1 ABC a1b1c1 ABC a1b2c2 a1b3c2 a2b2c1 R S R-S 交 ABC a1b1c1 a1b2c2 a2b2c1 ABC a1b2c2 a2b2c1 ABC a1b2c2 a1b3c2 a2b2c1 R S R S 5、广义笛卡尔积
13、 、广义笛卡尔积:设R为m元关系,S为n元关系,则R与S的 广义笛卡尔积RS是一个(m+n)元关系,其中的每个元组的前 m个分量是R中的一个元组,后n个分量是S中的一个元组 RS=(a1, a2, , am, b1, b2, , bn) | (a1, a2, , am)R(b1, b2, , bn)S RS = tr ts |tr R tsS 说明: (1)若R有k1个元组,S为k2元关系,则RS有(k1k2)个元组,即 广义笛卡尔积 (2)并、差、笛卡儿积、投影和选择常称为关系代数的五个基本 元组(操作),其余则成为关系代数的组合运算。 返回 3.5.1 传统的集合运算 广义笛卡尔积 ABC
14、 a1 b1 c1 a1 b2 c2 a2 b2 c1 ABC a1b1c1 a1b1c1 a1b1c1 a1b2c2 a1b2c2 a1b2c2 a2b2c1 a2b2c1 a2b2c1 ABC a1 b2 c2 a1 b3 c2 a2 b2 c1 R S R S ABC a1b2c2 a1b3c2 a2b2c1 a1b2c2 a1b3c2 a2b2c1 a1b2c2 a1b3c2 a2b2c1 3.5.2 专门的关系运算 选择运算选择运算(Select):从关系R中选取满足给定条件 的元组构成一个新的关系。选择运算记作: F(R) = t | tRF(t) 其中是选择运算符,F是限定条件的
15、布尔表达式。 由逻辑运算符、和等连接各个算术表达式组成。 算术表达式的基本形式为XY,其中X,Y可以是属性 名,常量或简单函数,算术比较运算符, ,, 。 选择 o 选择运算是从行的角度进行的运算 o 举例 设有一个学生-课程数据库,包括学生关系 Student、课程关系Course和选修关系SC。 学学 号号 Sno 姓姓 名名 Sname 性性 别别 Ssex 年年 龄龄 Sage 所所 在在 系系 Sdept 11001李勇李勇男男20CS 11002刘晨刘晨女女19IS 11003王敏王敏女女18MA 11004张立张立男男19IS (a) Student (b) Course 课程号
16、课程号课程名课程名先行课先行课学分学分 CnoCnameCpnoCcredit 1数据库数据库54 2数学数学 2 3信息系统信息系统14 4操作系统操作系统63 5数据结构数据结构74 6数据处理数据处理 2 7PASCAL语言语言64 (c) SC 学学 号号课课 程程 号号成成 绩绩 SnoCnoGrade 11001192 11001285 11001388 11002290 11002380 选择 例 查询信息系(IS系)全体学生 Sdept = IS (Student) 或 5 =IS (Student) 结果: SnoSnameSsexSageSdept 11002刘晨刘晨女女1
17、9IS 11004张立张立男男19IS 选择 例 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student) 结果: SnoSnameSsexSageSdept 11002刘晨刘晨女女19IS 11003王敏王敏女女18MA 11004张立张立男男19IS 投影运算投影运算(Projection):从一个关系R中选取所需 要的列组成一个新关系,投影运算记为: A(R) = (R)= tA | tR 其中是投影运算符,A为关系R属性的子集, tA为R中元组相应于属性集A的分量, i1,i2,ik表示A中属性在关系R中的顺序号。 3.5.2 专门的关系运算 k ii
18、i, 21 投影运算(Projection): 投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而 且还可能取消某些元组(避免重复行) 例3 查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属 性上的投影 Sname,Sdept(Student) 或 2,5(Student) 结果: SnameSdept 李勇李勇CS 刘晨刘晨IS 王敏王敏MA 张立张立IS 投影 例 查询学生关系Student中都有哪些系 Sdept(Student) 结果: Sdept CS IS MA 3.5.2 专门的关系运算 连接运算连接运算(Join):从二个关系的广义
19、笛卡尔积 中选取满足一定连接条件的元组,记为: R S=R.A S.B(RS) R.AS.B 其中 是连接运算符,A、B分别为R、S上 度数相等且可比较的属性集,是算术比较符, R.AS.B是连接条件。 等值连接等值连接:为=时的情况,而其余的连接统 称为非等值连接非等值连接。 自然连接自然连接(Natural join):两个关系进行连接比较的属性 列完全相同的等值连接,且结果关系中没有重复的属性。 即若R和S具有相同的属性组A,则自然连接可记作: 其中集合B是关系R和S属性的并集。 自然连接是同时从行和列的角度进行运算,是 最有用的等值连接。以后若无特殊说明,其连接 均指自然连接。 3.5
20、.2 专门的关系运算 R S=B(R.A=S.A(RS) 连接 一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是同时从行 和列的角度进行运算。 AB R S 连接 o 举例 例 ABC a1b15 a1b26 a2b38 a2b412 BE b13 b27 b310 b32 b52 R S 连接 R S AR.BCS.BE a1b15b27 a1b15b310 a1b26b27 a1b26b310 a2b38b310 CE 连接 等值连接 R S R.B=S.B AR.BCS.BE a1b15b13 a1b26b27 a2b38b310 a2b38b32 连接 自然连接
21、R S ABCE a1b153 a1b267 a2b3810 a2b382 外连接 o 两个表格做自然连接的时候,如果不存在等 值的公共属性,那么元组被丢弃了 o 如果把舍弃的元组也包括在表格内,而把其 他属性上填写空值,成为外连接。 o 只保留左边表格的元组-左外连接 o 只保留右边表格的元组-右外连接 3.5.2 专门的关系运算 除法运算除法运算(Division):设关系R和S的度数分别为n和m(nm0), 那么RS是一个度数为(nm)的关系,它满足下列条件: RS中的每个元组t与S中每个元组u所组成的元组(t,u)必在关 系R中。为叙述方便起见,我们假设S的属性为R中的后m个属 性,则
22、RS的具体计算过程如下: 1、T1,2,n-m(R) 2、W(TS)R (即计算TS中但不在R中的元组) 3、V1,2,n-m(W) 4、RSTV 4)象集Z 给定一个关系R(X,Z),X和Z为属性组。 当tX=x时,x在R中的象集(Images Set)为: Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上 分量的集合。 象集Z ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3 a4b6c6 a2b2c3 a1b2c1 R 在关系在关系R中,中,A可以取四个值可以取四个值a1,a2, a3,a4 a1的象集为的象集为 (b1,c2),(b2,c3),(b2
23、,c1) a2的象集为的象集为 (b3,c7),(b2,c3) a3的象集为的象集为 (b4,c6) a4的象集为的象集为 (b6,c6) 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上投影的集合。 RS = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trX 除 o 2)除操作是同时从行和列角度进行运算 o 3)举例 R S 除 ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3 a4b6c6 a2b2c3 a1b2c1 BCD b1c2d1 b2c1d1 b2c3d2 RS A a1 R S 分析: 在关系在关系R中,中,A可以取四个值可以取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抱团出游安全协议书
- 天津市北辰区第三学区2024-2025学年八年级上学期11月期中数学试卷(含答案)
- 山东省枣庄市台儿庄区2024-2025学年九年级上学期期中考试物理试题
- 辽宁省鞍山市海城市西部集团2024-2025学年七年级上学期11月期中英语试题(含答案)
- 河南省焦作市中站区2024-2025学年七年级上学期期中生物学试题(含答案)
- 《双组分纺粘法非织造布》
- 安徽省安庆市外国语学校2024-2025学年九年级上学期11月期中考试化学试题(含答案)
- 离子风枪行业相关投资计划提议
- 蓝耳病初期的症状
- 高分子合成材料行业相关投资计划提议
- 中国高级经理人心理状况调查报告
- 安全风险分级管控和隐患排查治理情况总结
- 2023年江苏省单招高考数学试卷和答案
- 纺织品检验与贸易专业(群方向)人才培养方案
- 船舶能效管理计划
- 外研版英语五年级上册一起点测试卷及答案
- 2023学年完整公开课版九年级Unit5TheDifficultSearchforAmerican
- 中医学与循证医学
- 《中国民间故事》知识答题参考题库(含答案)
- Pilz安全继电器说明书大全-1
- 文莱专题知识课件
评论
0/150
提交评论