




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 关系数据库,简介,e.f.codd于70年代初提出关系数据理论,他因此获得1981年的acm图灵奖。 关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。 早期代表系统 system:由ibm研制。 ingres:由加州berkeley分校研制。 目前主流的商业数据库系统 oracle,sybase,sql server,db2。 access,foxpro,foxbase。,关系数据模型,关系模型是关系数据库系统的基础,它由以下部分组成: 数据结构:关系(二维表)。关系模型的数据结构非常单一,无论是实体还是实体间的联系均由关系表示。 完整性约束:包括关系模型所要求的完整性约束(实体完整性约束,参照完整性约束),以及应用领域需要遵循的用户定义完整性约束。,关系数据模型(续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),关系操作:包括:选择、投影、连接、除、并、交、差等查询操作和增加、删除、修改操作两大部分。其特点是集合操作方式,操作的对象及结果都是集合。 关系数据语言: 关系代数:用对关系的运算来表达查询,需要指明所用操作。 关系演算:用谓词来表达查询,只需描述所需信息的特性。 元组关系演算:谓词变元的基本对象是元组变量。 域关系演算:谓词变元的基本对象是域变量。 sql语言,关系数据模型(续iii),特点: 面向集合的存取方式。关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(set-at-a-time)的方式。而非关系型的数据操作方式是一次一记录(record-at-a-time)。 非过程化。关系操作不要求用户提供存取路径,存取路径的选择由dbms完成。用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成。,数据结构,域(domain) 一组具有相同的数据类型的值的集合。 如整数的集合、字符串的集合、全体学生的集合。 笛卡尔积(cartesian product) 给定一组域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是所有可能的(教师,专业,学生)元组集合。 笛卡尔积可表为二维表的形式:,数据结构(续ii),数据结构(续iii),关系 笛卡尔积d1d2dn的子集叫做在域d1 , d2 , dn上的关系,用r(d1 , d2 , dn )表示。 r是关系的名字,n是关系的度或目(degree)。当n=1时称为单元关系,当n=2时称为二元关系,依此类推。 关系可以表示为二维表,表的每一行对应一个元组,每列对应一个域。由于域有可能相同,为了加以区分,必须对每个列起一个名称,称为属性。n元关系必有n个属性。 关系teach(teacher, speciality, student),属性,元组,数据结构(续iv),关系模型对关系的限定和扩充 无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。 通过为关系的每一个列附加一个属性名取消关系的有序性,即(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 (person, speciality, person),还应写成teach(teacher, speciality, student)。,数据结构(续vi),列的顺序无关紧要,即列次序可以互换。 任意两个元组不能完全相同(集合内不能有相同的两个元素)。 行的顺序无关紧要,即行次序可以互换。 每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1nf)的。,数据结构(续vii),关系模式 关系的描述称作关系模式,它可以形式化地表示为:r(u,d,dom,f, i),其中,r为关系名,u为组成该关系的属性名集合,d为属性集u所来自的域,dom为属性向域的映象集合、f为属性间的数据依赖关系集合,i为完整性约束集合。关系模式通常可以简记作r(a1 , a2 , an ) 。 关系是关系模式在某一时刻的状态或内容。关系模式是相对稳定的。而关系是动态的,是随时间不断变化的。,数据结构(续viii),关系数据库 在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。关系数据库也有型和值之分: 其型是关系模式的集合,即数据库描述,称为关系数据库模式。 其值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。,完整性约束,候选码 关系模式r(u)的属性集合k u是候选码,如果 (1) r(u)的任何一个关系实例的任意两个元组在属性集合k上的值都不同。即唯一性,候选码的属性值必须能够唯一地标识关系中的所有元组。 (2) k的任何真子集都不满足条件(1)。即最小性,候选码不能包含多余属性。,完整性约束(续i),主码 若一个关系具有多个候选码时,选择其中一个作为该关系的主码。 主属性与非主属性 候选码中的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性。 在最简单的情况下,候选码只包括一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。,完整性约束(续ii),外部码 设f是基本关系r的一个或一组属性,但不是r的码。如果f与基本关系s的主码ks相对应,则称f是关系r的外部码(foreign key),并称r为参照关系(referencing relation),s为被参照关系(referenced relation)或目标关系(target relation)。r和s不一定是不同的关系。 显然,目标关系s的主码ks和参照关系的外部码f必须定义在一个域上。,完整性约束(续iii),实体完整性 定义:关系r主码中所包含的任意属性都不能取空值。 空值:不知道或无意义。 意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的。 参照完整性 如果关系r2的外部码fk与关系r1的主码pk相对应,则r2中的每一个元组的fk值或者等于r1 中某个元组的pk 值,或者为空值。 意义:如果关系r2的某个元组t2参照了关系r1的某个元组t1,则t1必须存在。,完整性约束(续iv),例如关系student在sdept上的取值有两种可能: 空值,表示该学生尚未分到任何系中。 若非空值,则必须是dept关系中某个元组的sdept值,表示该学生不可能分到一个不存在的系中。 用户定义的完整性 用户针对具体的应用环境定义的完整性约束条件。 如sno要求是8位字符,ssex要求取值为“男”或“女”。 系统支持 实体完整性和参照完整性由系统自动支持。 系统应提供定义和检验用户定义的完整性的机制。,关系代数,传统的集合运算 集合并、集合交、集合差、广义笛卡儿积 专门的关系运算 选择、投影、连接、商 基本运算 集合并、集合差、广义笛卡儿积、选择、投影,关系代数运算符,并运算,定义 设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的元组构成。 交运算可以通过差运算来重写: 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是属性名、常量、或简单函数。 是比较算符, , , , , , ,选择运算(续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(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),外连接 为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接。 外连接 = 自然连接 + 失配的元组。 外连接的形式:左外连接、右外连接、全外连接 。 左外连接 = 自然连接 + 左侧表中失配的元组。 右外连接 = 自然连接 + 右侧表中失配的元组。 全外连接 = 自然连接 + 两侧表中失配的元组。,外连接(续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,张军同学所选修的全部课程,如何得到选修了全部课程的学生?,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(student) 求选修了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(sc) 求选修了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为元组变量。如果元组变量前有“全称”()或“存在”()量词,则称其为约束元组变量,否则称为自由元组变量。 (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),在元组演算公式中,各种运算符的优先次序为: 算术比较运算符最高。 量词次之,且的优先级高于,多个相同量词的优先级从左向右递增。 逻辑运算符最低,且优先级高于, 高于 ,多个相同的逻辑运算符优先级从左向右递增。 加括号时,括号内运算符优先,同一括号内的运算符之优先级遵循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号课程的学生的学号 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+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 ) 为域演算表达式。表示所有使谓词为真的元组集合。 ti代表域变量,如果域变量前有“全称”()或“存在”()量词,则称其为约束域变量,否则称为自由域变量。 为由域关系演算公式,由原子公式和运算符组成。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 威士忌饮法培训
- 居民死亡及安葬手续办理流程
- 养老保险销售技巧与沟通话术
- 大学团日活动总结
- 厨房食品安全培训教材课件
- 合同起草与审查培训课件
- 建筑工程验收流程详细说明书
- 厨房间安全培训课件
- 八年级物理物态变化单元测试解析
- 医疗机构质量控制管理体系建设方案
- 【基于Creo的NGW型行星齿轮减速器设计9000字】
- DB64∕T 2023-2024 不动产登记操作指南
- 云南省云南师大附中2026届高考适应性月考卷地理及答案(一)
- oa数据安全管理制度
- 旋风除尘器设计选型
- 子宫纵膈微创治疗进展-洞察及研究
- 中医全科课件下载
- 休闲会所规划方案(3篇)
- 氧化还原反应学案高一上学期化学人教版
- 拒绝烟草诱惑向“吸烟”说不!课件-2024-2025学年高二下学期世界无烟日主题班会
- 月嫂证考试试题及答案
评论
0/150
提交评论