数据库

简介: 数据库完整性

5.数据库完整性

1.实体完整性(标注主码)

列级完整性:
sno char(9)  primary key 

表级完整性:
primary key(sno)    //两个及以上使用

检查与违约

  1. 检查主码值是否唯一,不唯一则拒绝插入或修改
  2. 检查主码的各个属性是否为空,有一个为空就拒绝插入或修改

检查主码值是否唯一时,要进行全表扫描, 十分费时,所以数据库管理系统一般都在主码上自动建立一个索引(B+树),提高效率

2.参照完整性(标注外码)

表级完整性:
foreign key (外码) references 哪个表 (什么属性) 
foreign key (sno) references table (sno)

检查与违约

修改参照表破坏完整性,拒绝执行

修改被参照表破坏完整性,可以拒绝/级联删除/设为空值

被参照表(Student) 参照表(SC) 违约处理
破坏参照完整性 插入元组 拒绝
破坏参照完整性 修改外码值 拒绝
删除元组 破坏参照完整性 拒绝/级联删除/设为空
修改主码值 破坏参照完整性 拒绝/级联删除/设为空
  1. SC中差一条元组,Student中没有这个属性值
  2. SC修改元组,Student中没有一样的
  3. Student删元组,SC表中某些元组找不到外码
  4. 修改主码,SC表某些元组找不到外码
on 操作 怎么办

no action 拒绝执行
cascade 级联删除


foreign key (Sno) references Stduent(Sno)
    on delete cascade        //Student删除操作时,级联删除SC表中涉及到的元组
    on update cascade        //Student更新操作时,级联更新SC表中涉及到的元组
foreign key (Cno) references Course (Cno)
    on delete no action        //Course删除操作时,如果造成Course与SC不一致,拒绝删除
    on update cascade        //级联更新
**
not null  //列值非空
unique        //列值唯一
check短语        //列值满足条件表达式    (允许使用谓词)

Sno char(10) not null
Sname char(10) unique
Ssex char(2) check(Ssex in('男','女'))
目录
相关文章
|
5月前
|
存储 数据采集 数据管理
什么是数据库的概念模式
什么是数据库的概念模式
|
5月前
|
数据库
数据库视频(四)
数据库视频(四)
37 0
|
存储 SQL NoSQL
|
SQL 存储 NoSQL
数据库详解
数据库详解
65 0
|
SQL 数据库 Windows
数据库—耿建玲视频总结(二)
首先建库,就好比我们盖房子,我们可以自己盖(企业管理器建库),也可以包给别人让别人给盖(T语言建库)。
|
数据库
数据库1-3章小总结
数据库1-3章小总结
43 0
|
5月前
|
SQL NoSQL 关系型数据库
数据库
数据库
77 1
|
12月前
|
存储 缓存 关系型数据库
2、数据库相关
2、数据库相关
45 0
|
SQL Java 数据库连接
H2数据库相关知识
H2数据库是一个嵌入式关系数据库管理系统(RDBMS),它以纯Java编写,支持SQL和JDBC标准。H2数据库具有高性能、轻量级、易于使用和部署的特点。它可以作为内存数据库或持久化数据库使用,并且支持多种模式,包括嵌入式模式、服务器模式和混合模式。H2数据库还提供了一些高级功能,如触发器、存储过程和内置函数,使开发者能够更灵活地操作数据。
124 1
|
SQL 数据库
【数据库视频】总结
【数据库视频】总结
91 0
【数据库视频】总结