数据库系统概论第五版学习笔记数据库完整性 第五章

一、基本内容

1. 定义:数据的正确性和相容性

2. 内容涉及

   1)提供定义完整性约束条件的规则

  ‚2)提供完整性检查的方法

   3)进行违约处理

3. 分类 实体完整性(对全码约束)PRIMARY KEY

       参照完整性(对外码约束)REFERENCES

       用户定义完整性(与应用有关)CHECK

  例:当学生的性别是男时,其名字不能以Ms. 打头

      CREATE TABLE Student

      ( Sno CHAR(9),

      Sname CHAR(8) not null,

      Ssex CHAR(2),

      Sage SMALLINT,

      Sdept CHAR(20),

      PRIMARY KEY(Sno),

      CHECK(Ssex= OR Sname not like Ms.%) /*要么是女的,要么不以Ms开头*/

4. 违约处理

   实体:拒绝(自动)

  ‚ 参照  插入

             删除:ON DELETE CASCADE(级联删除)

             修改:ON UPDATE NO ACTION(级联更新)

 

二、完整性命名子句

1. CONSTRAINT <><约束>

   注意:用约束命名子句定义全码,外码,表达式约束,一定是表级约束(涉及到2个约束)

2. 操作  增加 ALTER TABLE ADD 约束

         删除 ALTER TABLE DROP 约束

         修改 先删后插

例:修改表Student中的约束条件,要求学号改为在100~199之间,年龄由小于30改为小于40. (先删再插)

   ALTER TABLE Student

     DROP CONSTRAINT C1

   ALTER TABLE Student

     ADD CONSTRAINT C1 CHECK(Sno BETWEEN 100 AND 199)

   ALTER TABLE Student

     DROP CONSTRAINT C3

   ALTER TABLE Student

     ADD CONSTRAINT C3 CHECK (Sage<40)

 

三、触发器

1. 定义:特殊的存储过程

  1)执行自动的

  2)表关联

  3)可以开关

2. 作用:实现复杂约束

3. 分类    DML触发器  INSTEAD OF 触发器

                                           CLR                                      对象:数据

                                           ALTER 触发器

               DDL触发器(对象:结构

4. 组成  触发器名称

         触发事件

         触发对象

         触发器动作

  例:create trigger s_insert  名称

      On studentent        对象

      After update

      For insert            事件

      As

      Print ‘您插入数据了’  动作

 

5. 工作原理

   INTERTED

   DELETED

 

6. 管理触发器

(1)删除

     DROP TRIGGER 触发器名称

   注意: 1)当参照对象被删除时,对应的触发器也删除

                2) 删除触发器时,不影响参照对象的数据和结构

(2)禁用触发器

     DLSABLE TRIGGER 触发器名称 ON 参照对象

     (可以通过SSMS完成)

(3)启用触发器

     ENABLE TRIGGER 触发器名称 ON 参照对象

 

7. DML触发器与约束比较

  DML触发器包含约束

  DML触发器通过滚回操作恢复操作前的状态

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值