《数据库系统概念》 第五章 数据库完整性

DBMS必须能够实现如下功能:

  1. 提供定义完整性约束条件的机制(SQL中的DDL语句、立法)
  2. 提供完整性检查的方法(什么时候检查、怎么检查、执法)
  3. 进行违约处理

5.1 实体完整性

5.1.1 定义实体完整性

CREATE TABLE中的PRIMARY KEY定义

  • 列级约束条件(单属性主码才可以在列级定义)
  • 表级约束条件(多个属性构成的码的唯一定义方法)

5.1.2 实体完整性检查和违约处理

检查

为了避免对基本表进行全表扫描,DMBS一般都在主码上自动建立一个索引,如B+树索引。

5.2 参照完整性

5.2.1 定义参照完整性

在CREATE TABLE中用FOREIGN KEY定义哪些为外码,用REFERENCES指明这些外码参照哪些表的主码

5.2.2 参照完整性检查和违约处理

这里写图片描述

5.3 用户定义的完整性

这里写图片描述

这里写图片描述

5.4 完整性约束命名子句

这里写图片描述
这里写图片描述

5.5 域中的完整性条件

这里写图片描述

5.6 断言

可以用CREATE ASSERTION语句定义断言,任何使断言不为真值的操作都会被拒绝执行。

扫描二维码关注公众号,回复: 2571230 查看本文章

缺点:如果断言很复杂,则检测和维护开销较高

5.7 触发器

触发器是用户定义在关系表上的一类由事件驱动的特殊过程。

5.7.1 定义触发器

触发器又叫做事件-条件-动作规则:当特定的系统事件发生时,对规则的条件进行检查,条件成立则执行规则中的动作。

  1. 只有表的拥有者/DA才能创建触发器,一个表只能创建一定数量的触发器
  2. 同一模式下,触发器名必须是唯一的,并且触发器名和表名必须在同一模式下。
  3. 触发器只能定义在基本表上,不能定义在视图上。但是触发器的动作不局限在一张表
  4. AFTER/BEFORE是触发的时机
  5. 触发器类型:行级触发器、列级触发器
  6. 如果触发动作体执行失败,激活触发器的事件就会终止执行。

5.7.2 激活触发器

这里写图片描述

猜你喜欢

转载自blog.csdn.net/doctor_fung/article/details/81412020