数据库系统概论05届课件第3章.ppt
《数据库系统概论05届课件第3章.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论05届课件第3章.ppt(119页珍藏版)》请在三一办公上搜索。
1、,数据库系统概论An Introduction to Database System,广东科学技术职业学院,2,第三章 关系模型和关系运算,理解:关系模型的基本概念。熟练掌握:ODL设计转换为关系设计。熟练掌握:E/R图设计转换为关系设计。熟练掌握:用关系代数表达式表达查询要求。基本掌握:用关系演算表达式表达查询要求。基本掌握:用关系逻辑表达式(数据逻辑规则)表达查询要求。,3,第三章 关系模型和关系运算,3.1 关系模型的基本概念3.2 从ODL设计到关系设计3.3 从E/R图到关系设计3.4 关系代数3.5 关系演算3.6 关系逻辑,4,3.1 关系模型的基本概念,系统而严格地提出关系模型
2、的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“A Relational Model of Data for Large Shared Data Banks”,Communication of the ACM,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式,5,关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系操作集合关系完整性约束,3.1 关系模型的基本概念,6,1.关系数据结构,单一的数据结构-关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构-二维表
3、从用户角度,关系模型中数据的逻辑结构是一张二维表。,7,2.关系操作集合,1)常用的关系操作2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点,8,2.关系操作集合,1)常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的部分2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。,9,2.关系操作集合,3)关系数据语言的种类关系代数语言:用对关系的运算来表达查询要求关系演算语言:用谓词来表达查询要求具有关系代数和关系演算双重特点的语言典型代表:SQL,10,2.关系操作集合,4)关系数据语言的特点关系语言是一种高度非过程化的语
4、言存取路径的选择由DBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价,11,关系模型中的几个概念,属性:关系的标题栏中各列的名字。属性描述了该列各数据项的含义 模式:关系的名称和关系的属性集称为关系的“模式”,例如 Student(StudentNo,StudentName,Age,Dept)元组:除了关系的标题栏以外,其他各行统称为“元组”。通常一个元组就表示一个对象,而元组所属的关系就表示对象所属的类。例如,(990011,李明,19,计算机系)域:与关系的每个属性相关的特定基本类型,12,域(D
5、omain),域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合男,女介于某个取值范围的日期,13,第三章 关系模型和关系运算,3.1 关系模型的基本概念3.2 从ODL设计到关系设计3.3 从E/R图到关系设计3.4 关系代数3.5 关系演算3.6 关系逻辑,14,3.2 从ODL设计到关系设计,将ODL设计转换为关系设计主要要把握三个方面的内容:从ODL属性到关系属性;将ODL中的联系转换为关系;将ODL中的子类结构转换为关系。,15,3.2.1 从ODL属性到关系属性,若类的所有特性都是属性,而不是联系或者方法,并且属性都是原子类型。在这种情况
6、下,对类建立对应的关系,类的每个属性对应于该关系的一个属性。,16,3.2.2 非原子属性的表示,如果ODL中的属性是复杂的数据类型,如结构、集合等,在转化为关系模型时,需要将其转化为原子类型。有几种不同的情况:(1)组成结构的每个域本身都是原子类型的;(2)如果属性是多个值的集合,要针对每个值建立一个元组;(3)如果属性是定长的数组,可以在关系中用带有数组名和下标的属性来表示类中的数组类型的属性。,17,3.2.2 非原子属性的表示,interface Student Attribute integer StudentNo;Attribute struct NameType string F
7、irst,string Last StudentName;Attribute integer Age;Attribute string Dept;,18,3.2.2 非原子属性的表示,interface Student Attribute integer StudentNo;Attribute String StudentName;Attribute integer Age;Attribute Set Dept;转化为如下关系模型:注意其中定长数组类型属性的转换,19,3.2.3 单值联系的表示,类的特性除了属性,一般还包含与其他ODL的联系,通过建立相关类中构成键码的属性集就可以表示相关类的
8、对象,这个属性集的作用类似于指针。,20,3.2.3 单值联系的表示,例:interface Movie Attribute string Title;Attribute integer Year;Attribute integer Length;Attribute enum color,blackwhite FilmType;Relationship Set actors inverse Actor:movies;Relationship Studio ownedby inverse Studio:owns;interface Studio Attribute string Name;Att
9、ribute string Address;Relationship Set owns inverse Movie:ownedby;,21,3.2.3 单值联系的表示,在Movie类与Studio类之间具有单值联系,在Studio类中的键码是Name,可以在关系Movie的模式中增加一个属性StudioName,关系Movie如下:,22,3.2.4 多值联系的表示,对于多值联系(联系是某个类的聚集类型,表现为带有“Set”关键字),首先找出表示每个相关对象的键码,然后和表示集合类型的属性一样,为相关对象集合的每个元素建立一个元组。缺点:数据冗余大,23,3.2.4 多值联系的表示,例:int
10、erface Movie Attribute string Title;Attribute integer Year;Attribute integer Length;Attribute enum color,blackwhite FilmType;Relationship Set actors inverse Actor:movies;Relationship Studio ownedby inverse Studio:owns;interface Actor Attribute string Name;Attribute integer Year;Relationship Set movi
11、es inverse Movie:actors;,24,3.2.4 多值联系的表示,在Movie类与Actor类之间具有多值联系,在Actor类中的键码是Name,可以在关系Movie的模式中增加一个属性ActorName,关系Movie如下:,25,3.2.5 联系与反向联系的表示,联系与反向联系是从两个不同的角度说明一个事实,因此在转化为关系时,只需要保留一个即可 例如在关系Movie中,用ActorName来表示Movie类到Actor类的联系,那么在关系Actor中,就无需再建立电影名MovieTitle等属性来建立演员和电影类直接的联系了,26,3.2.6 ODL子类的表示,将ODL
12、子类转化为关系模式,需要遵循的原则是:1)每个子类都对应于一个关系;2)这个关系用相应子类的所有特性(包括从超类继承下来的全部特性)来表示。例:Cartoon类是Movie类的子类,它增加了一个与Actor类的联系voice,则Cartoon的关系模式是:,Cartoon(Title,Year,Length,FilmType,StudioName,ActorName,voice),27,第三章 关系模型和关系运算,3.1 关系模型的基本概念3.2 从ODL设计到关系设计3.3 从E/R图到关系设计3.4 关系代数3.5 关系演算3.6 关系逻辑,28,3.3 从E/R图到关系设计,E/R图与O
13、DL的主要区别:1)在E/R图中,联系作为独立的概念存在(框在菱形框中),而不是像ODL那样作为特性嵌套在类的定义中,这有助于避免数据冗余;2)在ODL中,属性可能是任意的聚集类型,比如集合;而在E/R图中,虽然并没有严格规定允许使用的数据类型,但通常都认为允许使用结构化的数据,而不允许使用集合或者其他聚集类型的数据。3)在E/R图中,联系可以具有属性,而ODL中没有相应的概念。,29,3.3.1 实体集到关系的转换,30,3.3.2 E/R联系到关系的转换,对于E/R图中的一个联系R,它所对应的关系具有如下特性:1)是联系R所涉及到的每个实体集的键码属性(集);2)是R本身的属性;3)如果属
14、性之间有重名现象,必须重新命名关系的属性。一个联系R涉及几个实体集,在将R转换为关系的时候,只要让R的属性包括与其相关的所有实体集的键码属性(集)和它本身的属性即可。,31,3.3.2 E/R联系到关系的转换,32,3.3.3“属于”联系到关系的转换,不为“isa”联系建立相应的关系,与“isa”联系有关的实体集都具有相同的键码。新建立的关系的属性包括被属于的实体集的键码及相应实体集的属性,33,Movie(Title,Year,Length,FilmType,StudioName,ActorName)Murder(Title,Year,Weapon)Cartoon(Title,Year)Vo
15、ice(Title,Year,Name),34,下课了。,休息一会儿吧。,35,第三章 关系模型和关系运算,3.1 关系模型的基本概念3.2 从ODL设计到关系设计3.3 从E/R图到关系设计3.4 关系代数3.5 关系演算3.6 关系逻辑,36,3.4 关系代数,一种抽象的查询语言,用对关系的运算来表达查询传统的集合运算 并、差、交、广义笛卡尔积专门的关系运算 选择、投影、连接、除,37,3.4 关系代数,集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作,3
16、8,关系代数运算符,3.4 关系代数,39,3.4 关系代数,关系代数运算符(续),40,3.4.1 关系的集合运算,并差交,41,1.并(Union),R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域RS 是R中的元素和S中的元素共同组成的集合 RS=t|t Rt S,42,R,S,RS,1.并(Union),43,1.并(Union),44,2.差(Difference),R和S具有相同的目n相应的属性取自同一个域R-S 只在R中出现,不在S中出现的元素组成的集合 R-S=t|tRtS,45,R,S,R-S,2.差(Difference),46,2.差(Differen
17、ce),差集RS,差集SR,47,3.交(Intersection),R和S具有相同的目n相应的属性取自同一个域RS由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S),48,R,S,R S,3.交(Intersection),49,3.交(Intersection),50,3.4.2 投影,投影运算符是,该运算作用于关系R将产生一个新关系S,S只具有R的某几个属性列。投影运算的一般表达式如下:S=A1,A2,An(R)S是投影运算产生的新关系,它只具有R的属性A1,A2,An所对应的列,51,2)投影操作主要是从列的角度进行运算投影之后不仅取消了原关系中的某些列,而且还可
18、能取消某些元组(避免重复行),3.4.2 投影,52,表1.Student,3.4.2 投影,53,例1 查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)查询结果:,3.4.2 投影,54,3.4.2 投影,例2 查询学生关系Student中都有哪些系 Sdept(Student)结果:,55,3.4.2 投影,例3,关系 R,对于关系R,StudentNo,StudentName(R)的结果是:,56,3.4.3 选择运算,选择运算符是,该运算符作用于关系R也将产生一个新关系S,S的元组集合
19、是R的一个满足某条件C的子集。选择运算的一般表达式为:S=C(R)S的模式与R的模式完全相同。C是我们所熟悉的条件表达式。,57,3.4.3 选择运算,例4,关系 R,对于关系R,Age19(R)的结果是:,58,3.4.4 笛卡儿积,两个关系R和S的笛卡尔积是一个新的关系,记作RS,其关系模式是R和S的模式的并集,R S是把R和S的元组以所有可能的方式组合起来,R S拥有的元组数量是R的元组数与S的元组数的乘积。,59,3.4.4 笛卡儿积,关系 R,关系S,R S,60,3.4.5 自然连接,两个关系R和S的自然连接,记作R S,得到的关系模式是R和S模式的并集。假设A1、A2、A3An
20、是R和S的模式中的公共属性,那么如果R的元组r和S的元组s在这些属性上的取值都相同,r和s组合而成的元组就归入R S,61,3.4.5 自然连接,对于上例中的关系R和S,R S为,关系R,关系S,注意:只有两个关系的元组在所有公共属性上的取值都相同时,才可以将他们的组合放入两个关系的自然连接中。,62,3.4.6 连接,关系R与关系S的基于C的连接首先作R和S的笛卡尔积,然后从RS的元组中选择满足条件C的元组集合。表现为:R c S,63,3.4.6 连接,对于上例中的关系R和S,R R.BS.B S为,关系R,关系S,64,3.4.7 改名,运算S(A1,A2,An)(R)用来把关系R改名为
21、关系S,同时把关系S的属性从左至右依次命名为A1,A2,An。假如我们只想改变关系名,不想改变关系模式中的属性名,那么用如下形式 S(R),65,3.4.7 改名,RS(X,C,D)(S),关系R,关系S,66,3.4.8 复合运算,将各种运算符组合,配合花括号表明运算的先后次序,可以完成功能强大的查询。,复合运算StudentName(Score80(Student SC))的结果是:,67,3.4.9 基本运算与导出运算,有的运算符可以由其他运算符来表达,例如下面几种表达:交集:RS=R(RS),R c S=C(RS),R S=L(C(RS),连接:,自然连接:,另外六种运算并、差、选择、
22、投影、笛卡尔积和改名都是基本运算,每一种都不能由另外五种运算导出。,68,下课了。,休息一会儿吧。,69,第三章 关系模型和关系运算,3.1 关系模型的基本概念3.2 从ODL设计到关系设计3.3 从E/R图到关系设计3.4 关系代数3.5 关系演算3.6 关系逻辑,70,3.5 关系演算,关系演算:把数理逻辑中的谓词演算应用到关系中,就是所谓的关系演算。在关系演算中,以元组为变量称为元组关系演算,而以域为变量,则称为域关系演算。关系代数中的8种运算都可用元组关系演算表达式来表达,用关系演算表达查询时,还常用到存在量词和全称量词。,71,3.5.1元组关系演算,一般形式为t|(t),其中t为元
23、组变量,(t)是以元组变量t为基础的公式。公式是递归定义的:(1)原子公式是公式。(2)假如1(t)和2(t)是公式,那么1,1 2,12也都是公式,它们为真的条件分别是:“1非真”,“1和2皆为真”,“1和2中至少有一个为真”。(3)假如是公式,那么(t)()和(t)()也都是公式,它们为真的条件分别是:“至少有一个元组t使得为真”,“所有的元组t都使为真”。其中为存在量词,为全称量词。若在变量前加上量词,则变量为约束变量。因此,我们称(t)()和(t)()中的t为约束变量。(4)只有按上述三个规则的有限次组合形式的才是公式。,72,3.5.1元组关系演算,原子公式有三种:(1)R(t),其
24、中R是关系名,t是元组变量,R(t)表示t是关系R的一个元组。(2)tisj,其中t和s是元组变量,是算术比较运算符(如、=等),tisj表示元组t的第I个分量与元组S的第j个分量满足关系,例如t1 s3表示t的第1个分量大于元组S的第3个分量。(3)tiC或Cti,其中C表示一个常量,其他含义同上。tiC表示t的第i个分量与常量C满足关系,例如t1 8表示t的第1个分量小于8。,73,3.5.1元组关系演算,在关系演算公式中,运算符的优先级为:(1)算术比较运算符优先级最高。(2)量词优先级次之,且的优先级高于(3)逻辑运算符优先级最低,且的优先级高于,的优先级高于。(4)若加括号,则括号内
25、优先。,74,3.5.1元组关系演算,关系S,关系R,t|R(t)S(t)的结果为:,t|(s)(R(t)S(s)t1=s1)的结果为:,t|(s)(R(t)S(s)t2s1)的结果为:,75,3.5.1元组关系演算,1.交 RS可以表示为t|R(t)S(t)2.并 RS可以表示为t|R(t)S(t)3.差 RS可以表示为t|R(t)S(t),76,3.5.1元组关系演算,4.选择 C(R)可以表示为t|R(t)C,其中C是C的等价条件,只是把C中的属性名在C中换成ti的形式,i代表属性对应的是元组的第几个分量 对于学生关系模式 Student(StudentNo,StudentName,Ag
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 05 课件
链接地址:https://www.31ppt.com/p-6578634.html