关系数据库

第二章 关系数据库

简介:支持关系数据模型的数据库系统,关系模型由数据结构、关系操作 和 完整性约束 三部分组成。

数据结构:

在用户看来关系模型的数据的逻辑结构是一张扁平的二维表。关系模型中的数据操作是集合操作。操作对象和操作结构都是关系。

常用的关系操作(查询操作和更新操作)

查询操作:包括 选择、投影、连接、除、并、交、差等。

更新操作:插入、删除、修改

完整性约束

三类完整性约束:实体完整性、参照完整性和用户自定义完整性。其中实体完整性和参照完整性是关系模型必须要满足的完整性约束条件。应由关系系统自动支持。

关系数据结构

关系

域:是一组具有相同数据类型的值的集合。

笛卡尔积:笛卡尔机可以表示为一个二维表,表的每一行对应一个元组。表中每一列对应一个域。

关系:笛卡尔积中许多元组无实际意义,从中取出有实际意义的元组便构成关系。关系中每个元素是关系中的元组。关系是笛卡尔集的有限子集,所有的关系也是一个二维表。表的每行对应一个元组。表的每一列对应一个域。由于域可以有相同,为加以区分必须对每一列起一个名字称为属性。n目关系必有n个属性。

关系的相关概念

**候选码:**若关系中的某一属性组能唯一的标识一个元组,则称该属性组为候选码或候选键。(最简单情况下候选码只包含一个属性,极端情况下关系模式的候选码由所有属性组成称全码或全键)

**主码:**当关系中有多个候选码时,应选定其中一个候选码为主码或主键。如果只有一个候选码,则这个候选码就是主码。

主属性与非主属性,关系中候选码中的属性称为主属性,不包含在任何候选码的属性称为非主属性。

关系的性质

关系有三种类型:基本关系(又称基本表或基表)、查询表和视图表。 基本表是实际存在的表,它是实际存储的逻辑表示。查询表是查询结果对应的表。视图表是由基本表或其他视图表导出的表,是虚表。

性质:

  1. 每一列的数据类型是相同的。即来自同一个域。
  2. 不同的列可以来自同一个域,每一列为一个属性,不同的属性要给予不同的属性名。
  3. 列的顺序无所谓,即列的顺序可以任意交换。新增加属性时可以插至最后一列。
  4. 任意两个元组不能完全相同,但在一些数据库中Oracle等,如果用户没有定义相关的约束条件,则允许在关系表中存在两完全相同的元组。
  5. 行的顺序无所谓,即行的顺序可以任意交换
  6. 分量必须取原子值,即每个分量必须是不可再分的数据项。(最基本的要求, 简而言之就是不允许表中有表

关系模型

定义: 关系的描述称为关系模式。他可以形式化的表示为

​ R(U,D,DOM,F)

其中,R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合。F为属性间数据的依赖关系集合。

关系实际上是关系模式在某一时刻的状态或内容,关系模型是型,关系是它的值。关系模式是静态的稳定的,而关系是动态的,随时间不断变化的。所以关系操作在不断更新着数据库中的数据。

关系数据库

在关系模型中,实体以及实体之间的联系都是用关系来表示,在一个给定的应用领域中,所有实体及实体之间联系所形成关系的集合就构成了一个关系数据库。关系数据库模式与关系数据库的值统称为关系数据库。

关系的完整性

实体完整性

规则:若属性(指一个或一组属性)A是基本关系,R(U)(A属于U)的主属性,则属性A不能取空值。

注意:关系的所有的主属性都不能取空值,而不仅仅是主码不能取空值。

参照完整性

现实实体中往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系之间的引用。

多个关系中存在属性的相互引用,相互约束的情况,

外码 设F是关系R的一个或一组属性,但不是R的码。如果F与关系与S的主码 KS 相对应,则称 F 是关系R的外码或外键 ,并称关系 R 为参照关系,关系S为被参照关系或目标关系,关系R或S不一定是不同关系。

参照完整性规则就是定义外码与主码之间的引用规则**。**

**参照完整性的规则:**若属性(或属性组)F是关系R的外码,它与关系S的主码 KS 相对应(R和S不一定是不同的关系),则对于R中每一个元组在F上的值必须为:空值(F 的每一个属性均为空值)或者等于S中某个元组的主码值。

用户自定义的完整性

用户自定义的完整性就是针对于某一具体关系数据库的约束条件,他反映的是某一具体应用所涉及的数据必须满足的语义要求。(如成绩数值在0-100之间),关系模型应提供定义和检查这类完整性的机制。

关系代数

关系代数是一种抽象的查询语言,他利用关系的运算来表达查询,作为研究关系数据语言的数据工具。

关系代数用到的关系包含四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值