收藏 分享(赏)

5.4关系模型与关系代数.ppt

上传人:11xg27ws 文档编号:6938100 上传时间:2019-04-28 格式:PPT 页数:66 大小:926KB
下载 相关 举报
5.4关系模型与关系代数.ppt_第1页
第1页 / 共66页
5.4关系模型与关系代数.ppt_第2页
第2页 / 共66页
5.4关系模型与关系代数.ppt_第3页
第3页 / 共66页
5.4关系模型与关系代数.ppt_第4页
第4页 / 共66页
5.4关系模型与关系代数.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、2019/4/28,1,5.4 关系模型和关系代数 5.4.1 关系模型,关系模型就是用二维表格结构来表示实体及实体之间联系的模型。 关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。 教师关系课程关系C 授课关系SC,2019/4/28,2,从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如: 教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。 而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。 至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元组之间才有联系。,2019/4

2、/28,3,由上例可以看出,在一个关系中可以存放两类信息: 一类是描述实体本身的信息 一类是描述实体(关系)之间的联系的信息 在层次模型和网状模型中,把有联系的实体(元组)用指针链接起来,实体之间的联系是通过指针来实现的。 而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。 所以,在建立关系模型时,只要把的所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。 如上例中的教师课程数据库的关系模型就是这样建立的。,2019/4/28,4,5.4.2 关系的性质,尽管关系与二维表格、传统的数据文件是非常类似的,

3、但它们之间又有重要的区别。 严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性:1. 关系中不允许出现相同的元组。,2019/4/28,5,2. 关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。,2019/4/28,6,3. 关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。 例如:关系T1作如下交换时,无任何影响,2019/4/28,7,而作如

4、下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表:,2019/4/28,8,4. 同一属性名下的各个属性值必须来自同一个域:是同一类型的数据。5. 关系中各个属性必须有不同的名字:不同的属性可来自同一个域,即它们的分量可以取自同一个域。,2019/4/28,9,例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。,2019/4/28,10,6. 关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。 满足此条件的关系称为规范化

5、关系,否则称为非规范化关系。,2019/4/28,11,例如,在表1中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表2所示。,2019/4/28,12,5.4.3 关系的码,一、候选码与主码 能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选码(Candidate Key),也称候选键。如 “学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选码。 在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。,2019/4/28,13,2019/

6、4/28,14,下面给出候选码的形式化定义: 设关系R有属性A1,A2,An,其属性集K=(Ai,Aj,Ak),当且仅当满足下列条件时,K被称为候选码:1. 唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。2.最小性(Minimally):组成关系键的属性集(Ai,Aj,Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质例如:“学生关系”中的每个学生的学号是唯一的,“选课关系”中“学号+课程号” 的组合也是唯一的。对于属性集“学号+课程号” 去掉任一属性,都无法唯一标识选课记录。,2019/4/28,15,如果一个关系中有多个候选码,可以从中选择

7、一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主码(Primary Key),或称为主键、关键字。 例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。 主码是关系模型中的一个重要概念。每个关系必需选择一个主码,选定以后,不能随意改变。每个关系必定有且仅有一个主码,因为关系的元组无重复,至少关系的所有属性的组合可作为主码。,2019/4/28,16,二、主属性与非主属性,主属性(Prime Attribute):包含在主码中的的各属性称为主属性。 非主属性(Non-Prime Attribut

8、e):不包含在任何候选码中的属性称为非码属性。 在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。 在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。,2019/4/28,17,下面是一个全码的例子:,假设图书馆有借书关系TCS,分别有三个属性读者编号(T)、图书编号(C)和借阅时间(S)。 在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。,2019/4/28,18,三、外码(Foreign key),如果关系R2的一个或一组属性X不是R2的

9、主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码或外部关系键。并称关系R2为参照关系(referencing relation),关系R1为被参照关系(referenced relation)。,2019/4/28,19,因此,“学号” 属性是选课关系的外码。 学生关系为被参照关系 选课关系为参照关系,2019/4/28,20,由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。 如选课关系中的“学号”与学生关系的主码“学号”定义在同一个域上。,2019/4/28,21,关系数据库(Relation Database),其型是关系模式的集合,即数据库

10、描述 其值是某一时刻关系的集合例如教学数据库中,共有五个关系,其关系模式分别 学生(学号,姓名,性别,年龄,系别) 教师(教师号,姓名,性别,年龄,系别) 课程(课程号,课程名,课时) 选课(学号,课程号,成绩) 授课(教师号,课程号),2019/4/28,22,在每个关系中,又有其相应的数据库的实例 例如:与学生关系模式对应的数据库中的实例有如下6个元组:,2019/4/28,23,四、关系模型的完整性,为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性: 实体完整性 参照完整性 用户定义的完整性,2019/4/28,2

11、4,域完整性:规定了属性的值必须是域中的值,一个属性值能否为“空”由实际的应用语义决定 实体完整性:关系中的主关键字不能为空且主关键字的值不能相同,保证主关键字能唯一地标识关系中的每个元组 参照完整性:不允许引用数据库中不存在的外键数据,外键(或叫外部关键字)是指一个表中的某个属性是另一个表的主关键字。 应用语义完整性:保证数据库中的数据是有意义的 例如学生的年龄定义为两位整数,范围还太大,我们可以把年龄限制在1530岁之间:,2019/4/28,25,关系的完整性实例,修课表中不允许出现“学生”表中没有的学号,同时也不允许出现“课程”表中没有的课程号,修课表中“学号”的值是在学生表的“学号”

12、的值的子集。修课表中的“课程号” 的值也必须是课程表中“课程号”的子集。可以通过定义外键来实现,定义修课表中的学号是学生表的外键,修课表中的课程号是课程表的外键。注意是先有主关键字值,后有外键值,学生情况表,课程表,学生修课表,主关键字,2019/4/28,26,Relational Data Model 关系数据模型,2019/4/28,27,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,系统都应该支持这两类完整性。 除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是用户定义完整性。,2019/4/28,28,5.4.4 关系代数,关系模型与其

13、他模型相比,最有特色的是它的数据库语言。 这种语言灵活方便、表达能力和功能都很强。 目前关系数据库所使用的语言一般都具有定义、查询、更新和控制一体化的特点,而查询是最主要的部分。 所以说,关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。 因此,关系运算是设计关系数据语言的基础。 按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。,2019/4/28,29,一、 关系代数的分类及其运算符,关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。 它是由IBM在一个实验性的系统上实现的,称为ISBL(Inform

14、ation System Base Language)语言。 ISBL的每个语句都类似于一个关系代数表达式。,2019/4/28,30,关系代数的运算对象是关系,运算结果也是关系,关系代数用到的运算符主要包括四类: 集合运算符:(并),-(差),(交),X(广义笛卡尔积); 专门的关系运算符:(选择),(投影),(连接),*(自然连接),(除); 算术比较运算符:(大于),(大于等于),(小于),(小于等于),=(等于),(不等于); 逻辑运算符:(与),(或),(非),2019/4/28,31,关系代数的运算按运算符的不同主要分为两类:,传统的集合运算:把关系看成元组的集合,以元组作为集合中

15、元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括(并),-(差),(交),X(广义笛卡尔积);专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括(选择),(投影),(连接),*(自然连接),(除),2019/4/28,32,二、 传统的集合运算,传统的集合运算是二目运算 1. 并(Union) 关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作:RS=t|tRtS 对于关系数据库,记录的插入和添加可通过并运算实现。,2019/4/28,33,2019/4/28,

16、34,2. 差(Difference),关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R-S=t|tRtS 通过差运算,可实现关系数据库记录的删除。,2019/4/28,35,2019/4/28,36,3. 交(Intersection),关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:RS=t|tRtS 如果两个关系没有相同的元组,那么它们的交为空。 两个关系的并和差运算为基本运算(即不能用其他运算表达的运算),而交运算为非基本运算,交运算可以用差运算来

17、表示:RS=R-(R-S),2019/4/28,37,2019/4/28,38,4. 广义笛卡尔积(Extended Cartesian Product),两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作RS=trts| trR,tsS 关系的广义笛卡尔积可用于两关系的连接操作(连接操作将在一节中介绍)。,2019/4/28,39,广义笛卡儿积运算实例,2019/4/28,40,三、 专门的关系运算,由于传统的集合运算,只

18、是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。在讲专门的关系运算之前,为叙述上的方便先引入几个概念。(1)设关系模式为R(A1,A2,An),它的一个关系为R,tR表示t是R的一个元组,tAi则表示元组t中相应于属性Ai的一个分量。,2019/4/28,41,(2)若A=Ai1,Ai2,,Aik,其中Ai1,Ai2,Aik是A1,A2,,An中的一部分,则A称为属性列或域列,则表示A1,A2,,An中去掉Ai1,Ai2,,Aik后剩余的属性组。tA=tAi1,tAi2,tAik表示元组t在属性列A上诸分量的集合。 (3)R为n目关系,S为m目关系,trR,

19、tsS,trts称为元组的连接(concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。 (4)给定一个关系R(X,Z),X和Z为属性组,定义当tX=x时,x在R中的象集(image set),为Zx=tZ|tR,tX=x,它表示R中的属性组X上值为x的诸元组在Z上分量的集合。,2019/4/28,42,样板数据库(学生-课程数据库),2019/4/28,43,1. 选取(Selection),选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作: F(R)=t|tRF(t)为真 其中,为选取运算符,F

20、为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符( ,=,)和逻辑运算符( )连接起来的逻辑表达式,结果为逻辑值“真”或“假”。 选取运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。,2019/4/28,44,2019/4/28,45,2019/4/28,46,2. 投影(Projection),投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:A(R)=tA|tR 其中A为R中的属性列,为投影运算符。 从其定义可看出,投影运算是

21、从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。,2019/4/28,47,2019/4/28,48,投影运算可以改变关系的属性次序,2019/4/28,49,例4 查询教师关系中有哪些系,SNO(SC) 结果如右图所示 由例4可以看出,投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。,2019/4/28,50,例2.8 查询选项了1课程的学生号,SNO(CNO=1(SC)结果如右图所示。 本例中选取运算和投影运算相

22、结合,先在选课表中选取满足条件的元组,再于SNO属性上进行投影。,2019/4/28,51,3. 连接(Join),连接运算是二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。 设关系R(A1,A2,An)及S(B1,B2,Bm),连接属性集X包含于A1,A2,An,及Y包含于B1,B2,Bm,X与Y中属性列数目相等,且相对应属性有共同的域。若Z=A1,A2An/X (/X:去掉X之外的属性) 及W=B1,B2Bm/Y,则 R及S可表示为R(Z,X),S(W,Y),2019/4/28,52,关系R和S在连接属性X和Y上的连接,就是以RS笛卡尔积中,选取X属性列上的分量与Y

23、属性列上的分量满足给定比较条件的那些元组,也就是在RS上选取在连接属性X,Y上满足条件的子集,组成新的关系。新关系的度为n+m。,2019/4/28,53,记作: RS=t rts |trRtsStrXtsY为真XY 其中,是连接运算符,为算术比较运算符,也称连接; XY为连接条件; 为“=”时,称为等值连接; 为“”时,称为大于连接。 连接运算为非基本运算,可以用选取运算和广义笛卡尔积运算来表示: RS=xy(RS),2019/4/28,54,在连接运算中,一种最常用的连接是自然连接。 所谓自然连接就是在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如

24、果R与S具有相同的属性组Y,则自然连接可记作: R*S=t rts |trRtsStrY=tsY 自然连接是在广义笛卡尔积RS中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。,2019/4/28,55,例2.9 如图2.9(a)、(b)所示的两个关系R与S,(c)为R和S的大于连接(CD),(d)为R和S的等值连接(C=D),(e)为R和S的等值连接(R.B=S.B),(f)为R和S的自然连接。R S(a) (b),2019/4/28,56,大于连接(CD) 等值连接(C=D)(c) (d),2019/4/28,57,等值连接(R.B=S.B) 自然连接 (e)

25、 (f)图2.9 连接运算举例,2019/4/28,58,结合上例,我们可以看出等值连接与自然连接的区别:1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。如上例R中的C列和S中的D列可进行等值连接,但因为属性名不同,不能进行自然连接。,2019/4/28,59,2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。如上例R中的B列和S中的B列进行等值连接时,结果有两个重复的属性列B,而进行自然连接时,结果只有一个属性列B。,2019/4/28,60,例2.10 查询讲授数

26、据库课程的教师姓名。 TN(CN=数据库(C)*TNO,CNO(TC)*TNO,TN(T)或 TN(TNO(CN=数据库(C)*TC)*TNO,TN(T) 结果如右图所示。,2019/4/28,61,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= t

27、rX。 除法运算为非基本运算,可以表示为: RS=x(R)x(x(R)SR),2019/4/28,62,除(Division),象集:给定一个关系R(X, Y),X和Y为属性组。当tX=x时,x在R中的象集为:Yx=tY| tR, tX=x 除:给定关系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=trX| trRy(S) Yx,2019/4/28,63,象集,(a1,b1)的象,(a1,b2)的象,(a4,b5)的象,X,Y,2019/4/28,64,除,X,Y,(a4,b5),=,Y,R上分量值X 的象集Yx包含S在Y上的投影,2019/4/28,65,关系除法运算的步骤,将被除关系属性分为象集属性和结果属性 对象集属性进行投影目标数据集 将被除关系分组:结果属性值一样的元组分为一组 找出结果集,2019/4/28,66,除运算实例,=,选课,必修课,选择了所有必修课表 中的课程的学生的学号和成绩,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报