第3章 关系代数
- 格式:ppt
- 大小:201.50 KB
- 文档页数:12
第三章关系代数与关系运算关系数据语言有三类:1.关系代数语言2.关系演算语言(元组关系演算语言、域关系演算语言)3.具有关系代数和关系演算双重特点的语言如SQL一.关系代数关系代数:一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。
用对关系的运算来表达查询。
运算:将一定的运算符作用于一定的运算对象上,得到预期的运算结果运算三要素:运算符、运算对象、运算结果关系代数的运算对象和结果都是:关系关系代数运算符(四类):集合运算符、专门的关系运算符、算术比较符和逻辑运算符集合运算符:并(U)、差(—)、交(∩)传统的集合运算符——从关系的“水平“方向即行的角度来进行专门的关系运算符:广义笛卡尔积(ⅹ)、选择(σ)、投影(π)、连接、除专门关系运算符不仅涉及行而且涉及列比较运算符:>、<、=、≥、≤、≠逻辑运算符:¬∧∨用来辅助专门的关系运算符二.传统的集合运算符传统集合运算符是二目运算符设关系R和S具有相同的目n(即n个属性),且相应的属性取自同一个域1.并(Union)记作:RUS={t|t∈R∨t∈S}结果仍是n目关系,由属于R或S的元组组成。
例:(a)(b)2.差关系R与S的差记作:R-S={t|t∈R∧t∈S} 结果仍是n目,由属于R而不属于S的所有元组组成。
如图E3.交关系R与S的交记作:R∩S = { t | t∈R∧t∈S }结果仍是n目,由即属于R又属于S的所有元组组成。
如图D 可以用差来表示R∩S=R-(R-S)4.广义笛卡尔积两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(m+n)列的元组的集合。
元组的前n列是关系R的一个元组,后m列是关系S的一个元组。
若R有k1个元组,S有k2个元组,那么关系R与S的广义笛卡尔积有k1 x k2个元组,记作R×S = { t r t s | t r∈R∧t s∈S } 结果是m+n目如图例总结:集合运算符主要研究的是元组,即对表中的行进行研究、操作。
《实用数据库》课程复习提纲第1章数据库系统概述本章要点掌握数据库最常用的术语和基本概念明确常用数据模型组成要素明确最常用的数据模型的区别及优缺点掌握数据库系统的三级模式结构了解数据库系统的组成具体内容1.在数据库方式下,信息处理中占据中心位置的是数据。
2.数据库在磁盘上的基本组织形式是文件。
3.DBS是指数据库系统。
4.数据库系统中,最早出现的数据模型是层次模型。
5.数据库技术的主要目的是有效地管理和存取大量的数据资源。
6.与“文件”结构相比,“数据库”结构有些什么不同?•数据的结构化。
文件由记录组成,但各文件之间缺乏联系。
数据库中数据在磁盘中仍以文件形式组织,但这些文件之间有着广泛的联系。
数据库的逻辑结构用数据模型来描述,整体结构化。
数据模型不仅描述数据本身的特点,还要描述数据之间的联系。
•数据独立性。
文件只有设备独立性,而数据库还具有逻辑独立性和物理独立性。
•访问数据的单位。
访问文件中的数据,以记录为单位。
访问数据库中的数据,以数据项(字段)为单位,增加了系统的灵活性。
第2章数据库设计本章要点•了解数据库设计的任务与步骤•了解需求分析阶段的任务•掌握实体-联系模型•掌握E-R图的概念及设计方法•掌握关系模型的概念•了解数据库的实施、使用与维护具体内容1.实体集的联系类型有如下3种类型:(1)一对一联系设有实体集A与实体集B,如果A中的一个实体,至多与B中的一个实体关联,反过来,B中的一个实体,至多与A中的一个实体关联,称A与B是“一对一”联系类型,记作(1:1)。
(2)一对多联系设有实体集A与实体集B,如果A中的一个实体,与B中可以有多个实体关联,反过来,B中的一个实体,至多与A中的一个实体关联,称A与B是“一对多”联系类型,记作(1∶n)。
(3)多对多联系设有实体集A与实体集B,如果A中的一个实体,与B中可以有多个实体关联,反过来,B中的一个实体,与A中可以有多个实体关联,称A与B是多对多联系类型,记作(m∶n)。
第三章关系代数与关系运算关系数据语言有三类:1.关系代数语言2.关系演算语言(元组关系演算语言、域关系演算语言)3.具有关系代数和关系演算双重特点的语言如SQL一.关系代数关系代数:一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。
用对关系的运算来表达查询。
运算:将一定的运算符作用于一定的运算对象上,得到预期的运算结果运算三要素:运算符、运算对象、运算结果关系代数的运算对象和结果都是:关系关系代数运算符(四类):集合运算符、专门的关系运算符、算术比较符和逻辑运算符集合运算符:并(U)、差(—)、交(∩)传统的集合运算符——从关系的“水平“方向即行的角度来进行专门的关系运算符:广义笛卡尔积(ⅹ)、选择(σ)、投影(π)、连接、除专门关系运算符不仅涉及行而且涉及列比较运算符:>、<、=、≥、≤、≠逻辑运算符:¬∧∨用来辅助专门的关系运算符二.传统的集合运算符传统集合运算符是二目运算符设关系R和S具有相同的目n(即n个属性),且相应的属性取自同一个域1.并(Union)记作:RUS={t|t∈R∨t∈S}结果仍是n目关系,由属于R或S的元组组成。
例:(a)(b)(c)(d) (e)2.差关系R与S的差记作:R-S={t|t∈R∧t∈S} 结果仍是n目,由属于R而不属于S的所有元组组成。
如图E3.交关系R与S的交记作:R∩S = { t | t∈R∧t∈S }结果仍是n目,由即属于R又属于S 的所有元组组成。
如图D 可以用差来表示R∩S=R-(R-S)4.广义笛卡尔积两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(m+n)列的元组的集合。
元组的前n列是关系R的一个元组,后m列是关系S的一个元组。
若R有k1个元组,S 有k2个元组,那么关系R与S的广义笛卡尔积有k1 x k2个元组,记作R×S = { t r t s | t r∈R∧t s∈S } 结果是m+n目如图例总结:集合运算符主要研究的是元组,即对表中的行进行研究、操作。
第3章 关系数据库数据库系统应用Data Base System Application张建国哈工大计算机科学与技术学院2008-9-21哈工大计算机学院 张建国 Slide 3-1第3章 关系数据库2008-9-212第3章 关系数据库本章主要内容关系的理论基础(掌握) 关系的定义 关系模型的基本概念(掌握) 关系数据结构 关系操作 关系完整性 关系代数(掌握) 关系的完整性约束(掌握) 现在的数据库 大多是关系数 据库.2008-9-21哈工大计算机学院 张建国Slide 3-3第3章 关系数据库3.1 关系的理论基础关系模型是IBM公司的San Jose研究所 的研究员E.F.Codd提出来的. 1970年,Codd发表了一篇文章,讨论了关系 数据库的基本概念 A Relational Model of Data for A large Shared Data Banks(一种大型共 享数据库数据的关系模型). 后来,他发表了一系列文章,开创了关系 方法和关系数据理论研究,1981年获 ACM图灵奖.2008-9-21哈工大计算机学院 张建国Slide 3-4第3章 关系数据库3.1 关系的理论基础(Cont.)关系建立在集合代数基础之上,因此从集合论角度给出关系的 定义. 1. 域Domain 定义 域是一组具有相同数据类型的值的集合. 例:自然数、整数、星期、{0,1}、{男,女}、… 域可以是有 限集,也可 以是无限集2008-9-21哈工大计算机学院 张建国Slide 3-5第3章 关系数据库3.1 关系的理论基础(Cont.)2. 笛卡儿积Cartesian Product 定义 给定一组域D1,D2,…,Dn(这些域中可以有相同的) D1,D2,…,Dn 的笛卡尔积为: D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di, i=1,2,…,n} 其中:(d1,d2,…,dn)叫一个n元组(n-tuple),简称元组 di叫一个分量 笛卡尔积的基数 设D1,D2,…,Dn 为有限集,基数分别为mi(i=1,2,…,n),则 D1×D2×…×Dn的基数M=m1×m2×…×mn2008-9-21哈工大计算机学院 张建国Slide 3-6第3章 关系数据库3.1 关系的理论基础(Cont.)例: 设D1为男士的集合,D2为女士的集合, D3为儿童的集合 D1={张伟,李强,王刚}; D2={赵梅,朱兰};D3={张小伟,张小 梅,李小兰}D1×D2×D3={(张伟,赵梅,张小伟),(张伟,赵梅,张小梅), (张伟,赵梅,李小兰),(张伟,朱兰,张小伟),该笛卡儿积 的基数 M=3×2×3=18(张伟,朱兰,张小梅),(张伟,朱兰,李小兰), (李强,赵梅,张小伟),(李强,赵梅,张小梅), (李强,赵梅,李小兰),(李强,朱兰,张小伟), (李强,朱兰,张小梅),(李强,朱兰,李小兰), (王刚,赵梅,张小伟),(王刚,赵梅,张小梅), (王刚,赵梅,李小兰),(王刚,朱兰,张小伟), (王刚,朱兰,张小梅),(王刚,朱兰,李小兰)}2008-9-21哈工大计算机学院 张建国Slide 3-7第3章 关系数据库3.1 关系的理论基础(Cont.)(3) 关系Relation 定义 D1×D2×…×Dn 的子集叫作在域D1,D2,…,Dn上的关系, 表示为: R(D1, D2,…, Dn) 其中:R为关系名,n为关系的度(或目),D1, D2,…, Dn为域名 由于域名可以相同,为了加以区分,必须为每一列起一个名, 称属性Attribute,故关系常表示为: R(A1,A2,…,An ) 例:从D1×D2×D3中取一 个家庭关系 家庭(丈夫,妻子,孩子)2008-9-21家庭丈夫 张伟 张伟 李强妻子 赵梅 赵梅 朱兰孩子张小伟 张小梅 李小兰哈工大计算机学院 张建国Slide 3-8第3章 关系数据库3.1 关系的理论基础(Cont.)(4) 属性到域的映象 若属性名与域名相同,则用域名作属性名. 若属性名与域名不同,则需要指出属性到域的映象. Ai=Dom(Di) 表明:属性Ai来自于域Di 例:课程(课号,课名,学时数,性质,先修课号) 域名: 课号,课名,学时数,性质 先修课号来自域课号,用先修课号=Dom(课号)表示2008-9-21哈工大计算机学院 张建国Slide 3-9第3章 关系数据库3.1 关系的理论基础(Cont.)(5) 数据库关系与数学中关系的区别 关系模型对其数学定义作了适当的扩充: 笛卡尔积可以是一个无限集合,但关系必须是有限集合. 在数学意义上, (d1,d2,…,dn)≠ (d2,d1,…,dn) 列之间不满足交换律,故通过为关系的每一个列加一个属性 名,取消关系中列的有序性的限制. 这是要注意的 !2008-9-21哈工大计算机学院 张建国Slide 3-103.2 关系模型的基本概念(Cont.)(6) 关系的性质列是同质的:每一列中的数据类型相同列名是唯一的:不同的列(属性)可以来自于同一个域, 需要指出属性到域的映象行的顺序无关:任何两行可以互换列的顺序无关:任何两列可以互换任何两行不能完全相同:由主码区分分量必须是原子量:每一列不可再分割3.1 关系的理论基础(Cont.) (7) 关系的优点与不足关系模型的优点理论基础扎实:集合论,关系数据理论.概念单一:实体用关系表示,联系也用关系表示.存取路径对用户是透明的:用户不必知道存取路径规范化:最基本的要求是每一个属性不可再分割.数据用表表示,查询结果也用表表示.关系模型的缺点效率不如非关系模型,因此需要进行查询优化,这样增加了DBMS自身的开发难度.但由于计算机处理速度的提高,数据库优化算法的改善,使关系数据库的效率仍远高于其他数据模型3.2 关系的数据结构关系模型是通过满足一定条件的二维表来表示实体集合及数据之间联系的一种数据模型.具有坚实的数学基础和较严密的理论,使用灵活方便,得到了迅速发展,80年代以后的数据库系统几乎都支持关系模型.关系的逻辑数据结构实体和联系都用关系表示.从用户的观点看,关系是一张二维表.关系的存储结构实体和联系都用关系(表)来表示.每个表可对应一个文件,也可以将多个表存储在一个文件中.3.2 关系的数据结构(Cont.)课程学生选课分数mn学生(学号,姓名,性别,出生日期,专业)课程(课号,课名,学时,学分,性质)选课(学号,课号,分数)关系的数据结构(关系模式)注意:在关系数据库理论中,关系Relation 就是表Table ;有些资料将联系Relationship 称为关系Relation.例:一个学生关系学生(学号,姓名,性别,出生日期,专业)计算机1982-12-03男张伟1022211103计算机1983-05-23女李小莉1022211102…………………………计算机1982-02-18男王小明1022211101专业出生日期性别姓名学号关系名属性名记录(元组)数据项,分量码学生理论研究时称“关系”,在具体数据库中称“表”3.2 关系的数据结构(Cont.)3.2 关系的数据结构(Cont.)关系的术语关系模式Relation Schema:关系的型,是对关系的描述,即关系的框架关系Relation:关系模式的一组具体取值关系数据库模式Relation Database Schema:关系模式的集合关系数据库Relation Database:关系的集合元组Tuple:关系中的一行属性Attribute:由于域可以相同,为了区分,必须为每个列取一个名字,称为属性域Domain:属性的取值范围3.2 关系的数据结构(Cont.)超码(键)Super Key:能唯一标识一个元组的属性组候选码(键)Candidate Key:能唯一标识一个元组的最小属性组主码(键)Primary Key:若候选码有多个,选择其中的一个作主码例:学号,身份证号主属性Primary Attribute:候选码中的属性非主属性Non-primary Attribute:不包含在任何候选码中的属性全码All Key:全部属性都是主属性关系操作是集合操作,只需指出要干什么,不必指出怎么干,不必指出存取路径.查询(检索)操作从数据库中查找数据更新操作插入数据记录修改数据记录删除数据记录所有关系操作都必须满足完整性约束条件.保证数据是正确的3.3关系代数3.3关系代数(Cont.)关系操作分类关系代数通过对关系的运算表示查询方式关系演算用谓词表示查询方式元组关系演算:谓词变元的基本对象是元组域关系演算:谓词变元的基本对象是域结构化查询语言SQL一种可实际使用的语言具有关系代数和关系演算双重特点,集DDL、DML、DCL于一体,已成为关系数据库的标准语言3.3关系代数(Cont.)关系代数运算包括两大类传统的集合运算:从行的角度进行运算.并∪, 交∩,差—,广义向卡尔积×专门的关系运算:从行和列两种角度进行运算.选择σ,投影π,连接⋈,除÷在各种运算中,使用下列运算符比较运算符: <, ≤, =, >, ≥, ≠逻辑运算符:¬(非),∧(与),∨(或)1.传统的集合运算前提条件二目运算,关系R 和S 具有相同的目n;相应的属性来自同一个域.R SR S交运算R ∩SR ∩S={t |t ∈R ∧t ∈S}结果仍由n 目关系组成,由既属于R 又属于S 的元组组成,用于检索操作.并运算R ∪SR ∪S={t |t ∈R ∨t ∈S}结果仍由n 目关系组成,由属于R 或属于S 的元组组成,用于插入操作.3.3 关系代数(Cont.)差运算R-S={t |t ∈R ∧t ∉S}结果仍由n 目关系组成,由属于R ,但不属于S 的元组组成,用于删除操作.RSR S广义笛卡尔积R ×S={ t r ^t s |t ∈R ∧t ∈S}设R 的目为n ,S 的目为m ,结果为n+m 目关系,其中前n 列是关系R 的一个元组,后m 列是关系S 的一个元组.设R 有k1个元组,S 有k2个元组,则R ×S 有k1 ×k2个元组.3.3关系代数(Cont.)c1c2c1c2b1b2b2b3a1a1a2a1C B A R ∪Sc2c2c1c2c2c2c2c2c1S.C b2b3b2b2b2b3b2b3b2a1a1a2a1a1a1a1a1a2c1c1c1c2c2c2c1c1c1b1b1b1b2b2b2b2b2b2a1a1a1a1a1a1a2a2a2S.B S.A R.C R.B R.A R ×SR ∩Sc2c1b2b2a1a2C B A c2b2a1C B A R-Sc2c2c1b2b3b2a1a1a2C B A Sc1c2c1b1b2b2a1a1a2C B A R3.3 关系代数(Cont.)一个学生-课程系统S-C 有三个关系:计算机信息数学信息Sdept 20191819男女女男李勇刘晨王敏张立221101231101232101231102Sage Ssex Sname Sno 928588908010011002100310021003221101221101221101231101231102Grade Cno Sno4243424Credit 10051001100610071006数据库高等数学信息系统操作系统数据结构数据处理C 语言1001100210031004100510061007PCno Cname Cno StudentCourseSCGradem n StudentCourseSC 2.专门的关系运算3.3 关系代数(Cont.)选择运算SelectionσF (R)={r |r ∈R ∧F(r )=’True ’}F 是一个逻辑表达式;结果取在关系R 中选择满足条件F 的元组.信息信息Sdept 1919女男刘晨张立231101231102Sage Ssex Sname Sno 例:在S-C 系统中,查询"信息"系全体学生.σSdept =‘信息’(Student)或σ5=‘信息’(Student)3.3 关系代数(Cont.)投影运算ProjectionΠA(R)={r[A]|r∈R}A是若干个属性结果取关系R中指定的列,并去掉重复元组,组成新关系.例:查询全体学生的学号,姓名和系名.ΠSno,Sname,Sdept(Student)由于学号是唯一的,查询结果的记录个数与表中的记录个数相同.例:查询所有系名.ΠSdept(Student)去掉重复的元组后,查询结果仅与系的个数相同.计算机信息数学信息Dept李勇刘晨王敏张立221101231101232101231102SnameSno计算机数学信息Dept3.3 关系代数(Cont.)连接JoinR ⋈S= {t r ^t s |t r ∈R ∧t s ∈S ∧t r [A]=t s [B]}A θBA 和B 分别是R 和S 中度数相同且可比的属性或属性组.结果为R ×S 中满足条件A θB 的元组,其前n 个属性取自于R ,后m 个属性取自于S.56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B S71071010E b2b3b2b3b3S.B 55668b1b1b2b2b3a1a1a1a2a2C R.B A R ⋈S C<E 例:R ⋈SC<E3.3 关系代数(Cont.)等值连接R ⋈S={t r ^t s |t r ∈R ∧t s ∈S ∧t r [A]=t s [B]}A=B 例R ⋈SR.B=S.B 56812b1b2b3b4a1a1a2a2C B A R 371022b1b2b3b3b5E B SR ⋈SR.B=S.B 37102E b1b2b3b3S.B 5688b1b2b3b3a1a1a2a2C R.B A 3.3 关系代数(Cont.)自然连接Nature JoinR ⋈S={t r ^t s |t r ∈R ∧t s ∈S ∧t r [B]=t s [B]}等值连接与自然连接的区别:自然连接要求两个关系中具有相同的属性列B ,所以运结果仅保留一列B.等值连接保留两个关系的A 和B 列(即使R.B=S.B ).例:R ⋈S56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B S37102E 5688b1b2b3b3a1a1a2a2C B A R⋈S3.3 关系代数(Cont.)各种连接的例子56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B SR ⋈SR.B=S.B37102E b1b2b3b3S.B 5688b1b2b3b3a1a1a2a2C R.B A 71071010Eb2b3b2b3b3S.B 55668b1b1b2b2b3a1a1a1a2a2C R.B A R ⋈SC<E37102E 5688b1b2b3b3a1a1a2a2C B A R ⋈S3.3 关系代数(Cont.)查找全体同学的学号,姓名,课名和成绩计算机信息数学信息Sdept 20191819男女女男李勇刘晨王敏张立221101231101232101231102Sage Ssex Sname Sno 928588908010011002100310021003221101221101221101231101231102Grade Cno Sno42434Credit 1005100110061007数据库高等数学信息系统操作系统数据结构10011002100310041005PCno Cname Cno StudentCourseSC 3.3 关系代数(Cont.)ΠSno,Sname,Cname, Grade (Student ⋈SC ⋈Course )自然连接的例子1111111212部门号财务部财务部财务部人力资源部人力资源部名称62130236213023621302362450386245038男女女女男李军赵萍董辉常萍张伟11011102110312011202电话性别姓名职工号职工⋈部门1111111212男女女女男李军赵萍董辉常萍张伟11011102110312011202部门号性别姓名职工号62130236245038财务部人力资源部1112电话名称部门号部门职工3.3 关系代数(Cont.)例:(R)L ⋈(S)R.B=S.B ∨R左连接Left Join(R)L ⋈(S)={(t r ^t s |t r ∈R ∧t s ∈S ∧t r [B]=t s [B])∨(t r |t r ∈R)}R.B=S.B ∨R56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B SR ⋈SR.B=S.B ∨R 37102E b1b2b3b3S.B 568812b1b2b3b3b4a1a1a2a2a2C R.B A 3.3 关系代数(Cont.)左连接的例子11111212职工.部门号11111212部门.部门号财务部财务部人力资源部人力资源部名称6213023621302362450386245038男女女女男李军赵萍董辉常萍张伟11011102110312011202电话性别姓名职工号职工L ⋈部门11111212男女女女男李军赵萍董辉常萍张伟11011102110312011202部门号性别姓名职工号62130236245038财务部人力资源部1112电话名称部门号部门职工3.3 关系代数(Cont.)右连接Right Join(R)R ⋈(S)={(t r ^t s |t r ∈R ∧t s ∈S ∧t r .A=t s .B)∨(t s |t s ∈S )}R.B=S.B ∨S例:(R)R ⋈(S)R.B=S.B ∨S56812b1b2b3b4a1a1a2a2C B A R371022b1b2b3b3b5E B SR ⋈SR.B=S.B ∨S371022Eb1b2b3b3b5S.B5688b1b2b3b3a1a1a2a2CR.BA3.3 关系代数(Cont.)右连接的例子1111111212男女女女男李军赵萍董辉常萍张伟11011102110312011202部门号性别姓名职工号621302362450386310320财务部人力资源部生产部111213电话名称部门号1111111212职工.部门号111111121213部门.部门号财务部财务部财务部人力资源部人力资源部生产部名称621302362130236213023624503862450386310320男女女女男李军赵萍董辉常萍张伟11011102110312011202电话性别姓名职工号职工R ⋈部门部门职工 3.3 关系代数(Cont.)除Division给定两个关系R(X,Y)和S(Y,Z),其中X,Y,Z 为属性组.R 中的Y 与S 中的Y 可以有不同的属性名,但必须出自同一个域.R 与S 的除运算得到一个新关系P(X),P 是在R 中满足下列条件的元组在X 列上的投影:在R 中分量值X 的象集Y x 包含S 中Y 上投影的集合.记作:R ÷S={t r [X]|t r ∈R ∧πy (S) ⊆Y x }其中Y x 为X 在R 中的象集.例:求至少选修了1001号和1003号课程的学生号码.πSno,Cno (SC)÷K3.3 关系代数(Cont.)10011003Cno关系代数综合练习的例子计算机信息数学信息Dept 20191819男女女男李勇刘晨王敏张立221101231101232101231102Age Sex Sname Sno 928588908010011002100310021003221101221101221101231101231102Grade CnoSno4243424Credit 10051001100610071006数据库高等数学信息系统操作系统数据结构数据处理C 语言1001100210031004100510061007PCno Cname Cno StudentCourseSCGradem n StudentCourseSC3.3 关系代数(Cont.)3.3 关系代数(Cont.)关系代数综合练习求"计算机"系全体学生的学号和姓名.求全部学生的学号,姓名,课程,成绩.求学号为"221101"的学生的全部成绩,包括学号,姓名,课名,成绩.求课程"高等数学"的成绩单,包括学号,姓名,系名,成绩.求选修了课程的学生的学号和姓名.求学生的年龄分布情况.求"信息"系全体学生所选修的课程名称.3.4 关系的完整性关系的完整性约束关系中的所有数据必须满足的约束条件三类完整性实体完整性参照完整性用户定义完整性3.4 关系的完整性(Cont.)1. 实体完整性规则若属性A是基本关系R的主属性,则A不能取空值.关系模型的表分为基本表(基本关系),查询表和视图.基本表:实际存在的表查询表:查询结果表视图:定义的虚表空值与零值不同空值:没有值,但不是0零值:其值为0注意空值与零值的区别3.4 关系的完整性(Cont.)例: 学生(学号,姓名,年龄,系名)学号是主码中的属性,则学号不能为空.自动化张莉0636101010322刘云06361010102管理工程21李伟06361010101系名年龄姓名学号主属性不能取空值非主属性可以取空值3.4 关系的完整性(Cont.)2. 参照完整性实体之间的联系是通过外部码进行的.例:学生(学号,姓名,性别,系号)系(系号,系名,电话)定义:外键Foreign Key设F是基本关系R的一个或一组属性,但F不是R的主码.若F 与基本关系S的主码Ks相对应,则称F是基本关系R的外码(R 可以与S是同一关系).称R为参照关系,S为被参照关系或目标关系.在学生(学号,姓名,性别,专业,班长学号)中班长学号是也是一个学号,必须与学号出自同一个域,故班长学号也是外码.参照完整性规则若属性或属性组F 是基本关系R 的外码,则:F 在R 中取空值;若F 在R 中非空则其在S 中必须存在.3.4 关系的完整性(Cont.)02张莉063610101030221王刚0636101010422刘云063610101020121李伟06361010101系号年龄姓名学号R:学生86282208自动化0286282135计算机01电话系名系号S:系3.4 关系的完整性(Cont.)3. 用户定义完整性根据用户的具体要求定义的完整性.例:考试成绩在0~100分之间.姓名最多为4个汉字.性别必须取"男"或"女".规定职务越高则工资就越高.哈尔滨市汽车牌号为"黑AXXXXX".修改工资时,新工资值不能小于旧工资值.职工的月奖金不能高于全体职工平均奖金的3倍.……本章小结关系数据库的产生与发展E.F.Codd关系模型的三个组成部分数据结构、关系操作、完整性约束关系的数学思想域、笛卡尔积、关系、关系模式、属性到域的映象关系的基本概念关系、关系模式、关系数据库、关系数据库模式、属性、超码、候选码、主码、主属性、非主属性本章小结(Cont.)关系代数传统的集合运算:并、交、差、广义笛卡尔积专门的关系运算:选择、投影、连接关系的三类完整性实体完整性参照完整性用户定义完整性本章作业与任务提交部分用关系代数表示下列查询查询全体学生的全部数据.查询全体学生的学号,姓名和性别.查询全体”女”同学的全部信息.查询所有系的名字.查询”计算机系”全体同学的学号和姓名.查询学号为”053610201”的学生各门课程的成绩查询”数据库系统”课程的成绩单.查询全体同学的学号,姓名,课名和分数.本章作业与任务(Cont.)复习部分复习本章内容复习本章概念阅读教材中相关内容。
第3章关系模型及关系代数关系数据库以关系模型为基础,是目前各类数据库中最重要、最流行的数据库,它应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。
1970年,IBM公司研究员E.F.Codd博士发表题为“大型共享数据库的关系模型”论文,文中首次提出关系模型,而后又发表了多篇文章提出关系代数和关系演算的概念,并于1972年提出第一范式、第二范式等关系模型的规范化理论,进一步对关系模型的概念进行完善。
【学习目标】●关系模型的三类完整性约束:实体完整性、参照完整性和用户自定义完整性●三种关系数据语言:关系代数、关系演算、基于映像的语义SQL●关系的运算:传统的集合运算和专门的关系运算●关系代数表达式3.1关系模型三要素关系模型相比非关系模型最大的优点就是其数据结构单一,实体集和实体集间联系的数据均用关系表示,数据操作方法统一,易于用户掌握和理解。
关系操作采用集合操作,即操作对象和结果都是集合。
关系模型中常用的关系操作包括:并、交、差、广义笛卡尔积、选择、投影、连接、除等查询操作和添加、删除、修改等更新操作两个部分,查询的表达能力是其最主要的部分。
关系模型提供了丰富的完整性控制机制,允许定义三类完整性约束:实体完整性、参照完整性和用户自定义完整性。
3.1.1关系数据结构1.关系的相关名词(1)关系(2)元组(3)属性(4)候选码和主码(5)主属性和非主属性2.关系的数学定义(1)域(Domain)(2)笛卡尔积(3)关系3.关系的限定关系数据库中关系要满足的基本特性如下:(1)关系中每个分量必须取原子值(2)关系中同一列的数据应具有相同的数据类型(3)关系中不能有相同的属性名(4)关系中不能有两个完全相同的元组(5)关系中的元组和列的位置具有顺序无关性4.关系模式和关系关系的结构用关系模式表示,是相对稳定,一个关系数据库的结构一旦定义好就不能随便修改;关系的数据是动态的,反映了关系在某一时刻的状态,随着数据库使用过程中对数据的更新操作,关系中的数据会实时发生变化。
第1章数据库系统概论三、简答题1. 答:数据库DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。
2. 答:数据库管理系统DBMS是位于用户与操作系统(OS)之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
DBMS 总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。
3. 答:①数据定义语言及其翻译处理程序;②数据操纵语言及其编译(或解释)程序;③数据库运行控制程序;④实用程序。
4. 答:文件系统中的文件是面向应用的,一个文件基本上对应于一个应用程序,文件之间不存在联系,数据冗余大,数据共享性差,数据独立性差;数据库系统中的文件不再面向特定的某个或多个应用,而是面向整个应用系统,文件之间是相互联系的,减少了数据冗余,实现了数据共享,数据独立性高。
5. 答:①实现数据的集中化控制;②数据的冗余度小,易扩充;③采用一定的数据模型实现数据结构化;④避免了数据的不一致性;⑤实现数据共享;⑥提供数据库保护;⑦数据独立性;⑧数据由DBMS统一管理和控制。
6. 答:数据独立性是指数据库中的数据独立于应用程序,即数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。
数据独立性一般分为数据的逻辑独立性和数据的物理独立性。
数据逻辑独立性是指数据库总体逻辑结构的改变(如修改数据定义、增加新的数据类型、改变数据间的联系等)不需要修改应用程序。
数据物理独立性是指数据的物理结构(存储结构、存取方式等)的改变,如存储设备的更换、物理存储格式和存取方式的改变等不影响数据库的逻辑结构,因而不会引起应用程序的改变。
7. 答:数据库系统中数据不是面向单个应用组织的,而是直接面向数据本身及数据间的内在联系来组织的,因此可以方便地供多用户多应用共享,这样,数据的冗余度就大幅度降低了。
数据库系统概论复习资料期中考试范围:CH1-CH6第一章绪论一选择题:1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
在这几个阶段中,数据独立性最高的是阶段。
A.数据库系统B.文件系统C.人工管理D.数据项管理2.数据库的概念模型独立于。
A.具体的机器和DBMS B.E-R图C.信息世界D.现实世界3.数据库的基本特点是。
A.(1)数据可以共享(或数据结构化) (2)数据独立性(3)数据冗余大,易移植(4)统一管理和控制B.(1)数据可以共享(或数据结构化) (2)数据独立性(3)数据冗余小,易扩充(4)统一管理和控制C.(1)数据可以共享(或数据结构化) (2)数据互换性(3)数据冗余小,易扩充(4)统一管理和控制D.(1)数据非结构化(2)数据独立性(3)数据冗余小,易扩充(4)统一管理和控制4. 是存储在计算机内有结构的数据的集合。
A.数据库系统B.数据库C.数据库管理系统D.数据结构5.数据库中存储的是。
A.数据B.数据模型C.数据以及数据之间的联系D.信息6. 数据库中,数据的物理独立性是指。
A.数据库与数据库管理系统的相互独立B.用户程序与DBMS的相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D.应用程序与数据库中数据的逻辑结构相互独立7. .数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指。
A.同一个应用中的多个程序共享一个数据集合B.多个用户、同一种语言共享数据C.多个用户共享一个数据文件D.多种应用、多种语言、多个用户相互覆盖地使用数据集合8.据库系统的核心是。
A.数据库B.数据库管理系统C.数据模型D.软件工具9. 下述关于数据库系统的正确叙述是。
A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据10. 数将数据库的结构划分成多个层次,是为了提高数据库的。
第三章数据库系统数据库系统和操作系统一样,高级考试系统架构师和系统分析师也是重点章节。
重要的是这一章在软件设计师下午考试五道大题中,其中一道。
所以要给予足够的重视,没有数据库基础的朋友,要多花一些时间在这一章上。
一、三级模式-两层映射1、重点。
三级模式:内模式、模式(概念模式)和外模式。
三级模式分别对应数据库的文件、表和视图。
两层映射:模式-内模式映射、外模式-模式映射。
2、理解。
物理数据库在计算机上以文件的形式表现。
内模式和物理层次数据库直接关联,管理如何存储一系列数据,将数据存储在物理数据库文件中。
概念模式对应数据库中的表,把数据库分成若干张表,表之间有关联。
外模式对应数据库中视图,对数据控制有更灵活处置方式。
以下为历年真题试题9(2016年上半年试题51)数据的物理独立性和逻辑独立性分别是通过修改(51)来完成的。
D.模式与内模式之间的映像、外模式与模式之间的映像试题分析物理独立性是指的内模式发生变化,只需要调整模式与内模式之间的映像,而不用修改应用程序。
逻辑独立性是指的模式发生变化,只需要调整外模式与模式之间的映像,而不用修改应用程序。
试题13(2015年下半年试题51)数据库系统通常采用三级模式结构:外模式、模式和内模式。
这三级模式分别对应数据库的__(51)__。
B.视图、基本表和存储文件试题分析数据库三级模式的图为:其中外模式对应视图,概念模式对应基本表,内模式对应存储文件。
试题30(2013年上半年试题54)在数据库系统中,视图是一个()D.虚拟表,查询时可以从一个或者多个基本表或视图中导出试题分析计算机数据库中的视图是一个虚拟表,其内容由查询定义。
同真实的表一样,视图包含一系列带有名称的列和行数据。
但是,视图并不在数据库中以存储的数据值集形式存在。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
试题答案(54) D二、数据库设计过程1、重点。
数据库设计过程有4个阶段,阶段依次为:需求分析、概念结构设计、逻辑结构设计和物理结构设计。
第一章节数据库系统基本概念1.文件系统中的数据独立性是指(设备)独立性。
2.在数据库方式下的信息处理中,(数据)占据了中心位置。
3.DBMS是位于(用户)和(OS)之间的一层数据管理软件。
4.数据模型不仅描述数据本身的特点,还要描述(数据之间的联系)。
5.DBS中,用户的数据和磁盘中的数据之间转换由(DBMS)实现。
6.在层次、网状模型中,用(指针)导航数据;而在关系模型中,用(关键码)导航数据。
7.数据库的三级模式结构是对(数据)的三个抽象级别。
8.DBS中存放三级结构定义的DB称为(数据字典)。
9.DBS的全局结构体现了其(模块功能)结构。
10.DBMS为应用程序运行时开辟的DB系统缓冲区,主要用于(数据传输)和(模式转换)。
11.层次模型用(树)型结构来表示实体间的联系。
12.在数据的人工管理阶段,程序与数据是(一一对应)的关系。
13.定义数据库的安全性和完整性的工作由(DBA)完成。
14.数据独立性的好处是(数据存储方式的变化不会影响到应用程序的使用)。
15.数据库的三级体系结构使用户能抽象地使用数据,不必关心(数据在计算机中的表示和存储) 。
16.概念设计阶段用到实体、实体集、属性和实体标识符等4个术语;逻辑设计阶段用到字段、记录、文件和关键码等4个术语;第二章节数据库设计和ER模型1.ER数据模型一般在数据(概念设计)阶段使用。
2.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的(物理设计)阶段。
3.数据模型是用来描述数据库的结构和语义的,数据模型有(概念数据模型)和(结构数据模型)两类,ER模型是(概念数据模型)。
4.数据实施阶段包括两项重要的工作,一项是数据(载入),另一项是应用程序的编码和调试。
5.ER图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的(属性和键)。
6.数据库的物理设计是对一个给定的(基本数据)模型选取一个最合适应用环境的物理结构的过程。