本篇内容为中国人民大学教授王珊、萨师煊的《数据库系统概论》自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P32-P36,属教材“【第一篇 基础篇】”的“【第5章 数据库完整性】”内容。
文章目录
P32 数据库完整性概述及实体完整性
32.1 数据库的完整性
- 数据的正确性(数据要符合实际情况)
- 数据的相容性(同一对象在不同关系表中数据符合逻辑)
32.2 实体完整性
- 定义码
eg1:将Student表中的Sno属性定义为码
eg2:将SC表中的Sno,Cn哦属性组定义为码
- 实体完整性检查和违约处理
① 检查主码值是否唯一,如果不唯一则拒绝插入或修改
② 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
P33 参照完整性
33.1 参照完整性定义
33.2 参照完整性检查和违约处理
P34 用户定义的完整性
34.1 属性上约束条件
- 列值非空(NOT NULL)
- 列值唯一(UNIQUE)
- 检查列值是否满足一个条件表达式(CHECK短语)
34.2 元组上的约束条件
34.3 数据库完整性小结及对比
P35 完整性约束命名子句及断言
35.1 完整性约束命名子句
- 示例eg:完整性约束命名子句
- 示例eg:修改表中的完整性限制
35.2 断言
- 创建断言的语句格式
CREATE ASSERTION <断言名> <CHECK 子句>
- 示例eg:
- 删除断言的语句格式
DROP ASSERTION <断言名>;
P36 触发器
36.1 Trigger
- 用户定义在关系表上的一类由事件驱动的特殊过程;
- 任何用户对表的增删改操作均由服务器自动激活相应的触发器
- 触发器可以试试更为复杂的检查和操作,具有更惊喜和更强大的数据控制能力
36.2 触发器操作
- 定义触发器(只能定义在基本表上)
- 激活触发器
- 删除触发器