数据库

简介: 数据库完整性

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('男','女'))
目录
相关文章
|
关系型数据库 MySQL 数据库
数据库练习
数据库练习
82 0
ly~
|
18天前
|
存储 SQL NoSQL
数据库介绍
数据库是组织、存储和管理数据的仓库,分为关系型(RDBMS)和非关系型(NoSQL)。RDBMS 如 MySQL、Oracle 和 SQL Server 通过表间关系存储结构化数据;NoSQL 包括 MongoDB、Redis 和 Neo4j,处理非结构化数据。数据库功能组件有数据定义语言(DDL)、数据操作语言(DML)和数据库管理系统(DBMS)。应用场景涵盖企业资源规划(ERP)、电子商务和大数据分析,支持自动化管理、数据分析及决策支持。
ly~
16 3
|
1月前
|
SQL 关系型数据库 MySQL
|
5月前
|
数据库
数据库视频(四)
数据库视频(四)
41 0
|
5月前
|
存储 数据库 数据安全/隐私保护
数据库特点
数据库特点
66 9
|
5月前
|
存储 数据挖掘 数据库
数据库是什么?为什么要使用它么?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它通常与数据库管理系统(DBMS)一起使用,用于创建、查询、更新和管理数据库中的数据。
190 0
|
5月前
|
Go 数据库
数据库的实现
数据库的实现
|
SQL 数据库 Windows
数据库—耿建玲视频总结(二)
首先建库,就好比我们盖房子,我们可以自己盖(企业管理器建库),也可以包给别人让别人给盖(T语言建库)。
|
5月前
|
存储 SQL 关系型数据库
初识数据库
初识数据库
|
SQL 关系型数据库 MySQL
盘点数据库中的一些坑(一)
​ 首先我们来看一下sql中的null值问题,null值是编程界一个臭名昭著的问题,当然对于数据管理的数据库来说也是没有办法避免的,下面我们根据几个案例列举一些null值的坑来说明为什么不建议使用null值
127 0
盘点数据库中的一些坑(一)