数据库管理系统第二章.ppt

上传人:b****1 文档编号:1726274 上传时间:2022-10-23 格式:PPT 页数:71 大小:1.50MB
下载 相关 举报
数据库管理系统第二章.ppt_第1页
第1页 / 共71页
数据库管理系统第二章.ppt_第2页
第2页 / 共71页
数据库管理系统第二章.ppt_第3页
第3页 / 共71页
数据库管理系统第二章.ppt_第4页
第4页 / 共71页
数据库管理系统第二章.ppt_第5页
第5页 / 共71页
点击查看更多>>
下载资源
资源描述

数据库管理系统第二章.ppt

《数据库管理系统第二章.ppt》由会员分享,可在线阅读,更多相关《数据库管理系统第二章.ppt(71页珍藏版)》请在冰豆网上搜索。

数据库管理系统第二章.ppt

数据库系统概论AnIntroductiontoDatabaseSystem第二章关系代数,关系代数,概述传统的集合运算专门的关系运算,概述,1.关系代数一种抽象的查询语言用对关系的运算来表达查询,概述(续),2关系代数运算的三个要素运算对象:

关系运算结果:

关系运算符:

四类,概述(续),集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作,表2.4关系代数运算符,概述,表2.4关系代数运算符(续),概述(续),关系代数,概述传统的集合运算专门的关系运算,1.并(Union),R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域RS仍为n目关系,由属于R或属于S的元组组成RS=t|tRtS,并(续),2.差(Difference),R和S具有相同的目n相应的属性取自同一个域R-S仍为n目关系,由属于R而不属于S的所有元组组成R-S=t|tRtS,差(续),3.交(Intersection),R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组成RS=t|tRtSRS=R(R-S),交(续),4.笛卡尔积(CartesianProduct),严格地讲应该是广义的笛卡尔积(ExtendedCartesianProduct)R:

n目关系,k1个元组S:

m目关系,k2个元组RS列:

(n+m)列元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:

k1k2个元组RS=trts|trRtsS,交(续),2.4.2专门的关系运算,先引入几个记号

(1)R,tR,tAi设关系模式为R(A1,A2,An)它的一个关系设为RtR表示t是R的一个元组tAi则表示元组t中相应于属性Ai的一个分量,专门的关系运算(续),

(2)A,tA,A若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或属性组。

tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。

A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。

专门的关系运算(续),(3)trtsR为n目关系,S为m目关系。

trR,tsS,trts称为元组的连接。

trts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。

专门的关系运算(续),(4)象集Zx给定一个关系R(X,Z),X和Z为属性组。

当tX=x时,x在R中的象集(ImagesSet)为:

Zx=tZ|tR,tX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合,专门的关系运算(续),x1在R中的象集Zx1=Z1,Z2,Z3,x2在R中的象集Zx2=Z2,Z3,x3在R中的象集Zx3=Z1,Z3,象集举例,专门的关系运算(续),选择投影连接除,专门的关系运算(续),(a),Student,4)学生-课程数据库:

学生关系Student、课程关系Course和选修关系SC,专门的关系运算(续),Course,(b),专门的关系运算(续),(c),SC,1.选择(Selection),1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组F(R)=t|tRF(t)=真F:

选择条件,是一个逻辑表达式,基本形式为:

X1Y1,选择(续),3)选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算,选择(续),例1查询信息系(IS系)全体学生Sdept=IS(Student)或5=IS(Student)结果:

选择(续),例2查询年龄小于20岁的学生Sage20(Student)或420(Student)结果:

2.投影(Projection),1)投影运算符的含义从R中选择出若干属性列组成新的关系A(R)=tA|tRA:

R中的属性列,2.投影(Projection),2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),投影(续),例3查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept(Student)或2,5(Student)结果:

投影(续),投影(续),例4查询学生关系Student中都有哪些系Sdept(Student)结果:

作业,R,S,RSR-SRSA,C(R)AB(R),3.连接(Join),1)连接也称为连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组RS=|trRtsStrAtsBA和B:

分别为R和S上度数相等且可比的属性组:

比较运算符连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组,连接(续),3)两类常用连接运算等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:

RS=|trRtsStrA=tsB,A=B,连接(续),自然连接(Naturaljoin)自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组BRS=|trRtsStrB=tsB,连接(续),4)一般的连接操作是从行的角度进行运算。

自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

连接(续),例5关系R和关系S如下所示:

连接(续),一般连接RS的结果如下:

CE,连接(续),等值连接RS的结果如下:

连接(续),自然连接RS的结果如下:

连接(续),外连接如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTERJOIN)。

左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。

连接(续),下图是例5中关系R和关系S的外连接,连接(续),图(b)是例5中关系R和关系S的左外连接,图(c)是右外连接,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=trX|trRY(S)YxYx:

x在R中的象集,x=trX,除(续),2)除操作是同时从行和列角度进行运算,除(续),例6设关系R、S分别为下图的(a)和(b),RS的结果为图(c),分析,在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为(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)属性组上的投影所以RS=a1,5综合举例,以学生-课程数据库为例(P56)例7查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:

然后求:

Sno,Cno(SC)K,综合举例(续),例7续Sno,Cno(SC)200215121象集1,2,3200215122象集2,3K=1,3于是:

Sno,Cno(SC)K=200215121,综合举例(续),例8查询选修了2号课程的学生的学号。

Sno(Cno=2(SC)200215121,200215122,综合举例(续),例9查询至少选修了一门其直接先行课为5号课程的的学生姓名Sname(Cpno=5(CourseSCStudent)或Sname(Cpno=5(Course)SCSno,Sname(Student)或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student),综合举例(续),例10查询选修了全部课程的学生号码和姓名。

Sno,Cno(SC)Cno(Course)Sno,Sname(Student),练习,1.写出RS=,R,S,RS,2、有关系A、B1、B2和B3,请分别计算A/B1、A/B2及A/B3。

练习,分析:

在关系中,sno可以取四个值s1,s2,s3,s4s1的象集为p1,p2,p3,p4s2的象集为p1,p2s3的象集为p2s4的象集为p2,p4,练习,3、已知关系r、s、w如图所示,计算T=(rs)w)S,r关系s关系w关系,练习,r关系s关系w关系,解:

T=,练习,T=(rs)w)S,1、找1号学生所选修的课程号Cno(Sno=200215121(SC)2、求选修了1号或2号课程的学生号方案1:

Sno(Cno=1Cno=2(SC)方案2:

Sno(Cno=1(SC)Sno(Cno=2(SC),练习,练习,3、求选修了001号而没有选002号课程的学生号Sno(Cno=001(SC)Sno(Cno=002(SC)4、求同时选修了001号和002号课程的学生号错误的写法:

Sno(Cno=001Cno=002(SC)正确的写法:

Sno(Cno=001(SC)Sno(Cno=002(SC),练习,4、求同时选修了001和002号课程的学生号(续)方案1:

S#,C#(SC)C#=001C#=002(C)方案2:

S#(SCC#=001C#=002(C)哪一个正确?

练习,选修了全部课程并且成绩都相同的学生,选修了全部课程的学生,5、求未选修001号课程的学生号方案1:

S#(S)S#(C#=001(SC)方案2:

S#(C#001(SC),哪一个正确?

练习,练习,6、求仅选修了C01号课程的学生号,选修C01号课程的学生选C01号课程之外的学生S#(C#=C01(SC)S#(SCC#=C01(SC),综合举例,例:

数据库中有三个关系:

S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)试用关系代数表达式表达每个查询语句。

1、检索学习课程号为C3的学生学号与成绩2、检索选修课程名为Maths的学生学号与姓名,S#,GRADE(C#=C3(SC),S#,SNAME(CNAME=Maths(SSCC),综合举例,3、检索选修课程号为C1或C4的学生学号4、检索至少选修课程号为C2和C4的学生学号5、检索没有学C2课程的学生姓名与年龄6、检索学习全部课程的学生姓名7、检索所学课程包含学生S3所学课程的学生学号,S#(C#=C1C#=C4(SC),1(1=42=C25=C4(SCSC),SNAME,AGE(S)-SNAME,AGE(C#=C2(SSC),SNAME(S(S#,C#(SC)C#(C),S#,C#(SC)C#(S#=S3(SC),思考题,供应商关系S(S#,SNAME,Status,City)零件关系P(P#,PNAME,Color,Weight)工程项目关系J(J#,JNAME,City)供应关系SPJ(S#,P#,J#,City)

(1)求供应工程J1零件的供应商号码S#

(2)求供应工程J1零件P1的供应商号码S#(3)求供应工程J1零件为红色的的供应商号码S#(4)求没有使用天津供应商生产的红色零件的工程号(5)求至少用了供应商S1所供应的全部零件的工程号,参考解答,

(1)S#(J#=J1(SPJ),

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

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1