数据库完整性

Scroll Down

第五章 数据库完整性

数据库的完整性指的是数据的正确性和相容性

为维护数据库完整性,DBMS必须实现以下功能

  • 提供定义完整性约束条件的机制
  • 提供完整性检查的方法
  • 进行违约处理

实体完整性

  • 定义:在CREATE TABLE时用 PRIMARY KEY 定义
  • 实体完整性检查和违约处理:
  1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改
  2. 检查主码的各个属性是否非空,如果有一个为空就拒绝插入和修改

参照完整性

  • 定义:在CREATE TABLE时用FOREIGN KEY短语定义哪些为外键
  • 参照完整性检查和违约处理:
  1. 插入元组,违约处理:拒绝
  2. 修改外键的值:违约处理:拒绝
  3. 删除被参照表的元组,违约处理:拒绝,级联删除,设置为空值
  4. 修改被参照表的主码值:拒绝,级联修改,设置为空值

用户定义的完整性

  • 在CREATE TABLE时,可根据应用要求上的定义属性上的约束条件:非空,唯一,check
  • 违约处理:拒绝

触发器

  • 用户定义在关系表上的一类由事件驱动的特殊过程
CREATE TRIGGER 触发器名
ON 表名
[FOR|INSTEAD OF|AFTER] [DELETE|INSERT|UPDATE]
AS
    ....
RETURN

存储过程

CREATE PROC 过程名(参数)
AS
    ....
RETURN