2.1 关系及其相关概念
一、实体、关系的概念
1、实体——是指包含有数据特征的事物对象在概念模型世界中的抽象名称。
2、 关系
在关系模型中,使用“关系”来存储“实体”中的数据。
关系——是指具有关系特征、用于存放实体数据的二维表。关系也常被称为关系表。
3、 关系特征
- 表中每行存储实体的一个实例数据
- 表中每列包含实体的一项属性数据
- 表中单元格只能存储单个值
- 不允许有重复的行
- 不允许有重复的列
- 列顺序可任意
- 行顺序可任意
二、关系的数学定义
定义: 关系是指在集合域 D1、…、Dn 上运算笛卡儿积的有意义子集,其数学描述为 R ⊆ D1 × … × Dn。
说明:关系R只是该笛卡儿积的有意义子集,即关系R的元组数<=笛卡儿积的元组数。
三、关系的键定义
在关系中,可以用来唯一标识元组的属性列,称为键,其它属性列都为非键列。
1.复合键
是指关系中用来唯一标识元组的多列作为键。
2.候选键
关系中可能有多个列均适合作为键,将其中每个都称为候选键。
3.主键
关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。
主键作用:
- 唯一标识关系表的每行(元组)
- 与关联表的外键建立联系,实现关系表之间连接
- 数据库文件使用主键值来组织关系表的数据存储
- 数据库使用主键索引快速检索数据
4.代理键
采用DBMS自动生成的数字序列作为关系表的主键。
代理键作用:
可替代复合主键,以便获得更高性能的数据访问操作处理。
四、关系模式语句表示
关系模式语句中主键表示方法:
关系名(主键属性,属性2,…,属性x)
在主键属性添加下划线来表明主键。
例:
2.2 关系模型原理
一、关系模型及其组成
是一种基于二维表结构存储数据实体及实体间联系的数据模型。
1、 数据结构
2.、数据操作
集合运算操作包括选择、投影、连接、交、并、差等。
专门针对元组的关系操作包括数据行插入、 修改、删除操作。
3. 数据关系约束
是指关系表中实体数据完整性、关联表之间数据一致性等要求,一般由业务需求来确定。
在关系模型中,可定义关系表的数据约束如下:
属性列取值类型
属性列取值范围
属性列取值是否唯一
属性列是否允许空值
关联表的参照完整性约束
二、关系模型数据操作
采用基于关系代数的数据操作,包括传统的集合运算操作和专门的关系运算操作。
1、关系“并运算∪”操作
关系并运算∪的结果集是由属于R或属于S的所有元组组成。
R∪S={t|t∈R∨t∈S}
关系并运算∪的前提:关系R与关系S需有相同属性(列)组成。
2、关系“差运算-”操作
关系差运算-的结果集是由属于R,而不属于S的所有元组组成。
R-S={t|t∈R∧t∉S}
关系差运算—的前提:关系R与关系S需有相同属性组成。
3、关系“交运算∩”操作
关系交运算∩的结果集是由既属于R又属于S的所有元组组成。
R∩S={t|t∈R∧t∈S}
关系差运算∩的前提:关系R与关系S需有相同属性组成。
4、关系“笛卡尔积x”操作
笛卡儿积运算的结果集是由所有属于R的元组与所有属于S的元组进行组合而成。
R×S={(d1,d2)|d1 ∈R,d2 ∈S}
三、专门的关系运算
1、表示记号:
(1)R,t∈R,t[Ai]
设关系模式为R(A1,A2,…,An)
它的一个关系设为R。t∈R表示t是R的一个元组t[Ai]则表示元组t中相应于属性Ai的一个分量。
(2)A,t[A],A
2、选择:
- 选择又称为限制(Restriction)
- 选择运算符的含义
在关系 R 中选择满足给定条件的诸元组
σF® = {t|t∈R∧F(t)= ‘真’}
F:选择条件,是一个逻辑表达式 - 选择运算是从行的角度进行的运算
3、投影
1)投影运算符的含义
从R中选择出若干属性列组成新的关系
πA® = { t[A] | t ∈R }
A:R中的属性列
2)投影操作主要是从列的角度进行运算
3)投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(去掉重复行)
4、连接
1)连接也称为θ连接
2)连接运算的含义
从两个关系的笛卡尔积中选取属性间满足一定条件的元组
A和B:分别为R和S上度数相等且可比的属性组
θ:比较运算符
3)连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。
4)两类常用连接运算
① 等值连接:
θ为“=”的连接运算称为等值连接
② 自然连接
自然连接是一种特殊的等值连接
两个关系中进行比较的分量必须是相同的属性组
在结果中把重复的属性列去掉
5、象集Z
给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集为:
它表示R中属性组X上值为x的诸元组在Z上分量的集合。
6、除运算
除操作是同时从行和列角度进行运算。
四、关系模型完整性
关系模型完整性是指在关系数据模型中对关系实施的完整性约束。
完整性约束作用:
- 消除关系表的元组重复存储
- 保持关联表的数据一致性
- 实现业务数据规则
关系模型完整性约束组成: - 实体完整性约束
- 参照完整性约束
- 用户自定义完整性约束
一、实体完整性
实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每个元组可以被唯一标识。
实体完整性约束规则:
① 每个关系表中的主键属性列都不允许为空值,否则就不可能标识实体。
② 现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系表中的每个元组。
二、参照完整性
参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列的数据一致性。
参照完整性约束规则:
若关系R中的外键F与关系S中的主键K相关联,则R中外键F值必须与S中主键K值一致。
外键(Foreign key)——在关联的两个关系中,它们具有一个或多个相同属性。若关联列在第一个关系中作为主键,则在第二个关系中作为外键。
三、用户自定义完整性
用户自定义完整性是指用户根据具体业务对数据处理规则要求所定义的数据约束。
判断题:
实体完整性是指关系表的属性组成必须是完整的。
在参照完整性中,可以定义级联操作。
在关系表中,主键数据最好采用序列数据类型。
内连接要求组合两个关系的匹配元组而形成查询结果集。
外连接通过扩展关系形成最终结果集。
代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。