前言
前一节介绍了关于关系的诸多概念性描述,而今天介绍的两小节将聚焦关系的操作以及关系完整性的约束,经过这三部分的逐一介绍之后,完整的关系模式便被给出。
一、关系操作
1.基本的关系操作
关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。
-
关系的查询表达能力很强,是关系操作中最主要的部分。查询操作又可以分为选择、投影、连接、除、并、差、交、笛卡儿积等。其中选择、投影、并、差、笛卡尔积是5种基本操作。
-
关系种的插入、删除、修改操作起到数据更新的作用。
关系操作中,操作的对象和结果都是集合。【一次一集合】
2.关系数据语言的分类
二、关系的完整性
关系模型的完整性规则是对关系的某种约束条件。关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是在应用领域需要遵循的约束条件,体现了具体领域中的语义约束 。
1.实体完整性
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(null value)。所谓空值就是“不知道”或“不存在”或“无意义”的值。如果主码由若干属性组成,则所有这些主属性都不能取空值。
例如:学生(学号,姓名,性别,出生时间)这一关系中,“学号”这一属性作为主码,其不可以为空值。
2.参照完整性⭐⭐⭐
外码:
设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
例如:学生(学号,姓名,性别,专业号)与专业(专业号,专业名)这两个关系中,学生关系中的“专业号”属性与专业关系中的“专业号”属性对应,则在这里专业关系为被参照关系,学生关系为参照关系。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。【主码的取值范围被限制,不可以超出所提供的有效范围,否则错误无效】
换而言之,在一组关系中,如果某一属性为外码,那么它的来源,即被参照关系已经为其划定了范围,不能在范围外取值,否则不满足参照完整性,无法使系统征程引用,出现“引用无效”的情况。
3.用户定义的完整性
用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能。