【数据库技术】关系模型.ppt

上传人:marr****208 文档编号:149515373 上传时间:2020-10-27 格式:PPT 页数:55 大小:444.50KB
返回 下载 相关 举报
【数据库技术】关系模型.ppt_第1页
第1页 / 共55页
【数据库技术】关系模型.ppt_第2页
第2页 / 共55页
【数据库技术】关系模型.ppt_第3页
第3页 / 共55页
【数据库技术】关系模型.ppt_第4页
第4页 / 共55页
【数据库技术】关系模型.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《【数据库技术】关系模型.ppt》由会员分享,可在线阅读,更多相关《【数据库技术】关系模型.ppt(55页珍藏版)》请在金锄头文库上搜索。

1、1,第3章 关系模型(1),本章主要讲述: 关系模型的数据结构 关系的定义和性质 关系数据库的基本概念 关系运算,2,3.1 关系数据库的结构3.1.1 关系模型,关系模型就是用二维表格结构来表示实体及实体之间联系的模型。即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。 例如,教学数据库中教师与课程的关系模型如图3.1所示。 教师关系,3,课程关系C 授课关系SC 图3.1 教师课程数据库的关系模型 从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如: 教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。 而课程关系和授课关系有公共的属性“课程号”,则

2、表明这两个关系也有联系。,4,3.1.2 关系的定义,1、 域(Domain) 域是一组具有相同数据类型的值的集合,又称为值域(用D表示) 。关系中用域表示属性的取值范围。例如整数、实数、字符串的集合。 域中所包含的值的个数称为域的基数(用m表示)。 例如: D1=李力,王平,刘伟 m1=3 D2=男,女 m2=2 D3=47,28,30 m3=3 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。,5,2、 笛卡尔积(Cartesian Product) 给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔

3、积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。 由定义可以看出,笛卡尔积也是一个集合。 其中: 元素中的每一个di叫做一个分量(Component),来自相应的域(diDi) 每一个元素(d1,d2,d3,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如: (1,2,3)(2,3,1)(1,3,2)。,6,Di中的集合元素个数称为Di的基数,用mi(i=1,2,n)表示,则笛卡尔积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之积,即 M= 例如:上述表示教师关系中姓名

4、、性别两个域的笛卡尔积为: D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女) 其中: (李力,男),(李力,女)等是元组 其基数M=m1m2=3*2=6 元组的个数为6,7,笛卡尔积可用二维表的形式表示。 例如,上述的6个元组可表示成表3.2。 表3.2 D1和D2的笛卡尔积 由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。,8,3、 关系(Relation) 笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系(Relation

5、),可用R(D1,D2Dn)表示 如上例D1D2笛卡尔积的子集可以构成教师关系T1,如下表: 表3.3 教师关系T1,9,几点说明: R为关系名,n称为关系的目或度(Degree)。 当n=1时,称为单元关系,当n=2时,称为二元关系。当n=n时,称为n元关系。如上例为二元关系,关系名为T1。 数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。例如在表3.2中选取一个子集构成如下关系,显然不符合实际情况,表3.4 不符合实际意义的关系,10,尽管关系与二维表格是非常类似的,但它们之间又有重要的区别。 关系具有如下特性: 1. 关系中不允许出现相同的元组。 2.

6、关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。 关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。 4. 同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。 5. 关系中各个属性必须有不同的名字,不同的属性可来自同一个域。,3.1.3 关系的性质,11,例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域,职业教师,工人,辅导员。,表3.5 关系,12,6. 关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。满足此条件的关系称为规范化关

7、系,否则称为非规范化关系。 例如,在表3.6中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表3.7所示。 表3.6 表3.7,13,候选键与关系键 主属性与非码属性 主属性:包含在主码中的的各属性称为主属性。 非码属性:不包含在任何候选码中的属性称为非码属性。 在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。,3.1.4 关系的键,14,外部关系键 如果关系R2的一个或一组属性X不是R2的主码,而是另一关系

8、R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码(Foreign key)。并称关系R2为参照关系,关系R1为被参照关系。 例如 学生(学号,姓名,系名),系(系名,地址,系主任),则属性“系名”为学生关系模式的外码,称学生为参照关系,系为被参照关系。,15,3.2 关系代数,关系代数的运算对象是关系,运算结果也是关系,关系代数用到的运算符主要包括四类: 集合运算符:(并),(交), -(差), X(广义笛卡尔积); 专门的关系运算符:(选择),(投影),(连接),*(自然连接),(除); 算术比较运算符:(大于),(大于等于),(小于),(小于等于),=(等于),(不等于); 逻

9、辑运算符:(与),(或),(非),16,关系代数的运算按运算对象的不同主要分为两类: 传统的集合运算:把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括并、差、交和笛卡尔积等运算。 专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和除法等运算。 同时,根据运算对象的个数还可以分为: 一元运算:只对一个关系进行运算。例如:选取、投影、命名运算。 二元运算:对两个关系进行运算。例如:并、差、交和笛卡尔积等运算,17,3.2.1 传统的集合运算 1. 并(Union) 关系R和关系S的并

10、由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作: RS=t|tRtS 对于关系数据库,记录的插入和添加可通过并运算实现。 2. 差(Difference) 关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作: R-S=t|tRtS 通过差运算,可实现关系数据库记录的删除。,18,3. 交(Intersection) 关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作: RS=t|tR tS 如果两个关系没有

11、相同的元组,那么它们的交为空。 两个关系的并和差运算为基本运算(即不能用其他运算表达的运算),而交运算为非基本运算,交运算可以用差运算来表示: RS=R-(R-S),19,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 关系的广义笛卡尔积可用于两关系的连接操作(连接操作将在一节中介绍)来实现。,20,【例3.1】

12、 如图3.8(a)、(b)所示的两个关系R与S为相容关系,(c)为R与S 的并,(d)为R与S的交,(e)为R与S的差,(f)为R与S的广义笛卡尔积。 R S (a) (b),21,RS R-S (c) (d) RS (e),22,RS,(f) 图3.8 传统的集合运算,23,3.2.2 专门的关系运算 由于传统的集合运算,只是从行的角度进行,但是要灵活地实现关系数据库多样的查询操作,就必须引入专门的关系运算。 引入几个概念: (1)设关系模式为R(A1,A2,An),它的一个关系为R,tR表示t是R的一个元组,tAi则表示元组t中相应于属性Ai的一个分量。,24,(2)R为n目关系,S为m目

13、关系,trR, tsS,trts称为元组的连接,它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。 (3)给定一个关系R(X,Z),X和Z为属性组,定义当tX=x时,x在R中的象集为Zx=tZ|tR,tX=x,它表示R中的属性组X上值为x的诸元组在Z上分量的集合。,25,1. 选择(Selection) 选择运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作: F(R)=t|tRF(t)为真 其中,为选取运算符,F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符( ,=,)和逻辑运算符( )连接起来的逻辑表达

14、式,结果为逻辑值“真”或“假”。 选取运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。,26,例3.2 查询计算机系的全体学生。 department_name=“计算机系”(student)或 3=计算机系 (student)(其中3为department_name的属性序号) 结果教材P53图3.9所示。 例3.3 查询学号大于“s000004”的学生信息。 student_number“s000004”(student) 例3.4 查询计算机系的查询学号大于“s000004”的学生信息。 department_name=“计算机系” student_number

15、” s000004” (student),27,2. 投影(Projection) 投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作: A(R)=tA|tR 其中A为R中的属性列,为投影运算符。 从其定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。,28,例3.5 查询学生的学号及姓名。 student_number ,student_name(student)或

16、1,2(student) 结果如教材P54图3.10图所示。 例3.6 查询出计算机系的学生姓名。 student_name (department_name=“计算机系”(student),29,由例3.6 可以看出,投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也可能减少。,30,课堂练习3.2: 下图给出了教学数据库的关系模型及其实例,包含五个关系:教师关系T、学生关系S、课程关系C、选课关系SC和授课关系TC,分别对应五张表,请完成以下操作: 查询计算机系的全体学生; 查询工资高于1000元的男教师; 查询教师的姓名及其职称; 查询教师关系中有哪些系; 查询讲授C5课程的教师号。,31,T(教师表),32,S(学生表),33,C(课程表),34,SC(选课表) TC(授课表),35,课堂练

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号