数据库的完整性

前言: 概念性的知识到这一章马上结尾了,还剩下数据库的恢复技术,接下来会给大家出具体的操作文章。
定义: 数据库的完整性是指数据的正确性和相容性。
实体完整性

  • 定义实体完整性:
    -关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对多个属性构成的码只有一种说明方法,即定义为表级约束条件。
    例如: 将Student表中的Sno属性定义为码。
    在这里插入图片描述
  • 实体完整性检查和违约处理:
    (1) 检査主码值是否唯一,如果不唯一则拒绝插入或修改。
    (2) 检査主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
    由于检查竹马是否唯一用的是全表扫描,很费时间,所以关系数据库一般建立一个B+树索引来提高效率。
    在这里插入图片描述
    解释: 查找25。 25小于51,在左侧,25在12和30之间,往中间找。 总之:小了往左找,大了向右找,不大不小在中间。

**参照完整性 **

  • 定义参照完整性:
    -关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。

在这里插入图片描述

  • 参照完整性検查和违约处理
    在这里插入图片描述

用户定义的完整性 用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。

  • 属性上的约束条件:在CREATE TABLE中定义属性的同时,可以根据应用要求定义属性上的约束条件。包括:
    ・列值非空(NOTNULL)。
    ・列值唯一(UNIQUE)。
    ・检査列值是否满足一个条件表达式(CHECK短语)
  • 元组上的约束条件
    与属性上约束条件的定义类似,在CREATE TABLE语句中可以用CHECK短语定义元组上的约束条件,即元组级的限制。同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件。

完整性约束子句

  • 完整性约束命名子句
    -CONSTRAINT <完整性约束条件名> <完整性约束条件>,完整性约束条件包括 NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK短语等。
    在这里插入图片描述
  • 修改表中的完整性限制
    -可以使用ALTER TABLE语句修改表中的完整性限制s
    在这里插入图片描述

断言 在SQL中可以使用数据定义语言中的CREATE ASSERTION语句,通过声明性断言来指定更具一般性的约束。
1、创建断言的语句格式
-----------CREATE ASSERTIONS <言名 > <CHECK 子句>
在这里插入图片描述
2.删除断言的语句格式
-----------DROP ASSERTION <断言名>

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

  • 定义触发器
    -触发器又叫做事件-条件-动作规则
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqcStar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值