《第02章关系数据库系统1.ppt》由会员分享,可在线阅读,更多相关《第02章关系数据库系统1.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 关系数据库基础 本章内容关系数据库系统概述(作调整放到第5章)关系数据模型 关系模型的完整性约束 关系代数 22.2 关系数据模型3关系数据模型的三个要素关系的形式定义关系的基本性质关系模型的数据结构和基本术语关系数据模型的三个要素关系数据结构关系操作集合关系完整性约束4关系数据结构 关系数据结构非常简单,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。从逻辑或用户的观点来看,关系就是二维表。5关系操作集合6传统的集合运算 并(Union)交(Intersection)差(Difference)广义笛卡尔积(Extended Cartesian Product)
2、专门的关系运算选择(Select)投影(Project)连接(Join)除(Divide)有关的数据操作 插入(Insert)删除(Delete)修改(Update)关系是以集合的方式操作的,即操作的对象是元组的集合,操作的结果也是元组的集合。关系的操作能力可以用代数方式和逻辑方式来表示:代数方式是通过关系代数对关系的运算来表达查询要求的方式。逻辑方式是通过关系演算、用谓词表达对关系的查询要求的方式。关系数据语言分为三类:关系代数语言、关系演算语言以及具有关系代数和关系演算双重特点的SQL语言。7关系操作关系完整性约束 在数据库中数据完整性是指保证数据正确的特性。数据完整性是一种语义概念,它包
3、括两方面的内容:与现实世界中应用需求的数据的相容性和正确性;数据库内数据之间的相容性和正确性。在关系数据模型中一般将数据完整性分为三类实体完整性参照完整性用户定义完整性。8关系的形式定义9笛卡儿积定义:设D1,D2,Dn为任意集合,定义D1,D2,Dn的笛卡儿积为:其中每一个元素(d1,d2,dn)叫作一个n元组,简称元组,元组中每一个di叫作元组的一个分量。关系的形式定义:笛卡儿积D1D2 Dn的任意一个子集称为D1,D2,Dn上的一个n元关系。10笛卡尔积和关系举例需要说明两点11关系是元组的集合,集合(关系)中的元素(元组)是无序的;而元组不是分量di的集合,元组中的分量是有序的。例如,
4、在关系中(a,b)(b,a),但在集合中a,b=b,a。若一个关系的元组个数是无限的,则该关系称为无限关系,否则称为有限关系;在数据库中只考虑有限关系。12每一分量必须是不可分的最小数据项,即每个属性都是不可再分解的,这是关系数据库对关系的最基本的限定。列的个数和每列的数据类型是固定的,即每一列中的分量是同类型的数据,来自同一个值域。不同的列可以出自同一个值域,每一列称为属性,每个属性要给予不同的属性名。列的顺序是无关紧要的,即列的次序可以任意交换,但一定是整体交换,属性名和属性值必须作为整列同时交换。行的顺序是无关紧要的,即行的次序可以任意交换。元组不可以重复,即在一个关系中任意两个元组不能
5、完全一样。关系的基本性质13参照关系和被参照关系:在关系数据库中可以通过外部关键字使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系,从(子)关系(n方)被称为参照关系。关系属性值域元组分量关系模式关系模型关系数据库候选关键字主关键字主属性非主属性外部关键字关系模型的数据结构和基本术语141、学生信息(学号、姓名、系别、身份证号)(1)候选关键字(2)主关键字(3)主属性(4)非主属性3、选课情况(学号、课程号、成绩)(1)候选关键字(2)主关键字(3)主属性(4)非主属性(5)外部关键字2、课程信息(课程号、课程名、学分)(1)候选关键字(2)主关键字(
6、3)主属性(4)非主属性讨论讨论2.3 关系模型的完整性约束 15实体完整性约束参照完整性约束用户定义完整性约束完整性约束的作用 实体完整性约束 16实体完整性是要保证关系中的每个元组都是可识别和唯一的。实体完整性规则的具体内容是:若属性A是关系R的主属性,则属性A不可以为空值。空值空值是一个概念,它是指一个属性或变量还没有确定值,就是“不知道”或“没有确定”,它既不是数值0、也不是空字符串,是一个未知的量。空值用NULL表示。实体完整性几点说明实体完整性是关系模型必须满足的完整性约束条件,也称作是关系的不变性。关系数据库管理系统可以用主关键字实现实体完整性约束,这是由关系系统自动支持的。(见
7、第5章)实体完整性规则是针对关系而言的,而关系则对应一个现实世界中的实体集。现实世界中的实体是可区分的,它们具有某种标识特征;相应地,关系中的元组也是可区分的,在关系中用主关键字做唯一性标识。主关键字中的属性(即主属性)不能取空值。如果主属性取空值,则意味着关系中的某个元组是不可标识的,即存在不可区分的实体,这与实体的定义也是矛盾的。参照完整性规则19现实世界中的实体间存在着某种联系,而在关系模型中实体是用关系描述的、实体之间的联系也是用关系描述的,这样就自然存在着关系和关系之间的参照或引用。参照关系和被参照关系的定义 20 设F是关系R的一个属性或属性组,但不是关系R的关键字,另外有主关键字
8、为K的关系S。如果关系R的属性或属性组F与关系S的主关键字K相对应,则称F是关系R的外部关键字,并称关系R是参照关系、S是被参照关系(或目标关系)。关系R和S可以是同一个关系。再参见图2-8参照完整性规则 如果属性(或属性组)F是关系R的外部关键字,它与关系S的主关键字K相对应,则对于关系R中每个元组在属性(或属性组)F上的值必须为:q或者取空值(F的每个属性均为空值);q或者等于S中某个元组的主关键字的值。在关系系统中通过说明外部关键字来实现参照完整性,而说明外部关键字是通过说明引用的主关键字来实现的,也即通过说明外部关键字,关系系统则可以自动支持关系的参照完整性。(参见第5章)22参照完整
9、性的实现用户定义完整性 一种与应用密切相关的数据完整性约束,如某个属性的值必须唯一 某个属性的取值必须在某个范围内 某些属性值之间应该满足一定的函数关系等 在用户定义完整性中最常见的是域完整性约束。用户完整性的说明方式见第5章。23完整性约束的作用完整性约束拒绝错误的数据进入数据库插入、修改、删除会改变数据库中数据的状态插入操作检查的完整性约束?25实体完整性参照完整性用户定义完整性删除操作检查的完整性约束?参照完整性更新操作检查的完整性约束?更新可看作先删除旧记录、再插入新记录2.4 关系代数基本概念和几个符号传统的集合运算专门的关系运算基本运算及变换 27基本概念和几个符号关系代数的运算对
10、象是关系,关系代数的运算结果也是关系。与一般的运算一样,运算对象、运算符和运算结果也是关系代数的三个要素。关系代数的运算可以分为两大类 传统的集合运算 专门的关系运算 28几个概念和专门的符号元组的分量元组的连串元组中属性的映像集29元组的分量设有关系模式R(A1,A2,An)rR表示r是R的一个元组 r.Ai或rAi表示r这个元组中相应于属性Ai的一个分量 30例如,假设R是仓库关系,r=(WH1,北京,370)是仓库关系的一个元组,则rR,r.仓库号或r仓库号为WH1。元组的连串 设R为m元关系,S为n元关系,并且 r=(r1,r2,rm)R s=(s1,s2,sn)S则 称为元组的连串。
11、这是一个(m+n)元组,前m个分量为R中的一个m元组,后n个分量为S中的一个n元组。31设r=(WH1,北京,500),s=(WH1,E3,李丽,5500)则r和s的连串为(WH1,北京,500,WH1,E3,李丽,5500)元组中属性的映像集设有关系模式R(X,Y),其中X、Y可以是单个属性,也可以是属性集,定义当X取值为x时,x在R中的映象集为:32设有如表所示的订购单关系,把它命名为R,并且进一步设X为属性经手人,Y为属性集订购单号,供货方,订购日期,则当X取值为E3时:33Yx=(OR67,S7,2009/06/23),(OR79,S4,2009/06/13),(OR90,NULL,N
12、ULL),(OR91,S3,2009/07/13)Yx=传统的集合运算集合的并运算集合的交运算集合的差运算集合的广义笛卡尔积运算34集合的并、交、差运算示意35 两个关系的属性不一定完全一样,但是一定列数相同、对应列出自同一值域。集合的广义笛卡尔积运算36 设R和S是两个关系,如果R是m元关系、有k个元组,S是n元关系、有l个元组,则广义笛卡尔积RS是一个m+n元关系、有kl个元组。广义笛卡儿积可以记作:专门的关系运算选择运算(Select)投影运算(Project)连接运算(Join)除运算(Division)37选择运算38 选择运算是从指定的关系中选择某些元组形成一个新的关系,被选择的元
13、组是用满足某个逻辑条件来指定的。选择运算表示为:其中R是关系名,是选择运算符,F是逻辑表达式。选择运算举例:39单价100(器件)从器件关系中选择单价大于100的元组构成新的关系投影运算401)选择指定的属性,形成一个可能含有重复行的表格;2)删除重复行,形成新的关系。投影运算对指定的关系进行投影操作,根据该关系分为如下两步:投影运算表示为:41 其中R是关系名,是投影运算符,A是被投影的属性或属性集。投影运算举例:42选择器件名称和规格两列构成新的关系器件名称,规格(器件)选择和投影运算举例43 从订购单关系中,选择经手人为E3的所经手的订购单号和与之相关的供货方。订购单号,供货号(经手人=
14、E3(订购单)连接运算44 连接运算用来连接相互之间有联系的两个关系,被连接的两个关系通常是具有一对多联系表的父子关系。所以连接过程一般是由参照关系的外部关键字和被参照关系的主关键字来控制的,这样的属性通常也称为连接属性。连接运算的概念45一般的连接运算也称为连接运算,是比较运算符。连接一般表示为:这里Ai是R中的属性,Bj是S中的属性,连接的结果是一个广义笛卡儿乘积的子集,其中的元组满足Ai和Bj间的关系。当为“=”时,称为等值连接;为“”时,称为大于连接等等。连接(续)R S AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 CEAB
15、Ca1b15a1b26a2b38a2b412BEb13b27b310b32b52RS 连接(续)3)两类常用连接运算等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:连接(续)等值连接 R S R.B=S.B AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS自然连接 49在连接运算中最常用的连接是自然连接。自然连接运算一般表示为:其中Ai和Bj要出自同一个值域,并
16、且在实际应用中这两个属性往往具有相同的属性名。自然连接做了三件事:50计算广义笛卡尔积RS;选择满足条件rAi=sBj的所有元组;去掉重复的属性。连接(续)自然连接 R S ABCEa1b153a1b267a2b3810a2b382ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS52综合运算实例53根据以上关系求出在上海工作的职工的工资值都有哪些?仓库职工查询过程示意54选择运算自然连接运算投影运算仓库关系代数语句为:注意注意55 自然连接和等值连接很相象,但它们不同,自然连接要去掉重复的属性,而等值连接却不需要去掉重复的属性。练习检索在仓库WH2工作的
17、职工的工资。检索目前与职工E6有业务联系的供货方的名称。56除运算57 设有关系R(X,Y)和S(Y),其中X、Y可以是单个属性或属性集,则除法运算定义为:理解除法运算58R(X,Y)是被除关系S(Y)是除关系商关系由R中某些X属性值构成,其中的任一X值所对应的一组Y值都包含除关系S。除运算常用于至少查询或运算除运算的例子59它的含义是:至少向WH1、WH3、WH5供货的供应商号。YXYX商关系由商关系由商关系由商关系由R R中某些中某些中某些中某些X X属性值构成,其中的任属性值构成,其中的任属性值构成,其中的任属性值构成,其中的任一一一一X X值所对应的值所对应的值所对应的值所对应的一组一
18、组一组一组Y Y值值值值都都都都包含除关系包含除关系包含除关系包含除关系S S除(续)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1RS分析:在关系在关系R R中,中,A A可以取四个值可以取四个值a1a1,a2a2,a3a3,a4a4 a1 a1的映象集为的映象集为 (b1(b1,c2)c2),(b2(b2,c3)c3),(b2(b2,c1)c1)a2a2的映象集为的映象集为 (b3(b3,c7)c7),(b2(b2,c3)c3)a3a3的映象集为的映象集为 (b4(b4,c6)c6)a4a4的映
19、象集为的映象集为 (b6(b6,c6)c6)S S在在(B B,C C)上的投影为上的投影为 (b1(b1,c2)c2),(b2(b2,c1)c1),(b2(b2,c3)c3)只有只有a a1 1的映象集包含了的映象集包含了S S在在(B B,C C)属性组上的投影属性组上的投影所以所以 R R S S=a a1 1 求出与供应商S3和S4都有业务联系的职工的职工号和工资。62经手人E3R2=R1(S3,S4)R4=经手人=职工号(R2*职工)R1=经手人,供货方(订购单)R5=职工号,工资(R4)经手人仓库号职工号姓名工资经理E3WH2E3于险1550E4职工号工资E31550基本运算及变换 63 在关系代数运算中集合的并运算、差运算、笛卡尔积运算以及选择运算和投影运算是5种基本运算,另三种运算(集合的交运算以及连接运算和除运算)可以用5种基本运算来表达,引进它们并不增加语言的能力,但是可以简化表达。两个关系的交运算可以表示为64 R S=R-(R-S)两个关系的自然连接运算可以表示为65两个关系的除运算可以表示为66本章小结关系数据库系统概述关系数据库的发展SQL Server和SQL介绍关系模型的相关概念和术语关系模型的三个要素是:关系数据结构、关系操作集合和关系完整性约束关系数据模型的完整性约束及其作用关系代数:传统的集合运算和专门的关系运算67
限制150内