关系模型与关系代数大学精讲.ppt

上传人:小飞机 文档编号:6553396 上传时间:2023-11-11 格式:PPT 页数:61 大小:521.50KB
返回 下载 相关 举报
关系模型与关系代数大学精讲.ppt_第1页
第1页 / 共61页
关系模型与关系代数大学精讲.ppt_第2页
第2页 / 共61页
关系模型与关系代数大学精讲.ppt_第3页
第3页 / 共61页
关系模型与关系代数大学精讲.ppt_第4页
第4页 / 共61页
关系模型与关系代数大学精讲.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《关系模型与关系代数大学精讲.ppt》由会员分享,可在线阅读,更多相关《关系模型与关系代数大学精讲.ppt(61页珍藏版)》请在三一办公上搜索。

1、数据库系统概论An Introduction to Database System第2章 关系模型与关系代数,主要内容,关系模型概述 关系数据结构 关系的完整性 关系操作关系代数,2.1关系模型概述,关系数据模型 由 1970年提出 之后,提出了关系代数和关系演算的概念,1NF5NF(范式)关系数据库应用数学方法处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统典型商用系统ORACLE SYBASE INFORMIX DB2 INGRES MySQL,1923-2003,美国IBM公司研究员 1981获Turing Award得主关系数据库之父,Dijkstra,姚期智

2、,2.1.2 漫谈关系,关系(relation)1、在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。,2、从数学的角度看,关系是集合。笛卡尔(Descartes)15961650(1)Cartesian Product定义:给定一组域D1,D2,Dn,这些域中可有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn))diDi,i1,2,n,(2)关系(Relation)D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn),关系数据库(Relational DataBase)在一个给定的应用领域中,所有关系的集合构成关系数据库。,关系中的术

3、语元组(tuple)属性(attribute)域(domain)候选码(Candidate Key)主码(Primary Key)主属性(Prime Attribute)非主属性(Nonprimary attribute)外码(Foreign Key),候选码(Candidate key)举例 能够唯一地标识一个元组的属性组。主码(Primary key)用户选定的候选码称为主码。主属性:候选码中的属性称为主属性。非主属性:不是主属性的属性称为非主属性。外码(Foreign key)若模式R中的属性组K是其它模式S(S可以是R!)的主码,则K称为模式R的外码。其中,称R是参考关系,S是被参考关

4、系,关系的基本性质,列是同质的(Homogeneous)不同的列可出自同一个域 列的顺序无所谓 任意两个元组不能完全相同 行的顺序无所谓 分量必须取原子值,关系模式(Relational Schema)关系模式是关系的描述。它的形式化表示为:R(U,D,DOM,F)R-关系名,U-属性,D-属性域,DOM-属性向域的映射,F-属性间的依赖说明:关系模式是静态的、稳定的,是型;关系是关系模式某一时刻的状态,是变化的,是值;,2.1.4 关系的完整性,实体完整性 参照完整性 用户定义的完整性,1.实体完整性,实体完整性规则(Entity Integrity)若A是关系R的主码,则A不能取空值或重复

5、值,2.参照完整性,若属性组FK是关系R的外码,它与关系S的主码PK相对应。则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的PK的值(主码值)举例说明,分院学生会主席,10018,99999,10002,10018,10002,NULL,3.用户定义的完整性,用户定义的完整性是针对某一具体关系数据模式的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。,例如:关系模式S、C、SC中age在15-30岁;sex取值男、女grade 在0-100分之间,Create table SC(S#CHAR(4),c#CHAR(4),grade int,

6、primary key(S#,c#),foreign key(S#)reference S(S#),foreign key(c#)reference C(c#),CHECK(grade is null)OR(grade between 0 and 100),如何实现中完整性?很简单举例:定义学生选课表SC(S#,c#,grade),1.关系代数语言 ISBL(Information System Base Language)2.关系演算语言 3.SQL语言 Oracle、Sybase、DB2,元组演算 ALPHA 域演算 QBE,关系操作,1.关系结构2.关系的完整性(约束条件)实体完整性(用

7、主健实现 PK)参照完整性(用外健实现 FK)用户定义完整性(用触发器实现 Tragger)3.关系的操作,总结:关系的三要素,重要说明:如何设计关系模式,既关系结构和关系完整性,是个复杂的、意义非常重大的问题,属于数据库设计领域实现关系模式,是非常容易解决的问题,只是SQL的一条语句而已,2.2 关系代数,1.关系代数一种对关系抽象的查询语言询,2关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类,3.写好关系查询语句要点之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?之二:了解关系操作的过程,关系代数运算符,关系代数运算符(续),一.传统的

8、集合运算,并差交广义笛卡尔积,温馨提示:写好关系查询语句要点 之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?之二:了解关系操作的过程,学会手工模拟最重要,1.并(Union),R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域RS 仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S,c1,b2,a2,c2,b2,a1,c1,b1,a1,C,B,A,c2,b3,a1,c1,b2,a2,c2,b2,a1,c1,b1,a1,C,B,A,c1,b2,a2,c2,b3,a1,c2,b2,a1,C,B,A,R,S,RS,2.差(Dif

9、ference),R和S具有相同的目n相应的属性取自同一个域R-S 仍为n目关系,由属于R而不属于S的所有元组组成 R-S=t|tRtS,c1,b2,a2,c2,b2,a1,c1,b1,a1,C,B,A,c1,b1,a1,C,B,A,c1,b2,a2,c2,b3,a1,c2,b2,a1,C,B,A,R,S,R-S,3.交(Intersection),R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S),R,S,R S,4.广义笛卡尔积(Extended Cartesian Product),R:n目关系,k1个元组

10、S:m目关系,k2个元组RS:列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组RS=tr ts|tr R tsS,R,S,R S,S,s#sn sex age01 刘欢 男 3602 韩红 女 28 03 刀郎 男 30,SC,s#c#G01 c1 59 01 c2 8002 c1 6203 c1 null,求SSC?,SSC,01 刘欢 男 36 01 C1 5901 刘欢 男 36 01 C2 8001 刘欢 男 36 02 C1 6201 刘欢 男 36 03 C1 null,02 韩红 女 28 01 C1 5902 韩红 女 28

11、01 C2 8002 韩红 女 28 02 C1 6202 韩红 女 28 03 C1 null,03 刀郎 男 30 01 C1 5903 刀郎 男 30 01 C2 8003 刀郎 男 30 02 C1 6203 刀郎 男 30 03 C1 null,思考:SSC与S,SC信息等价吗?,二.专门的关系运算,选择(selection)投影(projection)连接(join)除(division),温馨提示:写好关系查询语句要点 之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?之二:了解关系操作的过程,学会手工模拟最重要,1.选择(Selection)

12、,1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组 F(R)=t|tRF(t)=真F:选择条件,是一个逻辑表达式 比较运算符:,,逻辑运算符:,,例如:sex=男 age15 sex=女 age 12,3)选择运算是从行的角度进行的运算 4)举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,举例:设有一个学生-课程数据库 学生关系 Student 课程关系 Course 选修关系 SC,请你记住,Student,Course,SC,例1 查询信息系(IS系)全体学生 Sdept=IS(Student

13、)结果:,2.投影(Projection),1)投影运算符的含义从R中选择出若干属性列组成新的关系 A(R)=tA|t R A:R 中的属性列,2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),例3 查询学生的姓名和所在系 Sname,Sdept(Student)结果:,2.3 关系代数举例,温馨提示:写好关系查询语句要点 之一:关系操作是对关系的运算,其运算结果也是关系。要问:关系的结构是什么?元组是什么?之二:了解关系操作的过程,学会手工模拟最重要之三:对查询请求,先手工解决,然后使用计算机语言解决,S,s#sn sex age

14、01 刘欢 男 3602 韩红 女 28 03 刀郎 男 29,检索30岁以下男学生的姓名和年龄?sn,age(age30sex=男(S),问题:检索30岁以下男学生的情况?age30sex=男(S),S,s#sn sex age01 刘欢 男 3602 韩红 女 28 03 刀郎 男 30,C,c#cn Tc1 OS 关羽c2 DB 张飞,SC,s#c#G01 c1 59 01 c2 8002 c1 6203 c1 null,设教学数据库中有三个关系:S、C、SC,以下讲解关系的运算!,S,s#sn sex age01 刘欢 男 3602 韩红 女 28 03 刀郎 男 30,SC,s#c#

15、G01 c1 59 01 c2 8002 c1 6203 c1 null,求 SSC?,SSC,01 刘欢 男 36 01 C1 5901 刘欢 男 36 01 C2 8001 刘欢 男 36 02 C1 6201 刘欢 男 36 03 C1 null,02 韩红 女 28 01 C1 5902 韩红 女 28 01 C2 8002 韩红 女 28 02 C1 6202 韩红 女 28 03 C1 null,03 刀郎 男 30 01 C1 5903 刀郎 男 30 01 C2 8003 刀郎 男 30 02 C1 6203 刀郎 男 30 03 C1 null,显见:两张表变成一张表,且该表 与S和SC信息等价!,下面用关系代数表达式表示每个查询请求。,检索学习课程号为C2的学生的学号和姓名。,检索选修OS的学生的学号和姓名。,检索选修课程号为C2或C4的学生的学号。,S#(C#=C2VC#=C4(SC),检索不学C2课程的学生的学号和姓名。,检索至少选修C2和C4的学生的学号。,S#(C#=C2C#=C4 1=4(SCSC),本次课已Over 谢谢了!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号