1、第一章第一章数据库基础数据库基础-关系运算关系运算掌握掌握8种关系运算符种关系运算符利用关系运算符进行数据查询利用关系运算符进行数据查询 每个关系运算将一到两个关系做为输入,并产生一个新每个关系运算将一到两个关系做为输入,并产生一个新关系做为输出。关系做为输出。关系运算主要有:关系运算主要有:(1)并运算并运算(Union):关系关系R和和S具有相同的属性及域,它们具有相同的属性及域,它们的并运算将产生一个新关系,新关系具有和的并运算将产生一个新关系,新关系具有和R,S相同的数据相同的数据及域,新关系中包含及域,新关系中包含R,S中所有不同的元组。记作:中所有不同的元组。记作:R S(2)交运
2、算交运算(Intersect):关系关系R和和S具有相同的属性及域,具有相同的属性及域,它们的交运算将产生一个新关系,新关系具有和它们的交运算将产生一个新关系,新关系具有和R,S相同的相同的数据及域,新关系包含同时出现在数据及域,新关系包含同时出现在R,S中的元组。记作:中的元组。记作:R S(3)差运算差运算(Difference):关系关系R和和S具有相同的属性及域,具有相同的属性及域,它们的差运算将产生一个新关系,新关系具有和它们的差运算将产生一个新关系,新关系具有和R,S相同的相同的数据及域,新关系包含所有属于数据及域,新关系包含所有属于R但不属于但不属于S的元组。记作:的元组。记作:
3、R-S(4)笛卡尔积笛卡尔积(Product):设关系:设关系R为为n列列,k1行,关系行,关系S为为m列,列,k2行,则关系行,则关系R和和S的笛卡尔积,是的笛卡尔积,是R中每个元组和中每个元组和S中中每个元组连接产生的新关系。记作:每个元组连接产生的新关系。记作:RS注:新关系中属性的个数为注:新关系中属性的个数为n+m,元组的个数为,元组的个数为k1k2.ABCa1b1c1a1b2c2a2b2c1RSABCa1b2c2a1b3c2a2b2c1请给出请给出R和和S的并,交,差和笛卡尔积的运算结果。的并,交,差和笛卡尔积的运算结果。RSABCa1b1c1a1b2c2a1b3c2a2b2c1R
4、 S ABCa1b2c2a2b2c1R-S ABCa1b1c1R S R.AR.BR.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.Ca1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1(5)除运算(除运算(Divide):):RABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2SRS=?1.判断除法运算后关系的属性结构:判断除法运算后关系的属性结构:为为R的关系属性与的关系属性
5、与S的关系属性做差运算,所以的关系属性做差运算,所以R S的结果集由的结果集由A属性属性组成。组成。2.针对步骤针对步骤1获取的属性,找出属性在关系获取的属性,找出属性在关系R中的取值情况:中的取值情况:A属性可以取值属性可以取值a1,a2,a3,a43.计算每种取值在关系计算每种取值在关系R上的象集:上的象集:象集属性由关系象集属性由关系R和关系和关系S的交集组成的交集组成a1的象集的象集(b1,c2),(b2,c3),(b2,c1)a2的象集的象集(b3,c7),(b2,c3)a3的象集的象集(b4,c6)a4的象集的象集(b6,c6)4.计算关系计算关系R和和S的属性交集在关系的属性交集
6、在关系S上的取值情况:上的取值情况:(b1,c2),(b2,c1),(b2,c3)5.判断哪个象集包含了步骤判断哪个象集包含了步骤4的结果,则该取值满足结果:的结果,则该取值满足结果:RS=Aa1StuIDCourseID120011120012120013120021120032120043StudentCourseCourseIDCourseName1math2english3computer注:当提出查询注:当提出查询“全部全部”,“所有所有”,“至少至少”这样的关键这样的关键字时可以考虑使用除法解决。字时可以考虑使用除法解决。(6)选择运算选择运算选择操作符是根据某个条件从给定的关系中
7、抽取指定的元组或行。选择操作符是根据某个条件从给定的关系中抽取指定的元组或行。设有一个学生设有一个学生-课程数据库,包括学生关系课程数据库,包括学生关系Student、课程课程关系关系Course和选修关系和选修关系SC。StudentStuIDStuNameStuAgeStuSexDepName12001mary21女IS12002tom20男Math12003jack19男English12004nancy22女ISCourseIDCourseNameCredit1Computer22math33English3CourseSCStuIDCourseIDGrade1200119012001
8、29212001395120021801200327612004382查询信息系(查询信息系(IS系)全体学生系)全体学生 DepName=IS(Student)StuIDStuNameStuAgeStuSexDepName12001mary21女IS12004nancy22女IS查询信息系(查询信息系(IS系)且年龄小于系)且年龄小于20岁的学生。岁的学生。DepName=IS AND StuAge 20(Student)StuIDStuNameStuAgeStuSexDepName12003jack19男English(7)投影运算投影运算 投影操作符是给定关系中抽取指定的属性和列。投影操
9、作符是给定关系中抽取指定的属性和列。但投影之后不仅取消了原关系中的某些列,而且还可能取消某些但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)元组(避免重复行)查询学生的姓名和所在系,即求查询学生的姓名和所在系,即求Student关系上学生姓名和所在系关系上学生姓名和所在系两个属性上的投影两个属性上的投影 StuName,DepName(Student)StuNameDepNamemaryIStomMathjackEnglishnancyIS(8)连接运算连接运算连接运算符从两个指定的关系构建一个关系。此关系包括两个关系连接运算符从两个指定的关系构建一个关系。此关系包括
10、两个关系中满足指定条件的元组的所有可能组合。中满足指定条件的元组的所有可能组合。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。RSRABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52S RSABCEa1b153a1b267a2b3810a2b382已知学生表已知学生表Student和学生选课表和学生选课表SC。其关系模式如下:。其关系模式如下:Student(StuID,StuName,DepName,PROV)SC(StuID,CourseName,Grade)其中,其中,StuID为
11、学号,为学号,StuName为姓名,为姓名,DepName为系名,为系名,Prov为省区,为省区,CourseName为课程名,为课程名,Grade为分数。为分数。试用关系运算符实现下列操作:试用关系运算符实现下列操作:(1)查询系为计算机的学生学号与姓名;查询系为计算机的学生学号与姓名;(2)查询查询“信息系信息系”的学生来自哪些省区。的学生来自哪些省区。(3)输出输出“英语系英语系”学生选修了学生选修了“计算机计算机”课程的学生课程的学生的学号、姓名和分数。的学号、姓名和分数。查询至少选修查询至少选修1号课程和号课程和3号课程的学生号码号课程的学生号码 首先建立一个临时关系首先建立一个临时关系K:CourseID13StuID,CourseID(SC)K查询选修了查询选修了2号课程的学生的学号号课程的学生的学号StuID(CousreID=2(SC)95001,95002 查询选修了全部课程的学生号码和姓名。查询选修了全部课程的学生号码和姓名。StuID,CourseID(SC)CourseID(Course)StuID,StuName(Student)8种关系运算符种关系运算符
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。