您好,欢迎访问三七文档
2.2关系操作基本的关系操作包括查询和更新两大类,更新操作又包括插入、删除和修改3种。关系操作的特点是集合方式操作,即操作的对象和结果都是关系。2.3关系完整性2.3.1关系的码1.候选码由2.1.1节给出的定义可知,能唯一标识关系中元组的一个属性或几个属性的最小组合,称为候选码(CandidateKey),也称候选关键字、候选键或码。学生(学号,姓名,年龄,性别)(学号)就是一个候选键下面给出候选码的形式化定义。定义2.6设关系R(A1,A2,…,An),其属性为:A1,A2,…,An,属性集K为R的子集,K=(Ai,Aj,…,Ak),1≤i,j,…,k≤n。当且仅当满足下列两个条件时,K被称为候选码:①唯一性。对关系R的任两个元组,其在属性集K上的值是不同的。②最小性。属性集K=(Ai,Aj,…,Ak)是最小集,即若删除K中的任一属性,K都不满足唯一性。选课(学号,课程号,成绩)(学号,课程)就是一个候选键两个属性缺一不可2.3.1关系的码2.主码若一个关系有多个候选码,用户选做元组标识的那一个候选码称为主码(PrimaryKey)。例如,假设在“学生”关系中学生的姓名都不重名,那么“学号”和“姓名”都可作为学生关系的候选码,可指定“学号”或“姓名”作为主码。包含在候选码中的各属性称为主属性(PrimeAttribute)。非码属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非码属性。若所有属性的组合是关系的候选码,这种情况称为全码(All-Key)。2.3.1关系的码3.外码定义2.7如果关系R1的属性或属性组K不是R1的主码,而是另一关系R2的主码,则称K为关系R1的外码(ForeignKey),并称关系R1为参照关系(ReferencingRelation),关系R2为被参照关系(ReferencedRelation)。学生(学号,姓名,年龄,性别)选课(学号,课程号,成绩)课程(课程号,课程名称,……)选课关系的外码由外码定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。参照关系被参照关系2.4关系代数关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。它是用对关系的运算来表达查询的,其运算对象是关系,运算结果也是关系。关系代数用到的运算符主要包括4类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符,其中比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。这4类运算的含义列于表2.9中。2.4关系代数表2.9关系代数的4类运算符运算符类别记号含义集合运算符∪并差∩交×笛卡儿积专门的关系运算符σ选择Π投影∞连接÷除法比较运算符小于≤小于等于大于≥大于等于等于不等于逻辑运算符┐非∧与∨或2.4关系代数关系代数的运算可分为两类:1.传统的集合运算传统的集合运算是二目运算,包括并、差、交和笛卡儿积4种运算。传统集合运算除笛卡儿积外,都要求参与运算的两个关系满足“相容性”条件。定义2.8设两个关系R,S,若R,S满足以下两个条件:①具有相同的度n;②R中第i个属性和S中第i个属性来自同一个域。则称关系R,S满足“相容性”条件。2.4关系代数设R,S为两个满足“相容性”条件的n目关系,t为元组变量,t∈R表示t是关系R的一个元组。可定义关系的并、差、交运算如下。(1)并(Union)关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为一个n目关系。记为R∪S={t|t∈R∨t∈S}对于关系数据库,记录的插入和添加可通过并运算实现。(2)差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为一个n目关系。记为RS={t|t∈R∧┐t∈S}通过差运算,可实现关系数据库记录的删除。(3)交(Intersection)关系R与关系S的交由既属于R又属于S的元组组成(即R与S中相同的元组),其结果仍为一个n目关系。记为R∩S={t|t∈R∧t∈S}两个关系的并和差运算是基本运算(即不能用其他运算表示的运算),而交运算是非基本运算,它可以用差运算来表示R∩S=R(RS)关系运算传统的集合运算1.并2.交3.差1,21,3,4+1,2,3,41,23,4,11,3,41,2_3,42.4关系代数笛卡儿积对参与运算的两个关系R,S没有“相容性”条件要求。因为参与运算的是关系的元组,因此这里的笛卡儿积实际上指的是广义笛卡儿积。(4)广义笛卡儿积(ExtendedCartesianProduct)设n目关系R和m目关系S,R与S的广义笛卡儿积是一个(nm)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积有k1×k2个元组,记作R×S={tr∩ts|tr∈R∧ts∈S}2.4关系代数表2.15关系R×SR.AR.BR.CS.AS.BS.Ca1b1c1a1b2c2a1b1c1a2b2c2a2b2c2a1b2c2a2b2c2a2b2c2a3b3c3a1b2c2a3b3c3a2b2c22.专门的关系运算传统的集合运算只是从行的角度对关系进行,而要灵活地实现关系数据库多样的查询操作,还必须引入专门的关系运算。在介绍专门的关系运算之前,为方便叙述,先引入几个概念。①设关系模式为R(A1,A2,…,An),它的一个关系为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t相对于属性Ai的分量。②若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列,t[A]={t[Ai1],t[Ai2],…,t[Aik]}表示元组t在属性列A上各分量构成的子集;则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。③R为n目关系,S为m目关系,tr∈R,ts∈S,trts称为元组的连接(Concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。④给定一个关系R(X,Z),X和Z为属性组,定义当t[X]=x时,x在R中的像集(ImageSet),为Zx={t[Z]|t∈R,t[X]=x},它表示R中的属性组X上值为x的各元组在Z上分量的集合。2.4关系代数以下定义选择、投影、连接和除法4个专门的关系代数运算。(1)选择(Selection)选择运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记为:F(R)={t|t∈R∧F(t)='真'}其中,为选择运算符,F为选择的条件,它是由运算对象(属性名、常数、简单函数)、算术比较运算符(,≥,,≤,=,≠)和逻辑运算符(∨,∧,┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度对关系进行的操作。选择:从关系中找出满足给定条件的元组的操作(从行的角度)学号姓名年龄班级1李2020012杨1920013张2020014王1820015吴1920016赵182001例1:…where姓名=‘李’例2:…where年龄18.AND.年龄202.4关系代数以下例题均是以表2.6、表2.7和表2.8的3个关系为例进行的运算。【例2.2】查询计算机专业的全体学生。专业='计算机'(XS)或者5='计算机'(XS)(其中5为“专业”属性的列号)运算结果见表2.16。表2.16计算机系的全体学生学号姓名性别出生日期专业总学分班干否备注07050101王林男1989-3-2计算机应用14党员07050102程小明男1988-11-5计算机应用6是2.4关系代数【例2.3】查询在“1989-1-1”以后出生的男同学。(出生年月)'1989-1-1'∧性别='男'(XS)运算结果见表2.17。表2.17“1987-1-1”以后出生的男同学学号姓名性别出生日期专业总学分班干否备注07050101王林男1989-3-2计算机应用14党员(2)投影(Projection)投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记为:A(R)={t[A]|t∈R}其中,A为R中的属性列,为投影运算符。从其定义可看出,投影运算是从列的角度进行的运算。投影:从关系模式中指定若干个属性组成新的关系(从列的角度)学号姓名年龄班级1李2020012杨1920013张2020014王1820015吴1920016赵182001例2:SELECT学号,年龄FROM学生学号年龄1202193204185196182.4关系代数【例2.4】查询学生的学号、姓名及专业。学号,姓名,专业(XS)或1,2,5(XS)(其中,1,2,5分别为学号、姓名及专业的属性列号)运算结果见表2.18。表2.18学生学号、姓名和专业学号姓名专业07050101王林计算机应用07050102程小明计算机应用07030201赵倪晓通信工程07030202朱庆通信工程07060101李运洪英语07060102张美红英语2.4关系代数(3)连接(Join)连接运算是二目运算,是从两个关系的笛卡儿积中选取满足连接条件的元组,组成新的关系。设有两个关系R(A1,A2,…,An)及S(B1,B2,…,Bm),连接属性集X包含于{A1,A2,…,An},Y包含于{B1,B2,…,Bm},X与Y中属性列数目相等,且对应属性有共同的域。关系R和S在连接属性X和Y上的连接,就是在RS笛卡儿积中,选取X属性列上的分量与Y属性列上的分量满足“条件”的那些元组组成的新关系。记为:RS={trts|tr∈R∧ts∈S∧tr[X]ts[Y]为真}其中,∞是连接运算符;为算术比较运算符,也称连接;XY为连接条件,其中:为“=”时,称为等值连接;为“”时,称为小于连接;为“”时,称为大于连接。∞XY【例2.5】设有表2.10和2.11的两个关系R与S,则表2.19为R,S的等值连接(R.B=S.B)。表2.19R与S的等值连接(R.B=S.B)R.AR.BR.CS.AS.BS.Ca2b2c2a1b2c2a2b2c2a2b2c22.4关系代数连接运算为非基本运算,可以用选择运算和广义笛卡儿积运算来表示:∞RS=σXY(RS)在连接运算中,一种最常用的连接是自然连接。所谓自然连接就是在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记为:R∞S={trts|tr∈R∧ts∈S∧tr[Y]=ts[Y]}XY自然连接是在广义笛卡儿积RS中选出同名属性上符合相等条件的元组,再进行投影,去掉重复的同名属性,组成新的关系。【例2.6】设有表2.10和表2.11的两个关系R与S,则表2.20为R,S在属性B上的自然连接。表2.20R与S在属性B上的自然连接R.ABR.CS.AS.Ca2b2c2a1c2a2b2c2a2c2联接:是关系的横向结合,将两个关系模式的属性名拼接成一个更宽的关系模式,自然联接是去掉重复属性的等值联接学号姓名年龄班级1李2020012杨1920013张2020014王1820015吴1920016赵182001学号性别成绩3男902男801女604女805女706女80学号姓名年龄班级性别成绩1李202001女602杨192001男803张202001男904王182001女805吴192001女706赵182001女802.4关系代数结合例2.5和例2.6,可看出等值连接与自然连接的区别在于:①等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有同名属性才能进行自然连接
本文标题:2b关系代数
链接地址:https://www.777doc.com/doc-3236083 .html