您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义1.2关系代数•关系模型的重要部分是关系操纵,关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。利用关系代数可以演示一个查询语言从关系数据库系统中检索信息的潜力,可以用最简单的形式来表达所有关系数据库查询语言必须完成的运算的集合,这些基本的运算对解释标准查询语言SQL如何被执行很有帮助,同时也有利于培养关系运算的思维能力。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义1.2关系代数•关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类;集合运算符、专门的关系运算符、算术比较符和逻辑运算符。关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行。而专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义关系代数运算符运算符符号含义键盘格式示例集合运算符∪并UNIONR∪S,或RUNIONS∩交INTERSECTR∩S,或RINTERSECTS-差MINUSR-S,或RMINUSS×乘TIMESR×S,或RTIMESS专门关系运算符σ选择RwhereCσ姓名=“张三”(S)或Swhere姓名=‘张三’π投影R[]π考号,姓名(S)或S[考号,姓名]∞连接JOINR∞S,或RJOINS÷除DIVIDEBYR÷S,或RDIVIDEBYS关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义1.2.1传统的集合运算•传统的集合运算是二目运算,包括并、差、交、广义笛卡尔积。•定义1.2.1设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则可以定义并、差、交运算如下:–并(Union):关系R与关系S的并记作:R∪S={t|t∈R∨t∈S}其结果仍为n目关系,由属于R或属于S的元组组成。–差(Difference):关系R与关系S的差记作:R—S={t|t∈R∧t!∈S}其结果仍为n目关系,由属于R而不属于S的所有元组组成。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义1.2.1传统的集合运算–交(Intersection):关系R与关系S的交记作:R∩S={t|t∈R∧t∈S}其结果仍为n目关系,由既属于R又属于S的元组组成。关系的交可以用差来表示,即R∩S=R-(R-S)。–广义笛卡尔积(ExtendedCartesianProduct):两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:R×S={trts|tr∈R∧ts∈S}北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义传统集合运算举例RABCa1b1c1a1b2c2a2b2c1R∪SABCa1b1c1a1b2c2a2b2c1a1b3c2SABCa1b2c2a1b3c2a2b2c1R∩SABCa1b2c2a2b2c1北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义传统集合运算举例RABCa1b1c1a1b2c2a2b2c1R-SABCa1b1c1R×SABCABCa1b2c1a1b2c2a1b2c1a1b3c2a1b2c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1SABCa1b2c2a1b3c2a2b2c1北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义1.2.2专门的关系运算•专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个常用记号。–设关系模式为R(Al,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。–若A={Ai1,Ai2,…,Aik},其中Ail,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义1.2.2专门的关系运算–R为n目关系,S为m目关系。tr∈R,ts∈S,trts称为元组的连接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。–给定一个关系R(X,Z),X和Z为属性组。定义t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]︱t∈R,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义学生-课程数据库S学生表学号姓名性别年龄所在系SnoSnameSsexSageSdept2000101张明男19CS2000102李华女20IS2000103王强男18MA2000104秦永男19CSC课程表课程号课程名学分CnoCnameCcredit1数据库32数学43信息系统34操作系统3SC学生选课表学号课程号成绩SnoCnoGrade200101192200101285200101388200102290200102380北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义选择(Selection)•定义1.2.2选择选择又称为限制(Restriction),它是在关系R中选择满足给定条件的诸元组,记作:σF(R)={t︱t∈R∧F(t)=‘真’}其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。逻辑表达式F由逻辑运算符﹁,∧,∨连接各算术表达式组成。算术表达式的基本形式为:X1θY1,其中θ表示比较运算符,它可以是、≥、、≤、=或≠;X1,Y1等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义选择(Selection)•选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算,是对行的水平分解。例1查询信息系(IS)全体学生σSdept=”IS”(S)或σ5=”IS”(S)其中下角标“5”为Sdept的属性序号。或SwhereSdept=”IS”例2查询年龄在19到20岁之间的学生σSage≥19∧Sage≤20(S)或σ4≥19∧4≤20(S)或SwhereSage=19andSage=20北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义投影(Projection)•定义1.2.3投影关系R上的投影是从R中选择出若干属性列组成新的关系,是对关系的垂直分解。记作:πA(R)={t[A]|t∈R}其中A为R中的属性列集合。•投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义投影(Projection)例3查询学生的姓名和所在系。πSname,Sdept(S)或π2,5(S)或S[Sname,Sdept]例4查询学生关系Student中都有哪些系。πSdept(S)或S[Sdept]北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义连接(Join)•定义1.2.4连接连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}AθB其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算的结果是从R和S的广义笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系θ的元组。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义连接(Join)•连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equijoin),另一种是自然连接(Naturaljoin)。另外还有外连接、左连接、右连接等。•θ为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组.•自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义外连接•定义1.2.5外连接表R(A1,A2,…,An,B1,B2,…,Bk)和S(B1,B2,…,Bk,C1,C2,…,Cm)的外连接R∞oS,行t属于表R∞oS,如果下列情况之一发生:1)可连接的行u,v分别在R和S中,有u[Bi]=v[Bi](0=i=k)成立,此时t[A]=u[A],t[B]=u[B],t[C]=v[C]。2)表R中的一个行u使得S中没有一个可以与之连接的行,此时,t[A]=u[A],t[B]=u[B],t[C]=null。3)表S中的一个行v使得R中没有一个可以与之连接的行,此时,t[A]=null,t[B]=v[B],t[C]=v[C]。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义外连接•由定义知,外连接保留了未匹配的行。也就是说,在外连接一端的表上的行,即使在另一端上的表没有与之相匹配的连接列值也会出现在外连接的结果中。左连接和右连接运算只是因为我们需要在某一边上保留未匹配的行而已。左连接保留了在操作符左边的未匹配行,右连接保留了在操作符右边的未匹配行。•一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义关系代数连接运算符符号含义键盘格式示例∞AiθBjθ连接JOIN(AiθBj)R∞A1B2S∞o外连接OUTERJOINR∞oS∞Lo左连接LOUTERJOINR∞LoS∞Ro右连接ROUTERJOINR∞RoS北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义连接运算举例RABCa1b15a1b26a2b38a2b412SBEb13b27b310b32b52θ连接R∞CESAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310等值连接R∞R.B=S.BSAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32自然连接R∞SABCEa1b153a1b267a2b3810a2b382北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义连接运算举例RABCa1b15a1b26a2b38a2b412SBEb13b27b310b32b52外连接R∞oSABCEa1b153a1b267a2b3810a2b382a2b412nullnullb5null2左连接R∞LoSABCEa1b153a1b267a2b3810a2b382a2b412null右连接R∞RoSABCEa1b153a1b267a2b3810a2b382nullb5null2北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义除(Division)•定义1.2.6除给定关系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上投影的集合。记作:R÷S={tr[X]|tr∈R∧πy(S)∈Yx}其中Yx为x在
本文标题:北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
链接地址:https://www.777doc.com/doc-145253 .html