第章关系数据库.ppt

上传人:本田雅阁 文档编号:3139900 上传时间:2019-07-16 格式:PPT 页数:75 大小:2.40MB
返回 下载 相关 举报
第章关系数据库.ppt_第1页
第1页 / 共75页
第章关系数据库.ppt_第2页
第2页 / 共75页
第章关系数据库.ppt_第3页
第3页 / 共75页
第章关系数据库.ppt_第4页
第4页 / 共75页
第章关系数据库.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《第章关系数据库.ppt》由会员分享,可在线阅读,更多相关《第章关系数据库.ppt(75页珍藏版)》请在三一文库上搜索。

1、第2章 关系数据库,2.1 关系模型及其定义 2.2 关系的3类完整性约束 2.3 关系代数,2.1.1 关系中的基本术语, 关系:简单理解一个关系就是一张二维表,包含若干个元组。 元组:表中的一行即为一个元组。 属性:表中的列称为属性。(有时也称为字段) 域:属性的取值范围。 关系模式:对关系的描述。 例如: R(sno, sname, sex, birthday, class),2.1.1 关系中的基本术语, 候选键(或候选关键字,或称候选码) 是属性或属性组合,其值可以唯一的标识一个元组。 主键(或主关键字) 如果有多个候选键,选择其中一个作为主键。 主属性 包含在候选键中的各个属性。

2、全码 所有属性都是这个关系模式的候选码。 外键(或外关键字) 如果关系R2的一个或一组属性X是另一关系R1的主键,则X称为外键。,2.1.2 关系的数学定义,1. 域 域是一组具有相同数据类型的值的集合。 例如:自然数、实数、长度小于25字节的字符串集合等等。,2. 笛卡尔积 设定一组域D1,D2,Dn,这些域中可以存在相同的域,定义D1,D2,Dn的笛卡尔积为: 笛卡尔积可以表示为一个二维表。表中的每行对应一个元组,每列对应一个域。,如D1=0,1,D2=a,b,c 则,笛卡尔积,例题 若A=,B=1,2,3, 求AB, BA,AA,BB,AB=,1,2,3, ,1,2,3 BA=1,1,2

3、,2, 3,3, AA=, BB=1,1,1,2,1,3, 2,1,2,2,2,3, 3,1,3,2,3,3 笛卡儿积的运算性质,一般不能交换 .,例如:给出3个域: D1 导师集合 李清,刘涛 D2 专业集合 计算机专业,管理工程专业 D3 研究生集合 李华,杨敏,刘颖 则D1,D2,D3的笛卡尔积为?,2.1.2 关系的数学定义,该笛卡尔积共有 D1D2D312 个元组,可以列成一张表。,表2-1,2.1.2 关系的数学定义,3. 关系 笛卡尔积D1D2Dn的任一个子集称为D1,D2,Dn上的一个n元关系。表示为:R(D1, D2, , Dn)。 其中R表示关系名,n是关系的度或目 例如:

4、可以在表3-1的笛卡尔积中取出一个子集来构造一个关系。一个研究生只师从于一个导师,学习某一个专业。从中取出有实际意义的元组来构造关系,并将关系取名为SAP。这个关系可以表示为: SAP(导师,专业,研究生),2.1.2 关系的数学定义,假设导师与专业是一对一的,即一个导师只有一个专业,导师与研究生是一对多,即一个导师可以带多名研究生,而一名研究生只有一个导师,则SAP关系可以包含3个元组,如下表:,表2-2,2.1.2 关系的数学定义,4. 关系的性质 (1) 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。,2.1.2 关系的数学定义,4. 关系的性质 (2) 不同的列可出自同一

5、个域,其中的每一列称为一个属性,要给予不同的属性名。,姓名2 曾用名,2.1.2 关系的数学定义,4. 关系的性质 (3) 列的顺序无所谓,即列的次序可以任意交换,也称属性无序性。,关系性质3属性无序,2.1.2 关系的数学定义,4. 关系的性质 (4) 任意两个元组不能完全相同。,2.1.2 关系的数学定义,4. 关系的性质 (5) 行的顺序无关紧要,即行的次序可以任意交换,称为元组无序性。,2.1.2 关系的数学定义,4. 关系的性质 (6) 所有属性值都是原子,不允许属性又是一个二维关系。,关系性质6分量是原子,非规范化关系,规范化关系,关系,关系可以有三种类型: 基本表是实际存在的表,

6、它是实际存储数据的逻辑表示。 查询表是查询结果对应的表。 视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,2. 2 关系的3类完整性约束,(1)实体完整性规则 关系中主码的值不能为空或部分为空。 (2)参照完整性规则 参照完整性规则就是定义外码与主码之间的引用规则。 (3)用户定义的完整性 指用户对某一具体数据指定的约束条件进行检验。,2. 2 关系的3类完整性约束,不允许为空值或重复值,一个错误的引用(不存在15),允许为空值,传统的集合运算是二目运算,是在两个关系中进行的。但是并不是任意的两个关系都能进行这种集合运算,而是要在两个满足一定条件的关系中进行运算。那么,对

7、关系有什么要求呢? 设给定两个关系R、S,若满足: 具有相同的度n; R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。 除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。,2.3 关系代数,2.3.1 传统的集合运算,1. 并(Union) 关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作: RS=t|tRtS 对于关系数据库,记录的插入 和添加可通过并运算实现。,2.3.1 传统的集合运算,2.3.1 传统的集合运算,2. 差(Difference) 关系R与关系S的差由属于R而不属于

8、S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作: R-S=t|tRtS 通过差运算,可实现关系数据库 记录的删除。,3. 交(Intersection) 关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作: RS=t|tRtS,2.3.1 传统的集合运算,4. 广义笛卡尔积(Extended Cartesian Product) 两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,

9、则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作 RS=trts| trR,tsS 关系的广义笛卡尔积可用于两关系的连接操作,2.3.1 传统的集合运算,广义笛卡儿积运算实例,随堂练习,设有关系R、S,计算R1=R-S、R2=RS、R3=RS、R4=RS,R,S,由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。 (选择) (投影) (连接) (除),2.3.2 专门的集合运算,概念,设关系模式R(A1,A2,An),它的一个关系是R。tR表示t是R的一个元组。tAi则表示元组t相对于属性Ai的一个分量。 若A=Ai1,Ai2,Aik

10、,其中 Ai1,Ai2,Aik 是A1,A2,An 中的一部分,则A称为属性列或域列。A则表示在 A1,A2,An 中去掉 Ai1,Ai2,Aik 后剩余属性组。TA=tAi1,tAi2,tAik。 两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。 给定一个关系R(X,Z),其中X和Z为属性组,定义当tX=x时,x在R中的像集为 Zx=tZ|t R, tX=x。表示R中在属性组X上值为x的各元组在Z分量上的集合。,样板数据库(学生-课程数据库),选择,条件可用命题公式(即计算机语言中的条件表达式)F表示。关系

11、R关于公式F的选择运算用F(R)表示,形式定义如下:F(R) t | tR F(t)= true 其中为选择运算符,F(R)表示从R中挑选满足公式F为真的元组所构成的关系。这是从行的角度进行的运算。,选择,例如:在关系S1中找出所有“男生”的数据。 关系代数为: 性别=“男”(S1) SELECT S1 WHERE 性别=“男”,2.3.2 专门的集合运算,F为选取的条件,由运算对象(属性名、常数、简单函数)、算术比较运算符( ,=,)和逻辑运算符( )连接起来的逻辑表达式,结果为逻辑值“真”或“假”。,例子1:查询信息系全体学生,sdept=“IS” (student),5=“IS” (st

12、udent),或,2.3.2 专门的集合运算,选择运算是从关系R中选取使逻辑表达式F为真的元组,实际上是从行的角度进行的运算。,2.3.2 专门的集合运算选择,从关系中找出满足给定条件的所有元组称为选择. 选择运算是根据某些条件对关系做水平分割,即选取符合条件的元组。 其中的条件是以逻辑表达式给出. 经过选择运算得到的结果元组可以形成新的关系,其关系模式不变,但其中元组的数目小于等于原来的关系中元组的个数.,例子1,已知关系R和S, 求,2.3.2 专门的集合运算,2. 投影在关系R中求指定的由若干个属性组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列。

13、关系R的投影运算用X(R)表示,形式定义如下:x(R) t X| tR 其中x为R的属性列。 X的属性序号是对应属性在关系中的顺序编号. 投影之后不仅取消了原关系中的某些列,而且取消完全相同的元组。,2.3.2 专门的集合运算,从定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。,2.3.2 专门的集合运算,例子2:查询学生的姓名和所在的系,sname,sdept(student),2,5(student),或,投影运算可以改变关系的属性次序,例子2,已知关系R和S, 求,连接,在数学上,可以用笛卡尔积建立两个关系间的连接,但这样的得到的关系数据冗余度大,在实际应

14、用中一般两个相互关联的关系往往需要满足一定的条件,使所得的结果一目了然。这就是我们要讲的连接运算。,连接,连接是将两个关系的属性名拼接成一个更宽的关系. 生成新的关系中包含满足连接条件的元组. 运算过程是通过连接条件来控制的,连接是对关系的结合.,连接,连接也称为联接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组组成新的关系。关系R和S的连接运算形式定义如下: tt = trR tsS trA tsB 其中A和B分别为关系R和S上度数相同且可比的属性组。,2.3.2 专门的集合运算,一般的连接操作是从行的角度进行运算。,例子3,已知关系R和S,求,例子3(续),2.3.2 专门的集合

15、运算,连接举例:求 R S, R S,2=1,R,S,32,连接,1) 等值连接(Equi-jion):等值连接即将连接中的换成“=”,功能是从关系R和S的笛卡尔积中选取A,B属性值相等的那些元组。它的形式定义为: tt = trR tsS trAtsB ,例子,已知 求,例子,连接,2) 自然连接(Natural-jion):自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中将重复的属性去掉。它的形式定义为: tt = trR tsS trBtsB ,例子,已知 求,例子,连接,连接运算一般是从行的角度进行的操作, 但自然连接是同时从行和列的角度进

16、行的操作。,关系R与S,求:R和S的大于连接(CD); R和S的等值连接(C=D);R和S的等值连接 (R.B=S.B);R和S的自然连接。,例子4,R,S,大于连接(CD) 等值连接(C=D),例子4(续),等值连接(R.B=S.B) 自然连接,例子4(续),等值连接与自然连接的区别: 1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。 2. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。,2.3.2 专门的集合运算,2.3.2 专门的集合运算,外连接 如果把舍弃的元组

17、也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。 左外连接 如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接 如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。,2.3.2 专门的集合运算,下图是例4中关系R和关系S的全外自然连接,(a) 全外自然连接,2.3.2 专门的集合运算,(b) 左外自然连接,图(b)是例4中关系R和关系S的左外连接,图(c)是右外连接,(c) 右外自然连接,4. 除记为RS。 除法运算是二目

18、运算,设有关系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。,2.3.2 专门的集合运算,2.3.2 专门的集合运算,除操作是同时从行和列角度进行运算,象集,tX=(a1,b1)的象集,tX=(a1,b2) 的象集,tX=(a4,b5) 的象集,X,Z,R,Zx=tZ|tR,tX=x,Zx,除,X,

19、Y,=,Y,R上分量值X 的象集Yx包含S在Y上的投影,除运算实例,=,选课,必修课,选择了所有必修课表中的课程的学生的学号和成绩,例子5,求 RS,随堂练习,R,S,求 RS,关系代数查询表达式,1、设教学数据库中有3个关系: 学生关系S(SNO,SNAME,AGE,SEX) 学习关系SC(SNO,CNO,GRADE) 课程关系C(CNO,CNAME,TEACHER) (1) 检索学习课程号为C2的学生学号与成绩 (2) 检索学习课程号为C2的学生学号与姓名 (3) 检索选修课程名为MATHS的学生学号与姓名,关系代数查询表达式,用关系代数表达式来表示查询的步骤 确定最后结果中所要的字段(投

20、影) 从最后结果和已经的条件分析该查询所涉及的关系集合 确定各关系之间的连接条件和选择条件(连接 、选择),关系代数查询表达式,(4) 检索选修课程号为C2或C4的学生学号 (5) 检索至少选修课程号为C2和C4的学生学号 (6) 检索不学C2课的学生姓名与年龄 (7) 检索学习全部课程的学生姓名 (8) 检索所学课程包含S3所学课程的学生学号 (9) 将新课程元组(C10,PHYSICS,YU)插入到关系C中 (10) 将学号S4选修课程号为C4的成绩改为85分,关系代数查询表达式,2、设有三个关系:学生关系S(S,SNAME,AGE,SEX,CLASS);学习关系SC(S,C,GREADE);课程关系C(C,CNAME,TEACHER) 1.检索96011班的男同学的学号和成绩 2.检索至少选修两门课的学生学号 3.检索男同学不学的课程的课程号 4.检索选修课程包含李老师所授全部课程的学号,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1