版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 关系模型及关系代数主要内容关系数据模型概述关系数据结构关系的完整性规则关系数据库的数据操作关系模型 关系模型是由以下三部分组成: 关系数据结构 关系,二维表 关系操作 集合操作,高度非过程化 完整性约束 三类约束关系数据结构关系模型建立在集合代数的基础上关系数据结构的基本概念关系关系模式关系数据库关系 域(Domain)2. 笛卡尔积(Cartesian Product)3. 关系(Relation)域(Domain)域是一组具有相同数据类型的值的集合:整数实数介于某个取值范围的整数指定长度的字符串集合是,否介于某个取值范围的日期新一代数据库数据的类型则更复杂笛卡尔积(Cartesia
2、n Product)给定一组集合D1,D2,,Dn, 则称 D1D2Dn=(d1,d2,dn)/diDi, i=1,2,n 为这组集合的笛卡尔积例:D1=a1,a2 D2=b1,b2,b3 D1D2=(a1,b1), (a1,b2), (a1,b3), (a2,b1), (a2,b2), (a2,b3)所有域的所有取值的一个组合不能重复笛卡尔积(续)例 给出三个域: D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏则D1,D2,D3的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇),(张清玫,
3、计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) 笛卡尔积(续)元组(Tuple)笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组。 分量(Component)笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。 笛卡尔积(续)基数(Cardinal number)若Di(i1,2,n)为有限集,其
4、基数为mi(i1,2,n),则D1D2Dn的基数M为:在上例中,基数:22312,即D1D2D3共有22312个元组笛卡尔积(续)笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表 关系的数学描述 设以D1,D2,Dn表示关系模型 R(A1,A2,An)的属性域, 则D=D1D2Dn表示该关系中所有可能出现的元组, 关系R通常是笛卡尔积D 的子集. 因此,关系可以描述为:关系模型所有属性域的笛卡尔积的一个子集 n 称为关系的目或度关系(续)注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。由于笛卡尔积
5、不满足交换律,即 (d1,d2,dn )(d2,d1,dn ) 但关系实际满足交换律,即(d1,d2 ,di ,dj ,dn)=(d1,d2 ,dj,di ,dn) (i,j = 1,2,n) 解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性关系(续)例 在表2.1 的笛卡尔积中取出有实际意义的元组 来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设:导师与专业:1:1,导师与研究生:1:n于是:SAP关系可以包含三个元组 (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (刘逸,信息专业,王敏) 关系模型术语(一)关系(R
6、elation):就是含有有限个不同的行的二维表元组(Tuple):就是二维表中的一行,即表中的记录 属性(Attribute):就是为二维表中的一列起的一个名字,用类型和值表征 域(Domain):每个属性取值的变化范围关系模型术语(二)键(Key,又称码): 能够唯一标识元组的属性或属性组,称为关系模式的键。 例如: 学生关系中的“学号”,课程关系中的“课程号”等候选键(Candidate Key):如果一个属性集能唯一标识元组,且又不含有多余属性,那么这个属性集称为候选键。主键(Primary Key):关系模式中用户正在使用的候选键关系的性质同一个列中的分量定是来自同一个域不同列可来自
7、同一个域列、行的顺序可以交换任意两个元组不能完全相同每一个分量必须取原子值,即分量值不可再分,也不能有多值三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据关系模式 关系模式是对关系的描述 它可以形式化为 R(U,D,dom,F) 通常简记为 R(U )或 R= (A1, A2, , An ) , 其中A1, A2, , An 为属性名关系模式是关系数据库的型,是静态、稳定的;而动态、变化的关系的具体值由对应的二维表来表示。关系模式和关系往往统称为关系关系数据库关系数据库是由多个关系模式组
8、成一个现实对象的相关信息被分成若干部分,每个关系模式描述其中一部分信息关系数据库的值是这些关系模式在某一时刻对应的关系的集合,即关系数据库关系数据库的型与值关系数据库也有型和值之分:关系数据库的型称为关系数据库模式,是对关系数据库的描述若干域的定义在这些域上定义的若干关系模式关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库关系模型的完整性 为了维护数据库中数据的正确性和一致性,关系数据库的数据与更新操作必须遵循下列三类完整性规则 : 实体完整性规则(Entity Integrity Rule ) 关系的主属性,即主键的组成不能有空值(null)。如果出现空值,那么主
9、键就无法起到唯一标识元组(实体)的作用。 若所定义的实体的主键为组合属性,如“学生-选课”中(学号,课程号)为主键,则该实体的任一元组中,学号和课程号这两个属性的值均不得为空值,否则就违反了实体完整性要求。引用完整性规则(Reference Integrity Rule) 如果关系 R2的属性中,包含与另一关系R1的主键相对应的属性集合K ,那么K 则称为R2的外键 对R2每个元组在K上的取值只允许有两种可能:空值;等于R1的关系中某个元组的主键值. R1与R2不一定是不同的关系;主键与外键可以不同名,但是定义在同一值域中 以上两类规则是由系统自动支持的,即:在建立关系(表)时,只要指明了主键
10、、外键,系统将自动进行此类完整性检查 引用完整性规则(例子)例1:学生、课程、学生选课之间的多对多联系可以用以下三个关系表示:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,类别,学分)选课(学号,课程号,成绩) 选课关系分别引用了学生关系中的主码“学号”和课程关系的主码“课程号”。因此,选课中出现的“学号”和“课程号”的值必须是学生和课程关系中确实存在的值例2:在关系员工(员工号,姓名,性别,部门号,职务,部门经理)中,“员工号”是主键,“部门经理”表示该员工所在部门经理的员工号,它引用了自身关系“员工号”属性,所以“部门经理”必须是确实存在的员工的员工号 学生学生选课课程 用户
11、定义的完整性规则(User-defined Integrity ) 这是针对某一应用环境的完整性约束条件它反映了某一具体应用所涉及的数据应满足的要求。 系统提供定义和检验这类规则的机制(一般在建立库表的同时进行定义),其目的是用统一的方式由系统来处理它们,不再由应用程序来完成这项工作 例如,课程关系中的“学分”属性取值范围在1-5之间等关系数据库的数据操作关系数据的操作有两个基本特点 一次操作可存取多个元组,而不是像网状数据库系统那样一次操作只能存取一个记录 语言的非过程化特点,即用户只需告诉做什么而无需告诉怎么去做 关系数据库系统中将数据定义、数据操作和数据控制(安全保密及完整性控制等)等功
12、能成功地集成到一个语言之中,有力地增强了系统功能和数据独立性,提高了使用的方便性,简化了程序设计 查询语言( Query Languages ) 查询语言是用户用来从数据库中请求获取信息的语言 查询语言有“过程化” (procedural)与“非过程化” (non-procedural)两类 “纯”的查询语言分成: 关系代数类(Relational Algebra) 元组关系演算类( Tuple Relational Calculus) 域关系演算类( Domain Relational Calculus )“纯”的查询语言为通用商用查询语言提供基础关系代数 关系代数是用对关系的运算来进行查询
13、的方式 关系代数可分为: 传统的集合运算:并、差、交、积运算 专门的关系运算:选择、投影、连接、除运算 传统的集合运算设关系模式相同的关系R和S 关系的并:RS=t/tR或tS 关系的交:RS=t/tR且tS 关系的差:R-S=t/tR且tS 关系的笛卡尔积: R x S = t q | t R and q S关系的差 表示形式为 R-S,定义为 R-S = t | t R and t S 差运算必须在两个相容的关系之间进行R和S必须有相同的元数R和S属性的域相同Set Difference Operation ExampleRelations R, S :R S:AB121AB23rsAB1
14、1Cartesian-Product Operation表示形式为R x S ,定义为 R x S = t q | t R and q S 前提假定R和S的属性集是非重叠的,即 R S = . 如果R和S属性集有重叠 ,则为了避免混淆,重命名机制必须使用Cartesian-Product Operation-ExampleRelations r, s:r x s:AB12AB11112222CD 1010201010102010EaabbaabbCD10102010Eaabbrs专门的关系运算选择运算:从一个关系中选出所有满足条件的元组 F(R)投影运算:从一个关系属性中选择指定属性,即从一个
15、关系出发构造其垂直子集的运算 A1, A2, ., An(R )条件连接运算:从两个关系的笛卡尔叉积中选取满足条件的元组,形成新关系自然连接(等值连接):当条件连接运算的条件是“两个关系的公共属性值相等”时进行的连接运算选择(SELECT) 选择运算是从指定关系中选取满足给定条件的若干元组组成一个新关系,其形式为: F(R) 其中,F 为条件表达式,是常数、属性名或列号、算术比较符(、=、)及逻辑运算符(、)组成的条件表达式;R为指定的被运算关系名 选择(续)3) 选择运算是从行的角度进行的运算 4) 举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC
16、。选择(续)学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS(a) Student选择(续)(b)Course课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64选择(续)(c)SC学 号课 程 号成 绩SnoCnoGrade9500119295001285950013889500229095002380选择(续)例1 查询信息系(IS系)全体学生 Sdept = IS
17、 (Student)或 5 =IS (Student)结果: SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS选择(续)例2 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student)结果: SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS投影运算(PROJECT) 投影运算是从指定的关系中选取指定的若干属性组成一个新关系,其形式为: A1, A2, ., An(R ) 其中,R为被运算关系名,A为R属性系列(A1,A2,Am) 投影(Projection
18、) 2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)投影(续)举例例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)结果:投影(续)SnameSdept李勇CS刘晨IS王敏MA张立IS投影(续)例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:SdeptCSISMA连接(Join) 1)连接也称为连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S = | tr Rts S
19、trAtsB A和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中,选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。 ABtr ts 连接(续) 3)两类常用连接运算-等值连接(equijoin) 什么是等值连接为“”的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB A=Btr ts 连接(续) 自然连接(Natural join) 什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属
20、性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组B R S = | tr Rts StrB = tsB tr ts连接(续)4)一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 ABRS连接(续)5)举例 例5 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS连接(续) R S AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310CE连接(续) 等值连接 R S R.B=S.BAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32连接(续) 自然连接 R S ABCEa1b153a1b267a2b3810a2b382Division Operation适用于查询中包含了“对所有的”这类短语的查询假设 r 和 s 是分别定义在模式 R和 S上的两个关系,其中R和 S分别表示为R = (A1, , Am, B1, , Bn)S = (B1, , Bn)则运算 r s 的结果是一个关系模式如下的新关系 R S = (A1, , Am)即r s = t | t R-S(r) u s ( tu r ) 除运算用R S表示 Division
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《lizhi植物复习》课件
- 个人商品房认购合同2024年
- 医疗中西比较英语
- 《电视广告的表现》课件
- 脊髓型疼痛治疗方案
- 症状性腹泻治疗方案
- 《复制与可视化操作》课件
- 舒张期心脏造影在冠心病评估中的应用
- 年产xxx移门项目可行性研究报告(项目建议书)
- 年产xxx羊眼灯钩项目投资分析报告
- 产品材质渲染智慧树知到期末考试答案章节答案2024年浙江旅游职业学院
- 2024年广西应急厅事业单位笔试真题
- 国家电网公司变电运维管理规定-第9分册-并联电容器组运维细则
- 2024-2030年酒店项目可行性研究报告
- 2024-2030年中国设计和建造责任险行业市场现状供需分析及市场深度研究发展前景及规划战略投资分析研究报告
- 教育部产学研项目申报书(3篇模板)
- 农贸市场卫生管理核心制度
- DZ/T 0462.3-2023 矿产资源“三率”指标要求 第3部分:铁、锰、铬、钒、钛(正式版)
- 2024年辽宁机电职业技术学院单招职业适应性测试题库汇编
- 2024年大型货车转让协议电子版(二篇)
- 考点32 漫画阅读-2024年小升初语文核心知识点突破练习
评论
0/150
提交评论