第2章-关系数据库0306 (1).ppt_第1页
第2章-关系数据库0306 (1).ppt_第2页
第2章-关系数据库0306 (1).ppt_第3页
第2章-关系数据库0306 (1).ppt_第4页
第2章-关系数据库0306 (1).ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统概论 An Introduction to Database System 第二章 关系数据库,1,关系数据库简介,关系数据库是支持关系模型的数据库系统,它应用数学方法处理数据库中的数据 将关系代数和关系演算用于数据库,提出关系模型的是美国IBM公司的E.F.Codd,1970年在美国计算机学会会刊Communication of the ACM上发表题为“A Relational Model of Data for Shared Data Banks”的论文。1981图灵奖 1971-1972年Codd系统提出了关系的第一、第二、第三范式 (第6章 关系数据理论) 1974年和Bo

2、yce提出了关系的BCNF范式 1976年Fagin提出第四范式,2,第二章 关系数据库,2.1 关系数据结构及形式化定义 2.2 关系操作 2.3 关系的完整性(简介) 2.4 关系代数 2.5 关系演算,3,2.1.1 关系,关系模型的数据结构非常简单,现实世界的实体以及实体间的各种联系均用单一的结构类型-关系来表示。 逻辑结构-二维表 从用户角度看,关系模型中数据的逻辑结构是一张二维表 关系模型建立在集合代数基础上,下面从集合论角度给出其数据结构的形式化定义,4,从集合论角度给出关系数据结构的形式化定义,1. 域(Domain) 2. 笛卡尔积(Cartesian Product) 3.

3、 关系(Relation),5, 域(Domain),定义2.1:域是一组具有相同数据类型的值的集合。例如: 年级 1,2,3,4 性别 男,女 域要命名: D1= 1,2,3,4,表示年级的集合 D2= 男,女 ,表示性别的集合 基数:域中不同取值数,即数据个数。 D1的基数为4,D2的基数为2,D1XD2=?,笛卡尔积,6,定义2.2 给定一组域D1,D2,Dn,它们可以是相同的域。 D1 , D2 ,Dn的笛卡尔积为:域中各元素所有组合的集合 D1 D2 Dn = (d1,d2,dn) | di Di, i=1,2,.,n 其中 每一个元素(d1,d2,dn) 叫作一个n元组或简称元组。

4、 元素中的每一个值di 叫做一个分量。 若Di( i=1,2,.,n )为有限集,其基数为mi (i=1,2,.,n ), 则D1 D2 Dn的基数M为: n M = mi (M为构成该积所有域的基数累积) i =1 笛卡尔积直观意义是诸集合各元素间一切可能的组合,可表示为一个二维表,元组,域,行,列,分量,2. 笛卡尔积(Cartesian Product),-域上面的一种集合运算,7,例:导师集合域D1 专业集合域D2 研究生集合域D3,则:D1D2 =,D2D3 =,D1D2D3 =?,8,D1D2D3 =,D1的基数m1=2 D2的基数m2=2 D3的基数m3=3 所以:该笛卡尔积 D

5、1x D2 x D3的基数 M=2x2x3=12,9,一般来说,D1,D2,Dn的笛卡尔积是没有实际语义的,只有它的某个真子集才有实际含义。,一个专业方向有多个导师,一个导师只带一个方向;一个导师可带多名学生,一个学生只有一个导师,学习某一个专业。,10,定义2.3 D1D2Dn的子集叫作在域D1,D2Dn上的关系,表示为R(D1,D2,Dn) 其中 R :关系的名字 Di :第i个域名(每列取一个名字,称为属性) n :关系的目或度 当n=1:单元关系;当n=2:二元关系;以此类推;n目关系必有n个属性; 关系中的每一个元素是关系中的元组,通常用t表示 关系是笛卡尔积的有限子集,3. 关系(

6、Relation),11,例:干部关系,域有三个 姓名 = 陈刚,王芳 年龄 = 25,38 职业 = 工程师,教师,会计,打字员 ,取自同一个域,由于域可以相同,为了加以区别,必须对每列起一个名字,称为属性。在不混淆的情况下,属性名也可取域名。,12,几个术语 若关系中的某一属性组的值能唯一地识别一个元组,而其子集不能,则称该属性组为候选码 若一个关系有多个候选码,则选定其中一个作为主码 候选码的诸属性称为主属性 不包含在任何候选码中的属性称为非主(码)属性 若关系模式的所有属性是这个关系模式的候选码,则称为全码,候选码:学号,课程号;姓名,课程号 ; 学号,课程名;姓名,课程名 主码:学号

7、,课程号; 主属性:学号; 课程号;姓名 非码属性:成绩;,主码:供应商号,零件号,工程号 即为全码,13,关系可以有三种类型 基本表:实际存储数据的逻辑表示 查询表:查询结果对应的表 视图表:视图可以理解为保存后的查询,是虚表,由基本表或其它视图表导出,不对应实际存储的数据 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合; 视图的建立和删除只影响视图本身,不影响对应的基本表。,14,根据定义,关系可以是一个无限集合。由于笛卡尔积不满足交换律,故: 当关系作为关系数据模型的数据结构时,需给予以下限定和扩充: 1、无限关系在数据库系统中是无意义的。因此限

8、定关系数据模型中的关系必须是有限集合。 2、为关系的每个列附加一个属性名来取消属性的有序性,即(d1,d2,di,dj,dn)=(d1,d2, dj, di, dn) (i,j=1,2 , n ),15,非规范化关系,关系的基本性质 1、列是同质的:每一列的分量是同一类型的数据,来自同一个域 2、不同的列可出自同一个域,每一列为一个属性,取一个属性名 例:在关系SAP关系中可以只给出两个域,但需取不同属性名以免混淆: 人(Person)=张清玫,刘逸,李勇,刘晨,王敏 专业(Speciality)=计算机专业,信息专业 3、列的顺序可以任意交换 4、任意两个元组的候选码不能取相同的值 5、行的

9、次序可以任意交换 6、分量必须取原子值,即 每一个分量必须是一个 不可分的数据项。,16,2.1.2 关系模式,1什么是关系模式 2定义关系模式 3. 关系模式与关系,17,1.什么是关系模式,数据库中要区分型和值。关系数据库中,关系模式(Relation Schema)是型,关系是值。关系模式是对关系的描述。 对一个关系需要描述哪些方面? 关系是元组的集合,因此关系模式必须指出: 元组集合的结构 由哪些属性构成 属性来自哪些域 属性与域之间的映象关系 需要满足的完整性约束条件,18,2.定义关系模式,关系模式表示为:R(U,D,DOM,F) R 关系名 U 组成该关系的属性名集合 D U中属

10、性所来自的域 DOM 属性向域的映象集合 F 属性间的数据依赖关系集合,通常可以简记为 R (U) 或 R (A1,A2,An) R: 关系名 A1,A2,An : 属性名 注:域名及属性向域的映象常常直接说明为属性的类型和长度。,19,3.关系模式与关系的区别,关系模式 对关系的描述 静态的、稳定的 关系 关系模式在某一时刻的状态或内容 动态的、随时间在不断变化 关系模式和关系往往统称为关系 通过上下文加以区别,20,2.1.3 关系数据库,在一个给定的应用领域中,所有关系的集合构成一个关系数据库 关系数据库也有型和值之分 关系数据库的型:亦称为关系数据库模式,是对关系数据库的描述,它包括若

11、干域的定义以及在这些域上定义的若干关系模式。表头集合 关系数据库的值:关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。内容集合,Return,21,第二章 关系数据库,2.1 关系模型概述 2.2 关系操作 2.3 关系的完整性(简介) 2.4 关系代数 2.5 关系演算 2.6 小结,22,2.2关系操作,常用的关系操作 插入、删除、修改、查询 查询的表达能力是其中最主要的部分 查询操作分:选择、投影、连接、除、并、交、差、笛卡尔积 其中选择、投影、并、差、笛卡尔积是5种基本操作,其它操作可由基本操作导出 关系操作的特点 集合操作方式:操作的对象和结果都是集合,一次一集合的方式 非

12、关系数据模型则为一次一记录方式,23,2.3 关系的完整性(上节课已举例说明,其余内容合并至第5章讲解),2.3.1 关系模型中有三类完整性约束 2.3.2 实体完整性 2.3.3 参照完整性 2.3.4 用户定义的完整性,关系模型的完整性规则是对关系的某种约束条件,即关系的值在人们对关系进行操作时应遵循的一些约束条件,实际上是满足现实世界对数据和语义的约束条件。,24,数据库建立之后,查询是其主要运算 关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。 任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。 关系代数的运算对象是关系,运算结果也是关系 运算三大要素

13、:运算对象、运算符、运算结果 运算对象 运算符 运算对象 运算结果,2.4 关系代数,Return,25,2.4 关系代数(续),关系代数的运算符:四类 1、集合运算符 并 -差 交 广义笛卡尔积 将关系看成元组的集合 运算是从关系的“水平”方向即行的角度来 2、专门的关系运算符-不仅涉及行而且涉及列 选择(行) 投影(列) 连接 除 3、算术比较符 ) 4、逻辑运算符 非 与 或 3、4辅助专门的关系运算符进行操作,是希腊字母,大写,英文表达sigma,汉语译音为“西格玛”。,连接运算 又称为sita连接运算。,26,*并、差、笛卡尔积、投影、选择运算为基本运算,2.4 关系代数(续),27

14、,2.4.1 传统的集合运算,传统的集合运算是二目运算(2个运算数),包括: 并、差、交、广义笛卡尔积 四种运算 设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则称关系R和关系S是相容的。 t是元组变量,tR 表示t是R的一个元组。 定义并、差、交、广义笛卡尔积运算如下:,28,R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域 RS 仍为n目关系,由属于R或属于S的元组组成 RS = t| tR tS ,S,R,1.并(Union),相同的关系模式,29,并(续),合并元组后,30,R和S 具有相同的目n 相应的属性取自同一个域 R

15、 - S 仍为n目关系,由属于R而不属于S的所有元组组成 R -S = t| tR tS ,R,S,2.差(Except),t是元组变量, tR 表示t是R的一个元组,31,差(续),在R中减去与S相同的元组,32,R和S 具有相同的目n 相应的属性取自同一个域 RS 仍为n目关系,由既属于R又属于S的元组组成 RS = t| tR tS RS = R (R-S),3.交(Intersection),R,S,33,交 (续),选出R和S中相同的元组,34,4.笛卡尔积(Cartesian Product),R: n 目关系,k1个元组 S: m目关系,k2个元组 RS 列:(n+m)列元组的集

16、合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组 RS = tr ts | trR tsS ,trR ,tsS, tr ts称为元组的连接或串接,它是一个n+m列的元组,前n个分量为R中一个元组,后m个分量为S中一个元组。,k:r ti:zin,35,笛卡尔积(续),列:(n+m)列元组的集合。n=3,m=3 前3列是关系R的一个元组 后3列是关系S的一个元组,行:33个元组 RS = tr ts | trR tsS ,36,2.4.2 专门的关系运算,先引入几个记号: (1) R,tR,tAi 设关系模式为R(A1,A2,An),它的一个关系设为R, tR表示

17、t是R的一个元组 tAi则表示元组t中属性Ai上的一个分量,如:如果t是第一个元组,则tE=a1, 表示a1是元组变量t在属性E上的一个分量,E F G,37,专门的关系运算(续),(2) A,tA, A 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或属性组。 tA=(tAi1,tAi2,tAik) 表示元组t在属性列A上诸分量的集合。 图中tA11=(a1,a2)表示元组变量t在 属性列A11上诸分量的集合。 A 则表示A1,A2,An中去掉 Ai1,Ai2,Aik后剩余的属性组。,tA,A,38,tr ts是一个n + m列的元组,

18、前n个分量为R中的一个n列元组,后m个分量为S中的一个m列元组。,专门的关系运算(续),(3) tr ts-元组的串(连)接 R为n目关系,S为m目关系。tr R,tsS, tr ts称为元组的连接。,39,(4)象集Za 给定一个关系R(X,Z),X和Z为属性组。 当tX=a时,a在R中的象集(Images Set)为: Za= tZ | t R,tX=a (它表示R中属性组X上值为a的诸元组在Z上分量的集合 ),专门的关系运算(续),R,40,关系运算的定义 1、选择(selection) 行运算 在关系R中选择满足给定条件 F 的诸元组,记作 : F(R)= t | tR F ( t )

19、 = 真 其中 F:选择条件,是一个逻辑表达式,取逻辑值“真”或“假”。 逻辑表达式 F 的基本形式:X1Y1 为比较运算符,可以是、()和 = X1,Y1等是属性名,或为常量,或为简单函数取得有限个值的实函数 在基本选择条件上还可以进行求非、与、或运算。 选择运算实际上是从关系R中选取使逻辑表达式 F 为真的元组,是从行的角度进行 的运算。 属性名还可以用序号来代替,41,例,Student,例1、查询信息系(IS系)全体学生 Sdept =IS (Student) 或 5=IS (Student),结果如下:,选择满足条件 F 5=IS的诸元组,42,例:,Student,例2、查询年龄小

20、于20岁的学生 Sage 20 (Student) 或 420 (Student),结果如下:,43,2、投影(Projection) 是从R中选择出若干属性列组成新的关系,记作: A(R)= tA | tR 其中A为R中的属性列 投影操作是从列的角度进行的运算 投影之后不仅取消了 原关系中的某些列,而 且还可能取消某些元组,44,例,Student,例3、查询学生的姓名和所在系科 Sname , Sdept (Student) 或2,5 (Student),45,例4、查询学生关系Student中有哪些系科 Sdept (Student) 或 5 (Student),Student,Stud

21、ent关系原来有4个元组,而投影结果取消了重复的IS元组,因此只有3个元组,46,3.连接(Join),1)连接也称为连接 2)连接运算的含义 从两个关系的笛卡尔积中选取属性间满足条件AB的元组 R S = | trR tsS trAtsB A和B:分别为R和S上列数相等且可比的属性组 :比较运算符 连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组进行串接,47,例5: R S 笛卡尔积 R X S,48,RXS共20行,例5: R S R S C E,一般连接运算,49,AB 为 CE,连接(续),3 两类最常用的连接运算 等值连

22、接(equijoin) 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = | trR tsS trA = tsB ,50,连接(续),自然连接(Natural join) 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是同名的属性组 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B,U为R和S的全体属性集合,则自然连接记作 R S = U-B| tr Rts StrB = tsB ,51,连接(续),4)一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复

23、列,所以是同时从行和列的角度进行运算。,R,S,52,例5: R S,R S R.B=S.B,R S,等值连接,自然连接,53,连接(续),外连接:两个关系R和S做自然连接,选择在公共属性上值相等的元组构成新的关系时,关系R中某些元组有可能在S中不存在值相等的元组,从而造成某些元组被舍弃,反之亦然。 如果把舍弃的(悬浮)元组(如自然连接R中的第4个元组、S中的第5个元组)也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。 左外连接 如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接

24、 如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。,R,S,54,连接(续),下图是例5中关系R和关系S的外连接,R,S,55,连接(续),图(b)是例5中关系R和关系S的左外连接,图(c)是右外连接,56,4、除运算,设关系R除以关系S的结果为T,则T包含所有在R但不在S中的属性和值,且T与S元组的所有组合都在R中。,57,Course,SC,SCCourse=15001,15003,语义:选修了全部课程的学生学号,15002,15004?,除运算的定义 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的

25、Y可以有不同的属性名,但必须出自相同的域集。R和S的除运算得到一个新的关系P(X), P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值为a的象集Ya包含S在Y上投影的集合。记作: RS= trX | trR Y(S)Ya 其中Yx为x在R中的象集,x=trX,X,Y,Y,Z,P(X),58,例6设关系R、S分别为下图的(a)和(b),RS的结果为图(c) 。P59,在关系R中,A可以取4个值a1 ,a2 ,a3 ,a4,各值的象集为: a1 (b1,c2), (b2,c3), (b2,c1) a2 (b3,c7), (b2,c3) a3 (b4,c6) a4 (b6,c6) S在

26、(B,C)上的投影为 (b1,c2), (b2,c3), (b2,c1) ,只有a1的象集(B,C)a1 包含了S在(B,C)上的投影,所以 RS=a1,P(X)元组在A上分量值为x的象集(B,C)包含S在(B,C)上投影的集合。,59,例 : R11 R21 R22 R23,求 R11R21 R11 R22 R11 R23,在关系R11中,A各值的象集分别为: A1 (B1), (B2), (B3), (B4) A2 (B1), (B3), (B4) A3 (B1,B2) ,R21在B属性上的投影为B1,R22在B属性上的投影为B1,B2,R23在B属性上的投影为B1,B2,B3,除运算后的

27、结果仍为关系。,60,Student,Course,SC,更多关系代数运算例子:设有一个学生-课程数据库,Student,Course,SC,61,例10、查询至少选修1号课程和3号课程的学生号码 首先建立一个临时关系 K; 然后求:Sno, Cno (SC) K,过程如下:,95001的象集为1,2,3 95002的象集为2,3,K=1,3,只有95001的象集包含K,于是:Sno,Cno(SC)K=95001,1.对SC关系在(Sno,Cno)属性上投影; 2.逐一求出每一学生(Sno)的象集; 3.检查这些象集是否包含K。,K,62,例11、查询选修了2号课程的学生的学号 Sno(Cno

28、=2 (SC)= 95001,95002 ,先选择-行运算后投影-列运算,执行选择后结果,投影,63, 表示自然连接,自然连接是一种特殊的等值连接,两个关系中进行比较的分量是同名的属性组,在结果中把重复的属性列去掉。,64,例9、查询至少选修了一门其直接先行课号为5号课程的学生姓名 Sname(Cpno=5 (Course) SC Sno,Sname (student) ) 或 Sname(Sno(Cpno=5(Course)SC)Sno,Sname (Student),SC,Course,Student,65,Sno,Cno (SC) Cno(Course) Sno,Sname (stude

29、nt),Cno (Course),Sno,Cno (SC),Sno,Sname (student),1.Sno,Cno (SC) Cno (Course)=95001,例10、查询选修了全部课程的学生号码和姓名,66,2.6 小结,关系数据库系统是目前使用最广泛的数据库系统 关系数据库系统与非关系数据库系统的区别: 关系系统只有“表”这一种数据结构; 非关系数据库系统还有其他数据结构,以及对这些数据结构的操作,67,小结(续),关系数据结构 关系 域 笛卡尔积 关系 关系,属性,元组 候选码,主码,主属性 基本关系的性质 关系模式 关系数据库,68,实例数据表,Student,Course,SC,69,小结(续),关系操作 查询 选择、投影、连接、除、并、交、差 数据更新 插入、删除、修改,70,小结(续),关系的完整性约束 实体完整性 参照完整性 外码 用户定义的完整性,71,练习题,1、若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为_。 A.主码 B.候选码 C.主属性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论