数据库五(数据库完整性)

一、实体完整性:

实体完整性规则:主属性不能取空值

关系模型中:PRIMARY KEY

单属性码可以定义为列级约束条件或者表级约束条件

多属性码则只能定义为表级约束条件

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

检查主码是否唯一,不唯一则拒绝插入或者修改

检查主码各属性是否为空,只要有一个为空就拒绝插入、修改

 

二、参照完整性:

CREATE TABLE中FOREIGN KEY定义外码,REFERENCES指明所参照的主码

违约处理:

拒绝执行(NO ACTION):默认策略

级联操作(CASCADE)

设置为空值(SET-NULL)

三、用户定义的完整性:

针对某一具体应用的数据必须满足的语义要求

属性上的约束条件定义:

列值非空(NOT NULL);列值唯一(UNIQUE);检查列值是否满足布尔表达式(CHECK)

属性上的数据条件检查和违约处理:

插入元组或修改属性值时,RDBMS检查约束条件是否被满足,不满足则拒绝执行操作;

元组级限制:CREATE TABLE时使用CHECK定义

 

四、完整性约束命名子句:

CONSTRAINT <完整性约束条件名>[NOT NULL]等

ALTER TABLE<表名> DROP CONSTRAINT<完整性约束条件名>

 

五、断言

CREATE ASSERTION <断言名><CHECK子句>

可以定义涉及多个表或者聚集操作的比较复杂的完整性约束条件;

断言创建之后,任何对断言中所涉及的操作都会触发关系数据库管理系统对断言的检查,使断言不为真值的操作都会被拒绝。

六、触发器:

用户定义在关系表上的一类由事件驱动的特殊过程,一旦定义,用户对表的增删改查均由服务器自动激活相应的触发器,在DBMS核心层进行完整性控制

触发器:当特定的系统事件发生时,对规则的条件进行检查,如果条件成立则执行规则中的动作,否则不执行,

触发器的执行,是由触发事件激活的,并由数据库服务器自动执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乘风xs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值