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 用户自定义完整性
是指用户根据具体业务对数据处理规则要求所定义的 数据约束。
用户可以定义如下类型的完整性约束:
- 定义列的数据类型与取值范围
- 定义列的缺省值
- 定义列是否允许取空值
- 定义列取值唯一性
- 定义列之间的数据依赖性