数据库原理与应用(Oracle版)人民邮电出版社2第2章关系数据库的理论基础2.1关系的数据结构2.2关系代数2.3关系演算2.4查询优化2.1关系的数据结构系统而严格地提出关系模型的是美国IBM公司的E.F.CoddE.F.Codd于1970年提出关系数据模型,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式80年代后,关系数据库系统成为最重要、最流行的数据库系统人民邮电出版社32.1关系的数据结构域(Domain)域是一组具有相同数据类型的值的集合。例如:整数实数介于某个取值范围的整数指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期{张清玫,刘逸}{计算机专业,通信工程专业}人民邮电出版社42.1关系的数据结构笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D=D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}元组:每一个元素(d1,d2,…,dn)基数:(mi为Di的基数)所有域的所有取值的一个组合不能重复人民邮电出版社51niiMm2.1关系的数据结构笛卡尔积(续)设有三个集合如下:A={a1,a2},B={b1,b2},C={c1,c2},则集合A、B、C上的笛卡儿积为人民邮电出版社6ABCa1b1c1a1b1c2a1b2c1a1b2c2a2b1c1a2b1c2a2b2c1a2b2c22.1关系的数据结构笛卡尔积(续)D中的每一个元素(d1,d2,…,dn)叫做一个元组。元组中的每一个值di叫做一个分量。一个元组是组成该元组的各分量的有序集合,而不仅仅是各分量集合。笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:人民邮电出版社7mMin1i2.1关系的数据结构关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)R:关系名n:关系的目或度(Degree)每个关系都有一个关系名。二维表的名称就是关系的名称,二维表的每一列都是一个属性。n元关系就会有n个属性。一个关系中的每一个属性都有一个名字,且各个属性的属性名都不同,对应参与笛卡儿积运算的每个集合的名称。一个属性的取值范围Di(i=1,2,3,…,n)称为该属性的域(Domain)。人民邮电出版社82.1关系的数据结构基本关系的性质列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同一个域不同的列可出自同一个域(注意属性和域的关系)其中的每一列称为一个属性不同的属性要给予不同的属性名列的顺序无所谓,列的次序可以任意交换任意两个元组不能完全相同行的顺序无所谓,行的次序可以任意交换分量必须取原子值:各分量都是不可分的数据项。人民邮电出版社92.1关系的数据结构关系模式实际上完整的关系模式的数学定义为:R(U、D、DOM、F)其中:R为关系模式名,U为组成该关系的属性名的集合,D为属性组U中属性所来自的域的集合,DOM为属性向域映像的集合,F为属性间函数依赖关系的集合。关系模式通常简写为:R(U)或R(A1,A2,A3,…,An)其中:R为关系名,Ai(i=1,2,3,…,n)为属性名。域名构成的集合及属性向域映像的集合一般为关系模式定义中的属性的类型和长度。人民邮电出版社102.1关系的数据结构关系模式(RelationSchema)是型关系是值关系模式是对关系的描述元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义以及完整性约束条件属性间的数据依赖关系集合人民邮电出版社112.1关系的数据结构关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系,通过上下文加以区别人民邮电出版社122.1关系的数据结构关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库关系数据库的型与值关系数据库的型:(内含)关系数据库模式对关系数据库的描述。关系数据库的值:(外延)关系模式在某一时刻对应的关系的集合,简称为关系数据库人民邮电出版社132.2关系代数概述关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算2类。传统的集合运算是二目运算,包括并、差、交和笛卡儿积4种运算。这类运算将关系看作是元组的集合,其运算是从“行”的方向来进行的。专门针对数据库环境设计的关系运算,包括投影、选择、连接和除。人民邮电出版社142.2关系代数人民邮电出版社15运算符分类运算符含义表示方法功能传统的集合运算∪并R∪S产生一个新关系,它由属于R或属于S的元组组成的集合-差R-S产生一个新关系,它由属于R或但不属于S的元组组成的集合∩交R∩S产生一个新关系,它由既属于R又属于S的元组组成的集合×笛卡儿积R×S产生一个新关系,它是关系R中的每个元组与关系S中的每个元组并联组成一个新的元组专门的关系运算σ选择()FR产生一个新关系,其中只包含R中满足指定谓词的元组π投影1,2,,()iiimR产生一个新关系,该关系由指定的R的属性组成的一个R的垂直子集组成,并且删除了重复的元组连接ABRS产生一个新关系,该关系包含了R和S的笛卡儿积中所有满足θ运算的元组÷除R÷S产生一个属性集合C上的关系,该关系的元组与S中的每个元组组合都能在R中找到匹配的元组,这里C是属于R但不属于S的属性集合比较运算大于X1Y1若X1大于Y1,则返回true,否则返回false≥大于等于X1≥Y1若X1大于等于Y1,则返回true,否则返回false小于X1Y1若X1小于Y1,则返回true,否则返回false≤小于等于X1≤Y1若X1小于等于Y1,则返回true,否则返回false=等于X1≠Y1若X1等于Y1,则返回true,否则返回false≠不等于X1Y1若X1不等于Y1,则返回true,否则返回false逻辑运算┐非┐X1若X1为true,则返回false∧与X1∧Y1若X1和Y1均为true,则返回true,否则返回false∨或X1∨Y1若X1和Y1至少有一个为true,则返回true;X1和Y1均为false时返回false。()FR1,2,,()iiimRABRS2.2关系代数传统的集合运算:1.并(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S仍为n目关系,由属于R或属于S的元组组成R∪S={t|tR∨tS}人民邮电出版社162.2关系代数传统的集合运算:1.并(Union)人民邮电出版社172.2关系代数传统的集合运算:2.差(Difference)R和S具有相同的目n相应的属性取自同一个域R-S仍为n目关系,由属于R而不属于S的所有元组组成R-S={t|tR∧tS}人民邮电出版社182.2关系代数传统的集合运算:2.差(Difference)人民邮电出版社192.2关系代数传统的集合运算:3.交(Intersection)R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成R∩S={t|tR∧tS}R∩S=R–(R-S)人民邮电出版社202.2关系代数传统的集合运算:3.交(Intersection)人民邮电出版社212.2关系代数传统的集合运算:4.笛卡尔积严格地讲应该是广义的笛卡尔积(ExtendedCartesianProduct)R:n目关系,k1个元组S:m目关系,k2个元组R×S列:(n+m)列元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={trts|trR∧tsS}人民邮电出版社222.2关系代数传统的集合运算:4.笛卡尔积人民邮电出版社232.2关系代数专门的关系运算:1.选择(Selection)1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组σF(R)={t|tR∧F(t)=true}F:选择条件,是一个逻辑表达式,基本形式为:X1θY13)选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算人民邮电出版社24σ2.2关系代数专门的关系运算:1.选择(Selection)学生成绩管理的数据库,包括学生关系S、课程关系C和成绩关系SC人民邮电出版社25学生关系SStuNoStuNameSexAgeDept10501001张伟男19通信工程系10501002许娜女18电子系10501112王成男20计算机系课程关系CCNoCNameCreditClassHour050218数据库技术及应用232050106通信原理464050220计算机网络232成绩关系SCStuNoCNoScore10501001050218851050100105010680105010020502207510501112050218882.2关系代数专门的关系运算:1.选择(Selection)【例】设关系S如表1-10所示,查询全体男同学的信息。σSex=′男′(S)或σ3=′男′(S)其中下角标“3”为Sex的属性序号人民邮电出版社26男学生关系SStuNoStuNameSexAgeDept10501001张伟男19通信工程系10501112王成男20计算机系2.2关系代数专门的关系运算:1.选择(Selection)【例】关系S如表1-10所示,查询年龄小于20岁的学生的信息。σAge20(S)人民邮电出版社27年龄小于20岁的学生关系SStuNoStuNameSexAgeDept10501001张伟男19通信工程系10501002许娜女18电子系2.2关系代数专门的关系运算:2.投影(Projection)1)投影运算符的含义从R中选择出若干属性列组成新的关系πA(R)={t[A]|tR}A:R中的属性列2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)人民邮电出版社28π2.2关系代数专门的关系运算:2.投影(Projection)【例】关系S如表1-10所示,查询学生的姓名和所在系。πStuName,Dept(σAge20(S))人民邮电出版社29投影关系πStuName,Dept(σAge20(S))StuNameDept张伟通信工程系许娜电子系2.2关系代数专门的关系运算:3.连接(Join)连接也称为θ连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组人民邮电出版社30{|,[][]}()rsrsrsABABRStttttRtStAtBRS2.2关系代数专门的关系运算:3.连接(Join)3)两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:人民邮电出版社31{|,[][]}()rsrsrsABABRStttttRtStAtBRS