2.2 关系模型原理

2.2 关系模型原理

  • 数据结构
  • 数据操作
  • 关系的完整性

一、关系模型及其组成

关系模型(Relation Model)——是一种基于二维表结构存储数据实体及 实体间联系的数据模型。

数据结构

关系数据结构---二维表

元组: 表中的一行,表示一个实体,关系是由元组组成的。

❖ 属性: 表中的每一列在关系中称为属性,每个属性都有一个属性名 ,属性值则是各元组属性的取值。

❖ 域: 属性的取值范围称为域。同一属性只能在相同域中取值。

❖ 分量: 元组中的一个属性值。

❖ 键: 关系中能唯一区分不同元组的属性或属性组合,称为关系的一 个键,或者称为关键字、码。关键字的属性值不能取“空值”。

数据操作

关系模型操作特点: 数据操作的对象为关系,结果也是关系。

  • 基于关系代数的数据集合操作:交、并、差、乘、除
  • 关系运算操作:选择、投影、连接(join)、 条件链接、自然链接、外链接(左、右、全)等。
  • 针对元组的关系操作:数据行赋值、插入(Insert)、 修改 (Update)、删除(Delete)操作。

数据关系约束

包括:

  • 实体完整性
  • 引用完整性
  • 用户自定 义完整性。

二、关系模型数据操作

关系模型数据操作采用基于关系代数的数据操作,包括传统的集合运算 操作和专门的关系运算操作。

对于行的操作

关系“并运算∪”操作

前提:关系R与关系S需有相同属性组成

关系“差运算-”操作

前提:关系R与关系S需有相同属性组成

得到R中有的,S中没有的部分

关系“交运算∩”操作

前提:关系R与关系S需有相同属性组成

关系“笛卡尔积x”操作

选择运算-- 选行

从行的角度进行的运算,即水平方向抽取元组。

对列的操作

投影运算 -- 选列

选列: 从关系中挑选若干属性组成的新的关 系 。

投影的结果中要去掉相同的行。 ❖从列的角度进行的运算,即垂直方向抽取 元组。

θ 连接

θ 为算术运算。当为=时为等值连接。

自然连接

R、S中,有列BD相同,选取其中相同行,向两边扩展,构成新的关系

除法

R1中有pid、did,R2中只有did,一个元素为3501,除法就是除去相同的部分,所以得到R1中对应did为3501的pid

三、关系模型完整性

关系模型完整性是指在关系数据模型中对关系实施的完整性约束

完整性约束作用:

  • 消除关系表的元组重复存储
  • 保持关联表的数据一致性
  • 实现业务数据规则

关系模型完整性约束包括:

  • 实体完整性约束
  • 参照完整性约束
  • 用户自定义完整性约束

1 实体完整性

实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每 个元组可以被唯一标识。

设置主键、主键不能为空

实体完整性约束规则:

①每个关系表中的主键属性列都不允许为空值(NULL),否则无法起标识作用。

②现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系 表中的每个元组

实体完整性例子

  • 记录2:课程号为主键,居然没有,当然失败
  • 记录3:其课程号为空,在其他表中为主键,也不能空
  • 记录4:由于记录3的课程号01没有插入成功,故这里的成绩中的课程号01不起作用,自然会失败

2 参照完整性

是指关系表之间需要遵守的数据约束,以保证数据一致性。

例如,对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不 改其二,就会影响数据的完整性

参照完整性约束规则:

一个表中的A列为另一个表中的主键,则必须保持着两列的一致。并且A列叫做外键。

3 用户自定义完整性

是指用户根据具体业务对数据处理规则要求所定义的 数据约束。

用户可以定义如下类型的完整性约束:

  • 定义列的数据类型与取值范围
  • 定义列的缺省值
  • 定义列是否允许取空值
  • 定义列取值唯一性
  • 定义列之间的数据依赖性

posted @ 2022-04-03 23:01  Dinesaw  阅读(459)  评论(0编辑  收藏  举报