数据库系统概论PPT教程第二章 关系数据库.ppt

上传人:文库蛋蛋多 文档编号:2237042 上传时间:2023-02-04 格式:PPT 页数:64 大小:1.73MB
返回 下载 相关 举报
数据库系统概论PPT教程第二章 关系数据库.ppt_第1页
第1页 / 共64页
数据库系统概论PPT教程第二章 关系数据库.ppt_第2页
第2页 / 共64页
数据库系统概论PPT教程第二章 关系数据库.ppt_第3页
第3页 / 共64页
数据库系统概论PPT教程第二章 关系数据库.ppt_第4页
第4页 / 共64页
数据库系统概论PPT教程第二章 关系数据库.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《数据库系统概论PPT教程第二章 关系数据库.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论PPT教程第二章 关系数据库.ppt(64页珍藏版)》请在三一办公上搜索。

1、第二章关系数据库,简介,E.F.Codd于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖。关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。早期代表系统System:由IBM研制。INGRES:由加州Berkeley分校研制。目前主流的商业数据库系统Oracle,Sybase,SQL Server,DB2。Access,FoxPro,Foxbase。,关系数据模型,关系模型是关系数据库系统的基础,它由以下部分组成:数据结构:关系(二维表)。关系模型的数据结构非常单一,无论是实体还是实体间的联系均由关系表示。完整性约束:包括关系模型所要求的完整性约束(实体完整性约束,参照

2、完整性约束),以及应用领域需要遵循的用户定义完整性约束。,关系数据模型(续I),DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)SC(S#,C#,GRADE)PROF(P#,PN,D#,SAL)TEACH(P#,C#),关系数据模型(续II),关系操作:包括:选择、投影、连接、除、并、交、差等查询操作和增加、删除、修改操作两大部分。其特点是集合操作方式,操作的对象及结果都是集合。关系数据语言:关系代数:用对关系的运算来表达查询,需要指明所用操作。关系演算:用谓词来表达查询,只需描述所需信息的特性。元组关系演算:谓词变元的基本对象是元组

3、变量。域关系演算:谓词变元的基本对象是域变量。SQL语言,关系数据模型(续III),特点:面向集合的存取方式。关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式。而非关系型的数据操作方式是一次一记录(Record-at-a-time)。非过程化。关系操作不要求用户提供存取路径,存取路径的选择由DBMS完成。用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成。,数据结构,域(Domain)一组具有相同的数据类型的值的集合。如整数的集合、字符串的集合、全体学生的集合。笛卡尔积(Cartesian Product)给定一组域

4、D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,n笛卡尔积的每个元素(d1,d2,dn)称作一个n-元组(n-tuple)或简称元组。元组的每一个值di叫做一个分量(component)。若Di(i=1,n)为有限集,其基数(Cardinal number)为mi,则笛卡尔积的基数为,数据结构(续I),例:设D1为教师集合(Teacher)=T1,T2 D2为专业集合(Speciality)=CS,MATH D3为学生集合(Student)=S1,S2,S3 则D1D2D3是个三元组集合,元组个数为223是所有可能的(

5、教师,专业,学生)元组集合。笛卡尔积可表为二维表的形式:,数据结构(续II),数据结构(续III),关系笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示。R是关系的名字,n是关系的度或目(Degree)。当n=1时称为单元关系,当n=2时称为二元关系,依此类推。关系可以表示为二维表,表的每一行对应一个元组,每列对应一个域。由于域有可能相同,为了加以区分,必须对每个列起一个名称,称为属性。n元关系必有n个属性。关系TEACH(Teacher,Speciality,Student),属性,元组,数据结构(续IV),关系模型对关系的限定和扩充无限关系在数据库系

6、统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。通过为关系的每一个列附加一个属性名取消关系的有序性,即(d1,d2,di,dj,dn,)=(d1,d2,dj,di,dn,)(i,j=1,2,,n),数据结构(续V),关系的性质列是同质的(Homogeneous)即每一列中的分量来自同一域,是同一类型的数据。如TEACH(Teacher,Speciality,Student)=(t1,CS,s1),(t1,t2,s1)是错误的。不同的列可出自同一域,每列必须有不同的属性名。如Person=t1,t2,s1,s2,s3,Speciality=c1,c2,则TEACH不能写成TEACH

7、(Person,Speciality,Person),还应写成TEACH(Teacher,Speciality,Student)。,数据结构(续VI),列的顺序无关紧要,即列次序可以互换。任意两个元组不能完全相同(集合内不能有相同的两个元素)。行的顺序无关紧要,即行次序可以互换。每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的。,数据结构(续VII),关系模式关系的描述称作关系模式,它可以形式化地表示为:R(U,D,dom,F,I),其中,R为关系名,U为组成该关系的属性名集合,D为属性集U所来自的域,dom为属性向域的映象集合、F为属性间的数据依赖关系集合,I为完

8、整性约束集合。关系模式通常可以简记作R(A1,A2,An)。关系是关系模式在某一时刻的状态或内容。关系模式是相对稳定的。而关系是动态的,是随时间不断变化的。,数据结构(续VIII),关系数据库在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。关系数据库也有型和值之分:其型是关系模式的集合,即数据库描述,称为关系数据库模式。其值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。,完整性约束,候选码关系模式R(U)的属性集合k U是候选码,如果(1)R(U)的任何一个关系实例的任意两个元组在属性集合k上的值都不同。即唯一性,候选码的属性值必须能够唯一地标识

9、关系中的所有元组。(2)k的任何真子集都不满足条件(1)。即最小性,候选码不能包含多余属性。,完整性约束(续I),主码若一个关系具有多个候选码时,选择其中一个作为该关系的主码。主属性与非主属性候选码中的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性。在最简单的情况下,候选码只包括一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。,完整性约束(续II),外部码设F是基本关系R的一个或一组属性,但不是R的码。如果F与基本关系S的主码Ks相对应,则称F是关系R的外部码(Foreign Key),并称R为参照关系(Referencing Relation),S为

10、被参照关系(Referenced Relation)或目标关系(Target Relation)。R和S不一定是不同的关系。显然,目标关系S的主码Ks和参照关系的外部码F必须定义在一个域上。,完整性约束(续III),实体完整性定义:关系R主码中所包含的任意属性都不能取空值。空值:不知道或无意义。意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的。参照完整性如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值。意义:如果关系R2的某个元

11、组t2参照了关系R1的某个元组t1,则t1必须存在。,完整性约束(续IV),例如关系Student在Sdept上的取值有两种可能:空值,表示该学生尚未分到任何系中。若非空值,则必须是DEPT关系中某个元组的Sdept值,表示该学生不可能分到一个不存在的系中。用户定义的完整性用户针对具体的应用环境定义的完整性约束条件。如Sno要求是8位字符,Ssex要求取值为“男”或“女”。系统支持实体完整性和参照完整性由系统自动支持。系统应提供定义和检验用户定义的完整性的机制。,关系代数,传统的集合运算集合并、集合交、集合差、广义笛卡儿积专门的关系运算选择、投影、连接、商基本运算集合并、集合差、广义笛卡儿积、

12、选择、投影,关系代数运算符,并运算,定义设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的并运算定义为:RS=t|t R tS 其结果仍为n元关系,由属于R或属于S的元组构成。,并运算(续I),RS,R,S,差运算,定义设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的差运算定义为:RS=t|tR tS 其结果仍为n元关系,由属于R而不属于S的元组构成。,RS,差运算(续I),RS,R,S,交运算,定义设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的交运算定义为:RS=t|tR tS 其结果仍为n元关系,由既属于R又属于S的元组构成。交运算可以

13、通过差运算来重写:RS=R(R S),RS,交运算(续I),RS,R,S,广义笛卡尔积,定义两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组。RS=t|t=rR sS RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积。,广义笛卡尔积(续I),RS,R,S,选择运算,基本定义在关系R中选择满足给定条件的元组。F(R)=t|t R F(t)=真F是选择的条件,取逻辑值“真”或“假”。F的形式:由逻辑运算符连接算术表达式而成。逻辑运算符:,算术表达式:X Y X,Y是属性名、常量、或简单函数。是比较算

14、符,,选择运算(续I),B=b(R),B=b C=c(R),R,投影运算,定义从关系R中取若干属性列组成新的关系。A(R)=tA|tR,AR投影的结果中要去掉重复的行。,R,B,C(R),连接运算,定义从两个关系的广义笛卡儿积中选取给定属性间满足操作的元组。R S=t|t=rR sS rA sB 为算术比较符,当为等号时称为等值连接,其他依此类推。连接运算可以用笛卡尔积和选择运算重写为 R S=AB(RS),A B,A B,连接运算(续I),R S,B D,R,S,自然连接,定义从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的属性列。R S=(Z,X,W)|(Z,X)R

15、(X,W)SrX=sX计算RS设R与S的公共属性列为A1,Ak,从RS中选取满足R.A1=S.A1,R.Ak=S.Ak的那些元组去掉S.A1,S.Ak,自然连接(续I),S,R,R S,复合连接与半连接,复合连接类似于自然连接,是连接运算结果不包含连接属性的自然连接。半连接在R与S的连接运算结果中只保留R的属性列所得到的元组集合。,外连接,例:列出老师的有关信息,包括姓名、工资、所教授的课程。P#,PN,SAL,C#,CN(PROF)PC C),问题:有关P03号职工的姓名和工资信息没有显示出来。,外连接(续I),外连接为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一

16、个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接。外连接=自然连接+失配的元组。外连接的形式:左外连接、右外连接、全外连接。左外连接=自然连接+左侧表中失配的元组。右外连接=自然连接+右侧表中失配的元组。全外连接=自然连接+两侧表中失配的元组。,外连接(续II),R,S,R,S,R,S,R,S,R,S,除运算,象集(Image Set)关系R(X,Y),X,Y是属性组,x是X上的取值,定义x在R中的象集为Yx=rY|rR rX=x 从R中选出在X上取值为x的元组,去掉X上的分量,只留Y上的分量。,X Y,张军同学所选修的全部课程,如何得到选修了全部课程

17、的学生?,x=张军,Yx,除运算(续I),除运算给定关系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=rX|rRy(S)Yx,除运算(续II),=,R,S,R S,例子表,STUDENT,SC,COURSE,练习,查询信息系(IS)的全体学生Sdept=IS(STUDENT)查询年龄小于20岁的学生Age20(STUDENT)查询学生的姓名和所在系Sname,Sdept(STU

18、DENT)求选修了2号课程的学生的学号。Sno(Cno=2(SC),练习(续II),查找学号为95001的学生姓名和年龄Sname,Sage(Sno=95001(STUDENT)查找信息系的男学生的学号和姓名Sno,Sname(Sdept=IS Ssex=男(STUDENT)查找选修了1号课程或3号课程的学生的学号Sno(Cno=1 Cno=3(SC)或:Sno(Cno=1(SC)Sno(Cno=3(SC),练习(续III),求选修了1号而没有选2号课程的学生号。Sno(Cno=1(SC)Sno(Cno=2(SC)求选修了1号和2号课程的学生号。Sno(Cno=1(SC)Sno(Cno=2(S

19、C)求选修了1号课程的学生号和姓名。Sno,Sname(Cno=1(Student SC),练习(续IV),查询至少选修了一门其直接先行课为5号课程的学生姓名。Sname(Cpno=5(Course)SC Sno,Sname(STUDENT)查询选修了全部课程的学生号和姓名Sno,Cno(SC)Cno(Course)Sno,sname(STUDENT),关系运算,元组关系演算域关系演算关系运算的安全性,元组关系演算,在元组关系演算系统中,称 t|(t)为元组演算表达式,表示所有使谓词为真的元组集合。t为元组变量。如果元组变量前有“全称”()或“存在”()量词,则称其为约束元组变量,否则称为自由

20、元组变量。(t)是元组关系演算公式,由原子公式和运算符组成,简称公式。原子公式:R(t)。t是关系R中的一个元组。t i u j。t i 与u j 分别为t的第i个分量和u的第j个分量,它们之间满足比较关系。t i c或c t i。分量t i 与常量c之间满足比较关系。,公式的递归定义:每个原子公式是公式。如果1,2是公式,则1 2,1 2,也是公式。如果是公式,则t()和t()也是公式。,元组关系演算(续I),元组关系演算(续II),在元组演算公式中,各种运算符的优先次序为:算术比较运算符最高。量词次之,且的优先级高于,多个相同量词的优先级从左向右递增。逻辑运算符最低,且优先级高于,高于,多

21、个相同的逻辑运算符优先级从左向右递增。加括号时,括号内运算符优先,同一括号内的运算符之优先级遵循I,II,III。有限次地使用上述五条规则得到的公式是元组关系演算公式,其他公式不是元组关系演算公式。,元组关系演算(续III),查询信息系(IS)的全体学生t|STUDENT(t)t5=IS查询年龄小于20岁的学生t|STUDENT(t)t320查询学生的姓名和所在的系t(2)|(u)(STUDENT(u)t1=u2 t2=u5),元组关系演算(续IV),查找学号为95001的学生姓名和年龄t(2)|(u)(STUDENT(u)u1=95001t1=u2 t2=u4)查找选修了1号课程或3号课程的

22、学生的学号t(1)|(u)(SC(u)(u2=1 u2=3)t1=u1),元组关系演算(续V),求选修了1号而没有选2号课程的学生号。t(1)|(u)(SC(u)u2=1(v)(SC(v)u1=v1 v2=2)t1=u1)求选修了1号课程的学生号和姓名。t(2)|(u)(v)(Student(u)SC(v)v2=1 u1=v1 t1=u1 t2=u2),元组关系演算(续VI),元组关系演算与关系代数的等价性i1,i2,ik(R)=tk|(u)(R(u)t1=ui1)tk=uik)F(R)=t|R(t)F R S=t(n+m)|(u(n)(v(m)(R(u)S(v)t1=u1 tn=un tn+

23、1=v1 tn+m=vm)RS=t|R(t)S(t)RS=t|R(t)S(t),元组关系演算(续VII),设R和S都是二元关系,试把关系代数表达式1,4(2=3(RS)转换为元组表达式RS=t(4)|(u)(v)(R(u)S(v)t1=u1 t2=u2 t3=v1 t4=v2)2=3(RS)=t(4)|(u)(v)(R(u)S(v)t1=u1 t2=u2 t3=v1 t4=v2 u2=v1)1,4(2=3(RS)=t(2)|(u)(v)(R(u)S(v)t1=u1 t2=v2 u2=v1),域关系演算,在域关系演算系统中,称 t1t2tk|(t1,t2,tk)为域演算表达式。表示所有使谓词为真

24、的元组集合。ti代表域变量,如果域变量前有“全称”()或“存在”()量词,则称其为约束域变量,否则称为自由域变量。为由域关系演算公式,由原子公式和运算符组成。原子公式:R(t1,t2,tk)。ti是域变量或域常量。ti uj。域变量ti与uj之间满足比较关系。ti c或c ti。域变量ti与常量c之间满足比较关系。,域关系演算(续I),公式的递归定义:每个原子公式是公式。如果1,2是公式,则1 2,1 2,也是公式。如果是公式,则ti()和ti()也是公式。域关系演算公式中运算符优先级与元组演算公式中运算符优先级的规定相同。域关系演算公式是有限次运用上述规则得到的公式,其他公式不是域关系演算公

25、式。,域关系演算(续II),查找学号为95001的学生姓名和年龄t1t2|(u1)(u3)(u5)(Student(u1t1u3t2u5)u1=95001)查找选修了1号课程或3号课程的学生的学号t1|(u2)(u3)(SC(t1u2u3)(u2=1 u2=3),关系演算的安全性,关系演算有可能会产生无限关系或导致无穷验证,这样的表达式是不安全的。如t|R(t)会导致无限关系。而当t的定义域无穷时,要想判断(t)(F(t)为假或判断(t)(F(t)为真时会发生无穷验证。为此,需对两种关系演算进行限制,使之具有安全性。设是一个元组关系演算公式,的符号集合(简记为dom()是由如下两类符号构成的集合:中的所有常量中出现的关系的所有元组的所有分量值,关系运算的安全性(续I),当满足下列条件时,一个元组关系演算表达式t|(t)是安全的:如果(t)为真,则元组t的每个分量都属于dom()。对于中的每个形如(t)(F(t)的子表达式,如果F(t)为真,则元组t的每个分量都属于dom()。对于中的每个形如(t)(F(t)的子表达式,如果F(t)为假,则元组t的每个分量都属于dom()。域关系演算表达式也必须满足类似的条件才是安全的。,关系运算的安全性,dom(R(t)=1,2,B1,B2,B3,R,t|R(t),

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号