当前位置: 首页 > news >正文

第五章 数据库完整性

目的:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。

一、实体完整性

定义:

主码是否唯一、主属性不能取空值。

列级约束条件:在列后面定义约束

表级约束条件:在属性最后面定义约束

多个属性组成的码只能用表级约束条件。

完整性检查和违约处理:

主码是否唯一(全表扫描 | 索引)、主属性不能取空值。

二、参照完整性

定义:

foreign key定义哪些为外码

references指明这些代码参照哪些表的主码。

完整性检测和违约处理:

参照表修改外键或插入元组时,被参照表一般执行拒绝的策略。

被参照表删除元组或修改主码值时,参照表可以执行(拒绝、级联、设置为null值)的操作。

拒绝是默认策略

三、用户定义的完整性

属性上的约束条件的定义

not null、

unique、

check:检查列值是否满足一个布尔表达式,如下

Ssex char[2] check (Ssex in ('男','女'))

在插入数据或者修改属性值时,RDBMS检测属性上的约束条件是否被满足,若不满足则拒绝执行。

元组上的约束条件的定义

定义:用check短语定义元组上的约束条件,可以设置不同属性之间的取值的相互约束条件

约束条件检查和违约处理:插入元组或者修改属性的值时,检查元组上的约束条件是否被满足,若不满足,则拒绝执行。

四、完整性约束命名子句

constraint约束,跟在列属性或者表属性后面都可以

constraint <完整性约束条件名>
primary key | foreign key | check

修改完整型约束命名子句。

删除
alter table student 
drop constraint C1;
添加
alter table student
add constraint C2 check();

五、域中的完整性限制

domain

create domain genderdomain char(2)
check (value in ('男','女'));


前面的
ssex check(ssex in ('男','女'))
可以改为
ssex genderdomain

在域中对限制命名:

 

 

六、触发器

用户定义在表上的一类由事件驱动的特殊过程,服务器自动激活。

相关文章:

  • 【操作系统】同步与互斥
  • WPF中对滚动条进行平滑滚动
  • Spring Boot 3.x 基于 Redis 实现邮箱验证码认证
  • vulnhub靶场【kioptrix-4】靶机
  • 当生活被算法重塑:AI 对生活的多面影响
  • 齿轮制造的“精密心脏”:蜗杆状砂轮磨齿机探秘
  • 短跑怎么训练提高最快·棒球1号位
  • 蓝桥杯 之 填空题-位运算与循环
  • USRP6330-通用软件无线电平台
  • 《数据安全架构设计与实战》的目录
  • React学习笔记08
  • 使用 Ansys Discovery 高效创建角焊缝
  • 视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
  • Stata17 安装教程(附安装包)Stata17下载
  • LoRA技术升级!LoRA-RITE在Gemma-2B上实现4.6%准确率提升!
  • PG认证培训课程重磅来袭
  • 2月28日,三极管测量,水利-51单片机
  • react覆盖组件样式,不影响其他地方相同类名的组件
  • 8款智能排班系统,全面深入介绍
  • SQL打折日期交叉问题
  • dw做网站背景音乐/微信seo
  • 人大网站建设的分析/哈尔滨seo关键词
  • python做网站/百度网盘pc网页版入口
  • 做淘客推广用什么网站好/ks刷粉网站推广马上刷
  • 客户做网站需要提供什么/高端网站定制设计
  • 河南两学一做网站/怎么开个人网站