关系完整性约束&关系操作基础
一、前言
本文将总结有关关系完整性约束和关系操作的知识点
二、概述
关系模型的完整性规则是对关系的某种约束条件
- 目的:
保证数据库中数据的正确性和相容性
实体完整性
和参照完整性
是关系模型必须满足的完整性约束条件
,称为关系的两个不变性
三、实体完整性
1.定义
主码的值不能为空或者部分为空
空:不知道/不存在/无意义的值
列如:
- 学生(学号,姓名,性别,专业号)这个关系中学号是主码,那么学号就不能为空
- 学生课程(学号,课程号,成绩)这个关系中学号+课程号是主码,那么学号和课程号都不能为空
2.说明
实体完整性规则是针对基本关系而言的
现实世界中实体是可区分的
关系模型中以主码为唯一性标识
主码中属性不能取空值
四、参照完整性
1.定义
如果属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须:
或取空值(F中每个属性都为空值)
或等于S中某个元组的主码值
2.说明
例如:给出如下两种关系
专业信息表
专业号 | 专业名称 |
---|---|
zy01 | 软件工程 |
zy02 | 物联网工程 |
zy03 | 计算机科学与技术 |
zy04 | 信息系统与信息管理 |
学生信息表
学号 | 姓名 | 专业号 |
---|---|---|
001 | 张三 | zy03 |
002 | 李四 | |
003 | 王五 |
从上一篇文章【关系模型知识点总结(1)—— 关系数据结构】中的有关【外码】的知识点可以知道:专业号是学生关系中的外码,所以在学生关系中的专业号这个属性的值要么为空:没有专业,要么不为空:填入专业关系中的专业号的值(zy01/zy02/zy03/zy04)
五、用户定义完整性
针对某一具体关系数据库的约束条件,反应某一具体应用所设计数据必须满足的语义要求
关系模型应提供定义和检验这类完整性机制,以便用统一的系统方法处理他们,而不需要由应用程序承担
六、关系操作
1.基本关系操作
查询
插入
删除
修改
2.特点
操作的对象和结构都是集合
3.关系数据语言
1️⃣关系代数语言
用对关系的运算来表达查询要求
2️⃣关系演算语言
用谓词来表达查询要求
元组关系演算语言:谓词变元基本对象是元组变量(APLHA、QUEL)
域关系演算语言:谓词变元的基本对象是域变量(QBE)
3️⃣具有关系代数和关系演算双重特点的语言
SQL
七、结语
下一篇文章会讲述有关关系操作中的关系代数部分知识点