DB02数据库第二章教学.ppt_第1页
DB02数据库第二章教学.ppt_第2页
DB02数据库第二章教学.ppt_第3页
DB02数据库第二章教学.ppt_第4页
DB02数据库第二章教学.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

,第二章,关系数据库,教学要求:本章重点掌握关系模型的概念、特点及关系运算的基本运算:笛卡儿乘积、交、并、差、选择、投影、商、连接、自然连接等;掌握关系数据结构及其形式化定义,关系的三类完整性约束的概念。重点和难点:关系模型的数据完整性约束和关系代数运算,2.1关系模型概述,组成三要素:关系数据结构、关系操作集合、关系完整性约束。一、单一的数据结构:二维表二、关系操作:选择、投影、连接、除、并等查询操作及添加、删除、修改操作。关系操作特点是:集合操作。关系操作描述:关系代数、关系演算、双重特点语言。语言特点:表达能力完备、非过程化。三、完整性约束:实体、参照、用户自定义,关系模型的数据结构简单,无论是实体还是实体之间的联系均由单一的结构类型即关系(表)来表示的。,2.2关系数据结构及形式化定义,2.2.1关系域:一组具有相同数据类型的集合,如实数、整数、字母表等。笛卡尔积(CartesianProduct)给定一组域D1,D2,Dn,则称D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n为这组集合的笛卡尔积,其中:笛卡尔积的每个元素(d1,d2,dn)称作一个n元组(n-tuple)。元组的每一个值di叫做一个分量(component)。,例:设D1为教师集合(T)=t1,t2D2为学生集合(S)=s1,s2,s3D3为课程集合(C)=c1,c2则D1D2D3是个三元组集合,元组个数(基数)为232,是所有可能的(教师,学生,课程)元组集合。,例如给出三个域:D1=导师集合SUPERVISOR=张清玫,刘逸D2=专业集合SPECIALITY=计算机专业,信息专业D3=研究生集合POSTGRADUATE=李勇,刘晨,王敏则D1,D2,D3的笛卡尔积为:D1D2D3(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏),例如关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)可以包含元组:(张清玫,信息专业,李勇)(张清玫,信息专业,刘晨)(刘逸,信息专业,王敏)有效元组实际的、现实世界当中的具体情况,关系是笛卡尔积的一个子集,记做R(D1,D2,Dn),RD1D2Dn,其中,R表示关系的名字,n是关系的目或度(Degree),关系中的每个元素是关系的元组,用t表示。关系是一个属性数目相同的元组的集合。关系是一种规范化了的二维表格。有时习惯上称呼关系为表或表格,元组为行(Row),属性为列(Column)。关系中属性的个数为元数(Arity),元组的个数为基数(Cardinality)。,候选码/键(CandidateKey)若关系中的某一属性组的值能唯一地标识一个元组,称该属性组为候选码。主码/主键(PrimaryKey)若一个关系有多个候选码,用户可以选定其中一个做为主码。,主属性(PrimeAttribute)候选码的诸属性称为主属性。非码/主属性(Non-keyattribute)不包含任何候选码中的属性称为非主属性。全码(All-Key)关系模式的所有属性是这个关系模式的候选码。,关系的三种类型:,基本关系的性质:1、列同质;2、不同列可出自同一个域;3、列无序;4、元组相异;5、行无序;6、分量不可再分;7、元组有限。,基本表:实际存在的表,是实际存储数据的逻辑表示;,查询表:查询结果所对应的表;,视图表:是由基本表或其它视图表导出的表,是虚表,不对应实际存储的数据。,关系模式是对关系的描述。关系实际上是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的。关系是动态的、随时间变化的。,2.2.2关系模式,形式化表示为五元组:R(U,D,DOM,F)R是关系名,U是属性全集(属性名集合),D是属性来自的域,DOM是U向D的映像集合,F是数据依赖集合。,关系模型中,实体及实体间的联系都是用关系来表示的。从而,对一个实际应用领域,所有表示有关实体和实体间联系的关系的集合构成了一个关系数据库。关系数据库的型称为关系数据库模式,是对关系数据库的描述,包括若干域的定义以及这些域上定义的若干关系模式。关系数据库的值是关系模式在某一时刻对应的关系的集合,通常称为关系数据库。,2.2.3关系数据库,在关系型数据库中,完整性约束用于确保数据的准确性和一致性,2.3关系完整性,关系完整性规则是对关系的某种约束条件。完整性有三类:实体、参照、自定义。实体、参照完整性被称为关系的两个不变性,由关系系统自动支持。,一、实体完整性:规则:主属性不能取空值。在主码由多个属性组成的情况下,要求每个属性都不能为空,而不是主码整体不为空。,主属性全部为空,主属性不全为空,主属性值重复,二、参照完整性:也被称为引用完整性,原则是不引用不存在的实体;一个关系某些属性取值需参照其它关系的属性取值;同一个关系也可能遇到这种情况。,定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与关系S的主码KS相对应,则称F是基本关系R的外码,并称关系R为参照关系,关系S为被参照关系。关系R和S不一定是不同的关系。,被参照关系,参照关系,被参照关系,参照关系,被参照关系,被参照关系,参照关系,参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。只有满足该规则,引用才会和客观实际符合。,参照完整性规则的三点变通外键和相应的主键可以不同名,只要定义在相同值域上即可。基本关系S和R可以是同一个关系模式,此时表示了同一个关系中不同元组之间的联系。外键是否允许为空,应该视具体问题而定。,三、用户定义的完整性用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。,2.4关系代数,关系代数是以关系为运算对象的一组高级运算的集合。关系代数是一种抽象的查询语言。关系代数运算的分类传统的集合运算:并、差、交、广义笛卡尔积专门的关系运算:投影、选择、连接、除法,关系代数的运算符关系代数的运算对象是关系,运算结果也是关系;关系代数的运算符包括1.集合运算符2.专门的关系运算符3.算术比较运算符4.逻辑运算符,运算符含义运算符含义交大于集合并比较小于运算-差运算大于等于符广义笛卡符小于等于尔积不等于专门选择的关投影逻辑与系运连接运算或算符除符非,一、传统的集合运算(二目运算)包括并、交、差、广义笛卡尔积四种运算设关系R和S同为n元关系,且相应的属性取自同一个域,则可定义:1.并(Union)RS=ttRtS结果为n目关系,由属于R或属于S的元组组成。,2.差(Difference)R-S=ttRtS结果为n目关系,由属于R而不属于S的所有元组组成。,3.交(Intersection)RS=ttRtS结果为n目关系,由既属于R又属于S的元组组成。可用差表示:RS=R-(R-S),4.广义笛卡尔积(ExtendedCartesianProduct)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(m+n)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有a个元组,S有b个元组,则关系R和关系S的广义笛卡尔积有ab个元组。记为RS。RS=trtstrRtsS,二、专门的关系运算包括选择运算、投影运算、连接运算、除运算等。,先引入几个记号:(1)R,tR,tAi设关系模式为R(A1,A2,An)它的一个关系设为RtR表示t是R的一个元组tAi则表示元组t中相应于属性Ai的一个分量,(2)A,tA,A若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或属性组。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。,(3)trtsR为n目关系,S为m目关系。trR,tsS,trts称为元组的连接。trts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。,(4)象集Zx给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(ImagesSet)为:Zx=tZ|tR,tX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合,象集举例,x1在R中的象集Zx1=Z1,Z2,Z3,x2在R中的象集Zx2=Z2,Z3,x3在R中的象集Zx3=Z1,Z3,(a),Student,学生-课程数据库:学生关系Student、课程关系Course和选修关系SC,Course,(b),(c),SC,1.选择(Selection),1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组F(R)=t|tRF(t)=真F:选择条件,是一个逻辑表达式,基本形式为:X1Y1,3)选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算,例1查询信息系(IS系)全体学生Sdept=IS(Student)或5=IS(Student),结果:,例2查询年龄小于20岁的学生Sage20(Student)或420(Student),结果:,2.投影(Projection),1)投影运算符的含义从R中选择出若干属性列组成新的关系A(R)=tA|tRA:R中的属性列,2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),例3查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影:Sname,Sdept(Student)或2,5(Student),结果:,例4查询学生关系Student中都有哪些系Sdept(Student),结果:,3.连接(Join),1)连接也称为连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组RS=|trRtsStrAtsBA和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组,3)两类常用连接运算等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:RS=|trRtsStrA=tsB,A=B,自然连接(Naturaljoin)自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组BRS=|trRtsStrB=tsB,4)一般的连接操作是从行的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,例5关系R和关系S如下所示:,CE,一般连接RS的结果如下:,等值连接RS的结果如下:,自然连接RS的结果如下:,外连接如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTERJOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。,下图是例5中关系R和关系S的外连接,图(b)是例5中关系R和关系S的左外连接,图(c)是右外连接,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)YxYx:x在R中的象集,x=trX,除操作是同时从行和列角度进行运算,例6设关系R、S分别为下图的(a)和(b),RS的结果为图(c),分析,在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3)只有a1的象集包含了S在(B,C)属性组上的投影所以RS=a1,除运算步骤:设R(X,Y),S(Y,Z),其中X,Y,Z都是属性列。结果为M(X)。1)分组:将R按X上的值的种类分组,有多少种值就分为多少组。2)取S在Y上的投影值SY。3)针对1)中所得每一组,考察该组在Y上的投影值,是否含有SY全部,若含有,则该组在X上的投影值是结果中的一个元组。若不含有或不全含有,则该组舍弃。,5综合举例,以学生-课程数据库为例(P60)例7查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:然后求:Sno,Cno(SC)K,例7分析:Sno,Cno(SC)200215121象集1,2,320021

温馨提示

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

评论

0/150

提交评论