关系数据库基础理论

上传人:j****9 文档编号:54866303 上传时间:2018-09-20 格式:PPT 页数:40 大小:597.50KB
返回 下载 相关 举报
关系数据库基础理论_第1页
第1页 / 共40页
关系数据库基础理论_第2页
第2页 / 共40页
关系数据库基础理论_第3页
第3页 / 共40页
关系数据库基础理论_第4页
第4页 / 共40页
关系数据库基础理论_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《关系数据库基础理论》由会员分享,可在线阅读,更多相关《关系数据库基础理论(40页珍藏版)》请在金锄头文库上搜索。

1、第二章 关系数据库基础理论,与层次和网状数据库比较,关系数据库有以下特点:, 数据模型简单,只存在二维表 数据独立性较高 一次查询可以得到一个集合 有比较坚实的理论基础,流行的商品化关系数据库管理系统(简称RDBMS), System R Oracle Ingres DB2 Sybase Informix SQL Server,2.1 关系模型概述,关系模型包含三个要素。它们是关系数据结构、关系操作集合和关系的完整性约束条件。一、单一的数据结构关系关系模型中只存在一种数据结构,不论是数据还是数据之间的联系,在关系模型中都用关系来表示。从用户观点看,关系就是由行和列构成的二维表。,二、关系操作,

2、关系操作定义了对关系进行操作的种类、要求及含义。查询(Query)操作选择(Select) 投影(Project) 连接(Join)除(Divide) 并(Union) 交(Intersection)差(Difference)更新操作增加(Insert) 删除(Delete) 修改(Update),用于表达关系操作的工具被称为关系数据语言(查询语言)。早期关系操作的能力用代数方式或逻辑方式来表示,相应的语言被称为关系代数语言和关系演算语言。后来出现一种介于关系代数和关系演算之间的语言,称为结构化查询语言SQL(Structurel Query Language),由于SQL的许多优点和特点,现

3、在SQL成为数据库的标准语言。,关系代数:用对关系的运算来表达查询要求,其代表如ISBL(Information System Base Language)关系演算:用谓词演算公式来表达查询要求。分为:元组关系演算语言。代表有ALPHA、QUEL(QUEry Language)域关系演算语言。代表是QBE(Query By Example) SQL:同时具有关系代数和关系演算的特点,是目前被广泛使用的数据库语言。这三类语言在表达能力上是等价的,在查询功能上是完备的。,三、关系的三类完整性约束,关系模型中的完整性约束包含实体完整性、参照完整性和用户定义的完整性。,2.2 关系数据结构及形式化定义

4、,2.2.1 关系下面是关系及与关系有关的一些概念的数学定义。,2.2 关系模型的数据结构,关系模型的结构示例:学生登记表,关系模式:一般表示形式: 关系名(属性1,属性2,属性n)如: 学生(学号,姓名,性别,年龄,学部号,原单位) 元组与关系,属性和值域 关键字(Key)或码,候选关键字或候选码 如果在一个关系中,存在多个属性(或属性组合)都能用来唯一标识该关系的元组,这些属性(或属性组合)都称为该关系的候选关键字或候选码 主关键字或主码 非主属性或非码属性,外部关键字或外键 主表与从表,学生(主表),成绩(从表),主键,外键,两表的关联,在关系数据库中对关系是有一定要求的。这些要求连同关

5、系形式表达数据的一些特征构成了关系的如下性质:, 一个关系中的任意两个元组(两行)不能完全相同。 一个关系中行的次序是不重要的,可以任意交换。 一个关系中属性(列)的次序也是不重要的,可以任意交换。 列是同质的(Homogeneous),即同一列中的分量必须来自同一域,是同类型的数据。 关系中每一列都应当有不同的名称,但不同的属性列可以从相同的域取值。, 关系中的每一个分量都必须是不可再分的数据项。 下面的表格就不满足这一要求,因为表中的籍贯分量又被分为了省和市两个数据项,这种情况称为“表中有表”。,上面的表格称为非规范化的表格,必须将其规范化后才能在关系数据库中作为关系使用。例如将其处理成下

6、面两个表格中的任意一种,都成为了规范化表格。, 每一关系都必然有一个关键字(或称码)唯一标识它的各个元组。关系中的关键字有可能是关系中的一个属性,也可能是几个属性构成的一个属性组甚至是关系中的全部属性,这取决于关系中表达数据的实际状况。但关系中关键字是必然存在的,除非不满足第一条性质(即关系中有重复行)。,2.3 关系模型的完整性约束,实体完整性规则 要求关系中的元组在组成主键的属性上不能有空值。 参照完整性规则 要求在相关联的两个表中,从表中不能引用主表中不存在的元组。 用户定义的完整性规则 用户根据应用环境的不同针对某一具体关系数据库定义的约束条件。,2.4 关系模型的数据操作和关系代数,

7、关系模型中的数据操作的特点是集合操作,即操作的对象和结果都是集合,称为一次一集合的方式。 关系代数是一种抽象的查询语言,用对关系的运算来表达查询,关系代数是以集合代数为基础发展起来的,以关系为运算对象。,传统的集合运算:并、交、差、广义笛卡尔积 专门的关系运算:选择、投影、连接、除 关系代数用到的运算符有:- 集合运算符: (并)、 (交) 、(差) 、(广义笛卡尔积)- 专门的关系运算符:(选择)、 (投影)、 (连接)、(除)- 算术比较符: = 、 、 、 、- 逻辑运算符: (非)、 (与)、 (或),2.4.1.1 传统的集合运算 并,2.4.1.2 传统的集合运算 交,RS = t

8、 | tR t S,t是元组变量。,2.4.1.3 传统的集合运算 差,R,S,RS,RS = t | t R t S,2.4.1.4 传统的集合运算 广义笛卡尔积,RS = t | t= tr R tsS,2.4.2.1 专门的关系运算 选择,在关系R中选择满足给定条件的元组(从行的角度)F(R)=t | t R , F(t) = 真 F是选择的条件,t R, F(t)要么为真,要么为假 F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:X YX,Y是属性名、常量、或简单函数是比较算符, , , , , , ,在学生关系中选择系别为信息系的全体学生:, F(R) = t |

9、tRF (t) = 真,2.4.2.2 专门的关系运算 投影,Student,Sdept(Student),定义 从关系R中取若干列组成新的关系(从列的角度),A(R) = tA | tR,投影的结果中要去掉相同的行,R,B , C(R),2.2.3.3 专门的关系运算 连接,连接的形式表示:,R,S,说明:R中共有r列,两个关系R和S的等值连接表示为:,R,S,R,S,等值连接示例,两个关系R和S的自然连接表示为:,2.4.2.4 专门的关系运算 连接:外连接,例:列出老师的有关信息,包括姓名、工资、所教授的课程 P# ,PN , SAL , C# , CN(PROF) PC C),问题:有

10、关P03号职工的姓名和工资信息没有显示出来,外连接为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接 外连接 = 自然连接 + 失配的元组外连接的形式:左外连接、右外连接、全外连接 左外连接 = 自然连接 + 左侧表中失配的元组 右外连接 = 自然连接 + 右侧表中失配的元组 全外连接 = 自然连接 + 两侧表中失配的元组,所有老师的信息,所有课程的信息,所有老师和课程的信息,2.4.2.5 专门的关系运算 除,除运算:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y具有相同的域集。R与S的除运算得到一个新的关系P(X),P中每一个元组值对应R在Y上的象集Yx包含S在Y上投影的集合。记作: RS,1、设有一个学生课程关系 SC(Student-course)查询至少选修1号课程和3号课程的学生号码。,2、首先建立一个临时课程关系K,临时关系的属性Cno包含1号课和3号课:,3、然后求:Sno, Cno(SC) K,结果为:,“除”运算的一个实际应用,补充:元组关系演算语言-ALPHA,ALPHA语言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六条语句 。,

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

当前位置:首页 > 生活休闲 > 科普知识

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