参考资料-关系模型与关系代数.ppt

上传人:sh****n 文档编号:11524513 上传时间:2020-04-27 格式:PPT 页数:30 大小:256KB
返回 下载 相关 举报
参考资料-关系模型与关系代数.ppt_第1页
第1页 / 共30页
参考资料-关系模型与关系代数.ppt_第2页
第2页 / 共30页
参考资料-关系模型与关系代数.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
第3章关系数据库,3.1关系模型及其定义3.1.1关系数据结构3.1.2关系操作概述3.1.3关系的完整性3.2关系代数3.2.1传统的集合运算3.2.2专门的关系运算3.2.3用关系代数表示检索的例子,3.1关系模型及其定义,3.1.1关系数据结构1.关系的数学定义1)域的定义:域是一组具有相同数据类型的值的集合。2)笛卡儿积(CartesianProduct)的定义:给定一组域D1,D2,Dn,这些域中可以有相同的部分,则笛卡儿积为:D1D2Dn=(d1,d2,dn)diDi,i1,2,n.其中:每一个元素(d1,d2,dn)称为一个n元组,简称元组。元素中的每一个值di称作一个分量)。,例如给出三个域:D1=姓名=王平,李丽,张晓刚;D2=性别=男,女;D3=年龄=19,20.,则D1,D2,D3的笛卡儿积为D1D2D3,1.关系的数学定义,3)关系(Relation)的定义:D1D2Dn的子集称作在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn).这里:R表示关系的名字,n是关系的目或度。,从D1D2D3中取出有用的元组,所构造的学生关系如表所示,2.关系中的基本名词,1)元组:关系表中的每一横行称作一个元组,组成元组的元素为分量。2)属性:关系中的每一列称为一个属性。3)候选码、主码、全码:若关系的候选码中只包含一个属性,则称它为单属性码;若候选码是由多个属性构成的,则称为它为多属性码。若关系中只有一个候选码,且这个候选码中包括全部属性,则这种候选码为全码。4)主属性和非主属性:关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。,3.数据库中关系的类型1)基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。2)视图表:视图表是由基本表或其他视图表导出的表。3)查询表:查询表是指查询结果表或查询中生成的临时表。4.数据库中基本关系的性质1)同一属性的数据具有同质性。2)同一关系的属性名具有不能重复性。3)关系中的列位置具有顺序无关性。4)关系具有元组无冗余性。5)关系中的元组位置具有顺序无关性。6)关系中每一个分量都必须是不可分的数据项。,5.关系模式的定义形式化地表示为:R(U,D,Dom,F)其中:R为关系名,它是关系的形式化表示;U为组成该关系的属性集合;D为属性组U中属性所来自的域;Dom为属性向域的映象的集合;F为属性间数据的依赖关系集合。关系模式通常可以简单记为:R(U)或R(A1,A2,An).其中:R为关系名,A1,A2,An为属性名。,6.关系数据库在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。,3.1.2关系操作概述,1.关系操作的基本内容关系操作包括数据查询、数据维护和数据控制三大功能:数据查询指数据检索、统计、排序、分组以及用户对信息的需求等功能;数据维护指数据增加、删除、修改等数据自身更新的功能;数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。关系操作的数据查询和数据维护功能使用关系代数中的选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)以及广义笛卡儿积(ExtendedCartesianProduct)8种操作。,2.关系操作的特点,(1)关系操作语言操作一体化具有数据定义、查询、更新和控制一体化的特点,既可以作为宿主语言嵌入到主语言中,又可以作为独立语言交互使用。(2)关系操作的方式是一次一集合方式其他系统的操作是一次一记录方式,而关系操作的方式则是一次一集合方式。关系操作数据结构单一的特点,能够使其利用集合运算和关系规范化等数学理论进行优化和处理操作,但关系操作与其他系统配合时需要解决处理方式的矛盾。(3)关系操作语言是高度非过程化的语言具有强大的表达能力。用户使用关系语言时,只需要指出做什么,而不需要指出怎么做,数据存取路径的选择、数据操作方法的选择和优化都由DBMS自动完成。,3.关系操作语言的种类,(1)关系代数语言用对关系的运算来表达查询要求的语言。(2)关系演算语言用查询得到的元组应满足的谓词条件来表达查询要求的语言。关系演算语言又可以分为元组演算语言和域演算语言两种:元组演算语言的谓词变元的基本对象是元组变量,例如APLHA语言;域演算语言的谓词变元的基本对象是域变量,QBE(QueryByExample)是典型的域演算语言。(3)基于映象的语言具有关系代数和关系演算双重特点的语言。SQL是基于映象的语言。SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言。,3.1.3关系的完整性,1.关系模型的实体完整性(EntityIntegrity)若属性A是基本关系R的主属性,则属性A的值不能为空值。说明如下:1)实体完整性能够保证实体的唯一性。2)实体完整性能够保证实体的可区分性。2.关系模型的参照完整性1)外码和参照关系设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码相对应,则称F是R的外码,并称R为参照关系,S为被参照关系或目标关系。,例如,“基层单位数据库”中有“职工”和“部门”两个关系,其关系模式如下:职工(职工号,姓名,工资,性别,部门号);部门(部门号,名称,领导人号).其中:主码用下划线标出,外码用曲线标出。,再例,在学生课程库中,关系模式表示为:学生(学号,姓名,性别,专业号,年龄);课程(课程号,课程名,学分);选修(学号,课程号,成绩).其中:主码用下划线标出。,2)参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。,3用户定义的完整性。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。,3.2关系代数,1)集合运算符:(并运算),(差运算),(交运算),(广义笛卡儿积)。2)专门的关系运算符:(选择),(投影),(连接),(除)。3)比较运算符:(大于),(大于等于),(小于),(小于等于),(等于),(不等于)。4)逻辑运算符:(非),(与),(或)。,3.2.1传统的集合运算,设关系R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1.并(Union)运算RS=t|tRtS.R和S并的结果仍为n目关系,其数据由属于R或属于S的元组组成。2.差(Difference)运算RS=t|tRtS.R和S差运算的结果关系仍为n目关系,其数据由属于R而不属于S的所有元组组成。,3.交(Intersection)运算RS=t|tRtS.运算的结果关系仍为n目关系,其数据由既属于R同时又属于S的元组组成。交可用差来表示:RS=R(RS).,4.笛卡儿积运算设n目和m目的关系R和S,它们的笛卡儿积是一个(n+m)目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有k1k2个元组。R和S的笛卡儿积表示为:RS=trts|trRtsS.,传统集合运算的实例,RSRS,RSRS,3.2.2专门的关系运算,1.记号说明(1)关系模式、关系、元组和分量设关系模式为R(A1,A2,An),它的一个关系设为R,tR表示t是R的一个元组,tAi则表示元组t中相对于属性Ai的一个分量。(2)域列和域列非若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列,tA=tAi1,tAi2,tAik表示元组t在属性列A上诸分量的集合。A则表示A1,A2,,An中去掉Ai1,Ai2,Aik后剩余的属性组,它称为A的域列非。,(3)元组连串(Concatenation)设R为n目关系,S为m目关系,且trR,tSS,则trtS称为元组的连串。连串是一个(n+m)列的元组,它的前n个分量是R中的一个n元组,后m个分量为S中的一个m元组。,(4)属性的象集(ImagesSet)给定一个关系R(X,Z),X和Z为属性组。定义当tX=x时,x在R中的象集为:Zx=tZ|tR,tX=x.上式表示,x在R中的象集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值应为x。,2.专门关系运算的定义,(1)选择(Selection)运算选择运算又称为限制运算。选择运算指在关系R中选择满足给定条件的元组,记作:F(R)=t|tRF(t)=真.其中:F表示选择条件,是一个逻辑表达式,取值为“真”或“假”。F由逻辑运算符(非)、(与)和(或)连接各条件表达式组成。条件表达式的基本形式为:X1Y1.其中:是比较运算符,它可以是、中的一种;X1和Y1是属性名、常量或简单函数;属性名也可以用它的序号来代替。,用关系代数表示下列操作,设学生课程数据库,其关系模式为:学生(学生,姓名,年龄,所在系);课程(课程号,课程名,学分);选课(学号,课程号,成绩).,【例3-1】用关系代数表示在学生课程数据库中查询计算机系的全体学生的操作。所在系=计算机系(学生),【例3-2】用关系代数表示在学生课程数据库中查询年龄小于20岁的学生的操作。年龄20(学生),(2)投影(Projection)运算关系R上的投影是从R中选择出若干属性列组成新的关系,记作:A(R)=tA|tR.,【例3-3】在学生课程数据库中,查询学生的姓名和所在系。表示为:姓名,所在系(学生),(3)连接运算,连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:RS=trts|trRtsStrAtsB.AB其中:A和B分别为R和S上度数相等且可比的属性组,是比较运算符。等值连接表示为:RS=trts|trRtsStrAtsB.A=B自然连接是一种特殊的等值连接:RS=trts|trRtsStrAtsB,【例3-4】设学生和选课关系中的数据如下,学生与选课之间的笛卡儿积、等值连接和自然连接的结果如表所示。,学生选课,学生选课,学生选课学生.学号=选课.学号,学生选课,(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)Yx.其中的Yx为x在R中的象集,x=trX。关系除法运算分下面4步进行:1)将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性。2)在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。3)将被除关系分组,原则是,结果属性值一样的元组分为一组。4)逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。,【例3-5】给出选课、选修课和必修课3个关系,它们的关系模式为:选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名).,选课必修课学号,课号(选课)必修课,3.2.3用关系代数表示检索的例子,学生选课库的关系模式为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩).【例3-6】求选修了课程号为“C2”课程的学生学号。学号(课程号=C2(选课)【例3-7】求选修了课程号为“C2”课的学生学号和姓名。学号,姓名(课程号=C2(选课学生)【例3-8】求没有选修课程号为“C2”课程的学生学号。学号(学生)-学号(课程号=C2(选课)本题不能写为:学号(课程号C2(选课),用关系代数表示检索的例子,【例3-9】求既选修“C2”课程,又选修“C3”课程的学生学号。学号(课程号=C2选课)学号(课程号=C3(选课)该题不能写为:学号(课程号=C2课程号=C3(选课)【例3-10】求选修课程号为“C2”或“C3”课程的学生学号。学号(课程号=C2(选课)学号(课程号=C3(选课)或学号(课程号=C2课程号=C3(选课)【例3-11】求选修了全部课程的学生学号。学号,课程号(选课课程)【例3-12】一个学号为“98002”的学生所学过的所有课程可能也被其他学生选修,求这些学生的学号和姓名。学号,姓名(学号,课程号(选课)课程号(学号=98002(选课)(学生),
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!