电子课件数据库基础与应用(微课版 第3版)第2章_第1页
电子课件数据库基础与应用(微课版 第3版)第2章_第2页
电子课件数据库基础与应用(微课版 第3版)第2章_第3页
电子课件数据库基础与应用(微课版 第3版)第2章_第4页
电子课件数据库基础与应用(微课版 第3版)第2章_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 内容可修改电子课件数据库基础与应用(微课版 第3版)第2章第2章 关系模型2.1 关系模型概述1970年 E. F. Codd 博士提出了关系模型关系数据库采用关系模型主流的数据库管理系统都支持关系模型关系模型:数据被组织成集合(关系)连接操作构造数据之间的关系2.1.1 关系模型的数据结构关系模型的数据结构是关系 直观上,关系是一个表2.1.1 关系模型的数据结构形式上,关系是一个集合。集合的元素叫做元组,或记录元组是由简单数据类型构成的复合数据SnoSnameSsexSageSdept2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜

2、凡男19管理2000014葛波女18计算机2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机Student = (,)2.1.1 域域:值的集合有名字等同于高级程序设计语言的数据类型,例如,int, float, String2.1.1 笛卡尔积和元组笛卡尔积是一种集合运算例如:S = 1, 2, 3, T = a, b S T = (1, a), (2, a), (3, a), (1, b), (2, b), (3, b) 元组一般是笛卡尔积运算得到的集合的元素2000012王林男19计算机例如:

3、元组域的笛卡尔积:String String String int String例如:元组(1, a)是S T 的元素2.1.1 关系关系是笛卡尔积运算得到的集合的子集,即元组的集合。StringStringStringIntString2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机Student = (,)String String String i

4、nt String2.1.1 关系模式关系模式描述了关系来自于哪个笛卡尔积 例如,描述Student 关系来自以下的笛卡尔积:SnoSnameSsexSageSdept2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机Student (Sno, Sname , Ssex , Sage, Sdept )关系模式:关系模式的名字属性String String String int String为了区分参与笛卡尔积运算的同名域,引入属性的概念:有名字对应一个域2.1.1 候选码、主码为了区分同一个关系的不

5、同元组,引入候选码的概念。候选码是一组属性,有以下的特点:唯一性:不同的元组在这组属性上的取值不同最小性:去掉任何一个属性后,不再具有唯一性SnoSnameSsexSageSdept2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机SnoCnoGrade20000121156802000113115689200025611569320000141156882000256113777200027811378920000121137702000012102480200001410248820000141

6、13690200001211367820000121128902000014112885如果一个关系有多个候选码,则指定其中的一个用于区分不同的元组,这个候选码叫做主码例如,如果Student 关系还有一个属性:身份证号 则学号和身份证号都是候选码,可以指定学号作为主码2.1.1 主属性和非主属性包含在任何一个候选码中的属性叫做主属性不包含在任何一个候选码中的属性叫做非主属性SnoSnameSsexSageSdept2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机SnoCnoGrade200001

7、21156802000113115689200025611569320000141156882000256113777200027811378920000121137702000012102480200001410248820000141136902000012113678200001211289020000141128852.1.1 注意事项编 号姓 名职 称工 资扣 除实发基本工龄职务房租水电费86051陈 平讲 师120550801601201055姓 名课 程数 学物 理化 学王 林859092张大民977885顾 芳868996姜 凡789367葛 波897791属性对应的域只能是基

8、本数据类型,不能是复合数据类型2.1.1 注意事项属性的值必须是单一值,不能是多个值姓 名电话号码王 林8636xxxx(H),8797xxxx(O),139xxxxx001张大民133xxxxx125,138xxxxx8782.1.2关系模型的数据操作数据操作使用代数运算描述集合运算:并、交、差;在此基础上,创建集合、销毁集合、向集合添加元素、 从集合删除元素,更改集合中某个元素的值。关系运算:选择、投影、连接和除等。2.1.2关系模型的完整性实体完整性:主属性必须赋予值,不能为空引用完整性:引用的元组必须存在用户自定义完整性:对某些取值范围的限制,或元组之间相互关系的约束2.2 关系代数运

9、算对象:关系运算符:、-、 、 、运算结果:关系 2.2 关系代数-集合运算1、并运算2个关系的属性个数必须相同,同一个位置的属性必须对应同一个域运算结果是关系,所以要去重结果关系的属性个数同参与运算的关系,属性可以同名,也可以重命名2.2 关系代数-集合运算2、交运算2个关系的属性个数必须相同,同一个位置的属性对应同一个域2.2 关系代数-集合运算3、差运算2个关系的属性个数必须相同,同一个位置的属性对应同一个域2.2 关系代数-集合运算4、笛卡尔积两个元组首尾相连得到新的元组结果关系的属性,不能重名,如果重名要更名,一种方式是将关系名作为前缀2.2 关系代数-增、删、改操作的实现SnoSn

10、ameSsexSageSdept2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2000014葛波女18计算机2000089宁飞男18数学1、增加 Student = Student 2000089宁飞男18数学2、删除 Student = Student - 2000014葛波女18计算机3、修改 Student = Student - 2000256顾芳女19管理2000256顾芳女20管理2.2 关系代数-关系运算1、选择运算:选择满足给定条件的元组,得到新的关系条件用针对属性的比较运算、逻辑运算表达2.2 关系代数-关

11、系运算2、投影运算:保留一些属性,去掉其他的属性,得到新的关系,可能需要去重2.2 关系代数-关系运算3、连接运算:根据属性值之间的关系,形成元组之间的关联,得到新的关系-连接自然连接外连接(左外连接、右外连接、外连接)2.2 关系代数-关系运算2.2 关系代数-关系运算2.2 关系代数-关系运算4、除法运算:给定关系R (X, Y )和S (Y, Z ),其中X,Y,Z 为属性组。RS 得到一个新关系P (X ),对于任何一个元组tP (X),有t x(R),且 t Y(S) R2.3 示例-使用关系代数表示查询查询:从数据库的关系中找到满足条件的数据构造关系代数表达式的步骤:确定存储了查询

12、所需要的数据的关系确定运算过程组成关系代数表达式单个关系的查询例2-1 查询选修了1137号课程的学生的学号和成绩。数据库中有:Student、Course、SC SC(Sno, Cno, Grade)获取选修了1137号课程的所有的选课记录 Cno=1137(SC) R1(Sno, Cno, Grade)去除无用的信息 Sno,Grade(R1) R2(Sno, Grade)组合以上的运算 R2 Sno,Grade(R1) Sno,Grade(Cno=1137(SC)SnoCnoGrade2000012115680200011311568920002561156932000014115688

13、200025611377720002781137892000012113770200001210248020000141024882000014113690200001211367820000121128902000014112885SnoCnoGrade200025611377720002781137892000012113770SnoGrade200025677200027889200001270关系代数表达式的运算过程Sno,Grade(Cno=1137(SC)3 + 2 * 483 + 11 关系运算没有规定优先级当参与运算的关系已经就位,就可以开始运算多个关系的查询例2-3 查询选修

14、了管理学课程的学生的学号和姓名 涉及Student、Course、SCCnoCnameCpnoCcredit1128高等数学61156英语61137管理学41024数据库原理113641136离散数学112841030物理4CnoCnameCpnoCcredit1137管理学4获取管理学课程的信息 Cname=管理学(Course) R1(Cno, Cname, Cpno, Ccredit) 多个关系的查询R1 SC R2(Cno, Cname, Cpno, Ccredit, Sno, Grade)获取选修了管理学课程的学生的学号等信息 CnoCnameCpnoCcredit1137管理学4S

15、noCnoGrade2000012115680200011311568920002561156932000014115688200025611377720002781137892000012113770200001210248020000141024882000014113690200001211367820000121128902000014112885CnoCnameCpnoCcreditSnoCnoGrade1137管理学420002561137771137管理学420002781137891137管理学42000012113770CnoCnameCpnoCcreditSnoGrade1

16、137管理学42000256771137管理学42000278891137管理学4200001270多个关系的查询获取学生姓名信息Student R2 R3(Sno, Sname, Ssex, Sage, Sdept, Cno, Cname,Cpno, Ccredit, Grade)CnoCnameCpnoCcreditSnoGrade1137管理学42000256771137管理学42000278891137管理学4200001270SnoSnameSsexSageSdept2000012王林男19计算机2000113张大民男18管理2000256顾芳女19管理2000278姜凡男19管理2

17、000014葛波女18计算机SnoSnameSsexSageSdeptCnoCnameCpnoCcreditGrade2000012王林男19计算机1137管理学4702000256顾芳女19管理1137管理学4772000278姜凡男19管理1137管理学489多个关系的查询只保留学号和姓名 Sno, Sname(R3) R4(Sno, Sname)组合以上的运算Sno, Sname(Student ( Cname=管理学(Course) SC)SnoSnameSsexSageSdeptCnoCnameCpnoCcreditGrade2000012王林男19计算机1137管理学4702000

18、256顾芳女19管理1137管理学4772000278姜凡男19管理1137管理学489SnoSname2000012王林2000256顾芳2000278姜凡重名问题的处理例2-6 查询至少选修了1024与1136号课程的学生的学号 SC(Sno, Cno, Grade)做笛卡尔积运算 SC SC R1(Sno, Cno, Grade, Sno, Cno, Grade)方法1:引入更名运算 R(RSno, RCno, RGrade)(SC(Sno, Cno, Grade) S(SSno, SCno, SGrade)(SC(Sno, Cno, Grade) R(RSno, RCno, RGrad

19、e)(SC) S(SSno, SCno, SGrade)(SC) R1(RSno, RCno, RGrade, SSno, SCno, SGrade)方法2:引入位置号 SC SC R1(Sno, Cno, Grade, Sno, Cno, Grade) 1 2 3 4 5 6如果是以下的运算 SC Course R1(Sno, Cno, Grade, Cno, Cname, Cpno, Ccredit) 方法3:引入前缀 SC Course R1(Sno, SC.Cno, Grade, Course.Cno, Cname, Cpno, Ccredit)方法一做笛卡尔积运算 SC SC R1(Sno, Cno, Grade, Sno, Cno, Grade)SnoCnoGrade2000012115680200011311568920002561156932000014115688200025611377720002781137892000012113770200001210248020000141024882000014113690200001211367820000121128902000014112885SnoCnoGradeSnoCnoG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论