第二章关系数据库培训教材

上传人:yulij****0329 文档编号:141186937 上传时间:2020-08-05 格式:PPT 页数:72 大小:1.25MB
返回 下载 相关 举报
第二章关系数据库培训教材_第1页
第1页 / 共72页
第二章关系数据库培训教材_第2页
第2页 / 共72页
第二章关系数据库培训教材_第3页
第3页 / 共72页
第二章关系数据库培训教材_第4页
第4页 / 共72页
第二章关系数据库培训教材_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《第二章关系数据库培训教材》由会员分享,可在线阅读,更多相关《第二章关系数据库培训教材(72页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 关系数据库,关系数据库系统大事记 1970年6月,E.F.Codd在Communication of the ACM上发表题为“A Relational Model of Data for Large Shared Data Banks”一文,首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。随后他又连续发表了多篇论文,奠定了关系数据库的理论基础。 1973年IBM 研究中心启动关系数据库实验系统System R 项目,并于70年代末在IBM370系列机上获得成功。 1977 年,美国加州大学柏克利分校开始研制INGRES关系数据库实验系统,于1985获得成功。 三十多

2、年来涌现出许多关系数据库管理系统(RDBMS),著名的有: Oracle, DB2,Informix, Sybase,SQL Server,PostGreSQL等。,2,2.1 关系数据结构及形式化定义,关系数据结构关系(二维表),关系数据结构的特点:实体和联系都用关系这种单一的数据结构来实现。,3,2.1 关系数据结构及形式化定义,关系的定义 域(Domain):一组具有相同数据类型的值的集合。如整数、字符串等。 笛卡尔积(Cartesian Product):给定一组域D1, D2, , Dn (可相同), D1, D2, , Dn上的笛卡尔积为: D1 D2 Dn (d1, d2, ,

3、dn) | di = 1, 2 , , n (d1, d2, , dn)称为一个元组(Tuple) di叫作元组(d1, d2, , dn)的第i 个分量(component) 关系(Relation): D1 D2 Dn的一个子集叫做域D1, D2, , Dn上的关系。 定义在n个域上的关系称为n元(n目)关系。,5,2.1 关系数据结构及形式化定义,关系应具有的六条性质: 列是同质的; 不同的列可以出自同一个域; 列序无关性; 任意两个元组不能完全相同; 行序无关性; 分量必须取原子值。 几个概念: 候选码(Candidate Key):能唯一标识元组的属性(组)。 主码(Primary

4、Key):多个候选码中选定一个作主码。 主属性(Prime Attribute):候选码中的各个属性。 非主属性(Non-Key Attribute):不出现在任何候选码中的属性,6,2.1 关系数据结构及形式化定义,候选码:学号、姓名(无重名存在) 主属性:学号、姓名 非主属性:年龄、性别、系名、年级,7,2.1 关系数据结构及形式化定义,关系的型与值 关系(表)的型:关系的结构(字段名、字段个数、域等) 关系(表)的值:关系中具体的元组,也称关系的实例(Instance)。 关系模式(Relation Schema)即关系的型的定义,关系模式通常简记为:R(U),8,2.2 关系操作,查询

5、(Query) 并(Union) 交(Intersection) 差(Difference) 广义笛卡尔积 选择(Select) 投影(Project) 连接(Join) 除(Divide) 5种基本操作,插入(Insert) 删除(Delete) 修改(Update),基本的关系操作,关系操作的特点:操作对象和操作结果都是关系。,9,2.2 关系操作,关系语言 关系代数 关系演算(逻辑) 元组演算 域演算 SQL 关系语言特点 关系语言是一种高度非过程化的语言 关系语言是完备的 关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价,10,2.3 关系的完整性,关系的完整性约束是对关

6、系的正确性限定,通常是与关系所表达的实际数据约束相对应。关系的完整性分为实体完整性、参照完整性和用户定义完整性。 实体完整性规则(Entity Integrity) 若属性A是基本关系R的主属性,则属性A不能取空值。 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识(主码)。 空值就是“不知道”或“无意义”的值,不是空格字符。主属性取空值,就说明存在某个不可标识的实体,这与第(2)矛盾。,11,2.3 关系的完整性,几个概念 设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与

7、基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign Key)。基本关系R称为参照关系(Referencing Relation),基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)。 注: 关系R和S不一定是不同的关系 主码Ks 和外码F必须定义在同一个(或一组)域上 外码并不一定要与相应的主码同名(当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别),12,2.3 关系的完整性,课程表Course,学生表Student,成绩表SC,13,2.3 关系的完整性,参照完整性规则(Referential In

8、tegrity) 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值。 例1 在SC表中,Sno只能取S表中存在的学号,Cno也只能取已存在的课程号,但两者都不能取空值,因为Sno和Cno都是主属性。 注:外码中的属性如果不是主属性,则可以取空值,此时外码中的每个属性均为空值。,14,2.3 关系的完整性,例2 高考录取数据库,院校专业表,考生录取表,15,2.3 关系的完整性,用户定义完整性(User-defined Integri

9、ty) 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。如性别只能取“男”、“女”值,成绩必须在0100分之间。 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。通常由RDBMS的Check约束提供这类检查。,16,2.4 关系代数,关系代数(Relational Algebra):以集合为基础,定义一组运算,由已知关系经过一系列运算,得到需要的查询结果。 关系代数是过程化的查询语言。 关系代数继承传统的集合运算:并()、交()、差()、广义笛卡尔积()。其中并、交、差要求参与运算的两个

10、关系要有相同的结构。 将关系看成元组的集合 运算是从关系的“水平”方向即行的角度来进行,17,2.4 关系代数,关系上的传统集合运算 并:RS = t | t Rt S 差:R S = t | tRtS 交:RS = t | t Rt S RS = R ( R S ) 广义笛卡尔积:RS (其中R为k1行n列,S为k2行m列) 列:(n+m)列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组,18,2.4 关系代数,传统的集合运算举例,RS,RS,19,2.4 关系代数,R S,20,2.4 关系代数,专门的关系运算 选择() 含义:在关系R中选择满足

11、给定条件的诸元组 F(R) = t | tRF(t)= 真 其中: F:选择条件,是一个逻辑表达式,基本形式为: ( X1Y1 ) ( X2Y2 ) :比较运算符(,或) X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替; :逻辑运算符(或) :表示任选项 :表示上述格式可以重复下去,21,2.4 关系代数,选择运算的直观意义:,22,2.4 关系代数,投影() 含义:从R中选择出若干属性列组成新的关系 A(R) = tA | t R A:R中的属性列的集合 投影操作主要是从列的角度进行运算 投影运算的直观意义:,注:但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元

12、组(避免重复行),23,2.4 关系代数,投影举例,24,2.4 关系代数,例:学生表Student如下,(1) 查询信息系(IS系)全体学生 Sdept = IS (Student) 或 5 =IS (Student) (2) 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student),25,2.4 关系代数,(3) 查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student) 或 2,5(Student) (4)查询学生关系Student中都有哪些系 Sdept(Student) 或 5(Stud

13、ent),例:学生表Student如下,26,2.4 关系代数,连接( ),含义: 从两个关系的笛卡尔积中选取属性间满足一定条件的元组。,A和B:分别为R和S上度数相等且可比的属性组 :比较运算符 连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。 带有比较运算符的连接运算称为连接。,27,2.4 关系代数,连接操作是从行和列的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,28,2.4 关系代数,例:, 连接解题思路: 确定结果中的属性列 确定参与比较的属性列 逐一取R中的元组分别和S中与其符合比较关系

14、的元组进行拼接。,29,2.4 关系代数,两类常用连接运算 等值连接(equi-join) 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:,30,2.4 关系代数,等值连接解题思路: 确定结果中的属性列 确定参与运算的关系的公共属性列(同名属性要区分) 逐一取R中的元组分别和S中与其公共属性组取值相同的元组拼接。,例:,31,2.4 关系代数,自然连接(Natural join) 什么是自然连接 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是同名的属性(组) 在结果中把重复的属性列去掉 自然

15、连接的含义 R和S具有相同的属性组B,32,2.4 关系代数,例:,自然连接解题思路: 确定结果中的属性列 确定参与运算的关系的公共属性列(同名属性取其一) 逐一取R中的元组分别和S中与其公共属性组取值相同的元组拼接。,33,2.4 关系代数,S:,D:,意义:将两个有关联的表合成为一张有意义的表。,34,2.4 关系代数,三类特殊的自然连接:,注:舍弃所有不符合条件的元组的连接称为内连接(inner join)。,35,2.4 关系代数,36,2.4 关系代数,37,2.4 关系代数,38,2.4 关系代数,象集Z:给定一个关系R(X,Z),X和Z为属性组。当 tX = x 时,x在R中的象

16、集(Images Set)为:Zx= tZ | t R,tX = x,它表示R中属性组X上值为x的诸元组在属性组Z上分量的集合。 例:,39,2.4 关系代数,除(Division) 给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集(在没有特别指定属性组Y的情况下, Y通常是指公共属性组)。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。 RS = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trX,40,2.4 关系代数,除操作是同时从行和列角度进行运算,41,2.4 关系代数,例:,RS,a1,42,2.4 关系代数,关系代数中所用到的各类符号:,关系代数表达式: 由关系的运算经过有限次的复合后形成的式子。,43,2.4 关系代数,关系代数综合举例: (本小节的所有查询均用到以下关系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号