数据库

简介: 数据库完整性

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('男','女'))
目录
相关文章
ly~
|
1月前
|
存储 SQL NoSQL
数据库介绍
数据库是组织、存储和管理数据的仓库,分为关系型(RDBMS)和非关系型(NoSQL)。RDBMS 如 MySQL、Oracle 和 SQL Server 通过表间关系存储结构化数据;NoSQL 包括 MongoDB、Redis 和 Neo4j,处理非结构化数据。数据库功能组件有数据定义语言(DDL)、数据操作语言(DML)和数据库管理系统(DBMS)。应用场景涵盖企业资源规划(ERP)、电子商务和大数据分析,支持自动化管理、数据分析及决策支持。
ly~
32 3
|
6月前
|
SQL BI 数据库
数据库视频(二)
数据库视频(二)
38 1
|
关系型数据库 Linux BI
数据库的一些知识
数据库的一些知识
50 0
|
6月前
|
关系型数据库 MySQL 数据库
数据库(三)
数据完整性是数据库管理中的关键概念,确保数据的准确和一致。主要包括: 1. 实体完整性:通过主键(唯一且非空)来标识表中的每条记录,如创建`test2`表时设置`n1`为主键。 2. 创建表`test3`时,`n1`和`n2`组合成为主键,确保多字段的唯一性。 3. 唯一约束:用于保证列值的唯一性,如在`test1`中添加对`n2`的唯一约束,或创建`test4`时`n1`和`n2`的组合值唯一。 4. 引用完整性:通过外键约束实现,如`emp`表的`dept_id`引用`dept`表的`id`,确保数据间的关联合法性。外键可以有级联操作,如`on delete cascade`和`o
28 0
|
6月前
|
SQL NoSQL 关系型数据库
数据库
数据库
80 1
|
存储 缓存 关系型数据库
2、数据库相关
2、数据库相关
49 0
|
SQL Java 数据库连接
H2数据库相关知识
H2数据库是一个嵌入式关系数据库管理系统(RDBMS),它以纯Java编写,支持SQL和JDBC标准。H2数据库具有高性能、轻量级、易于使用和部署的特点。它可以作为内存数据库或持久化数据库使用,并且支持多种模式,包括嵌入式模式、服务器模式和混合模式。H2数据库还提供了一些高级功能,如触发器、存储过程和内置函数,使开发者能够更灵活地操作数据。
133 1
|
SQL 数据库
【数据库视频】总结
【数据库视频】总结
97 0
【数据库视频】总结
|
存储 消息中间件 NoSQL
数据库常识课
数据库常识课
67 0
|
SQL 数据库
数据库知识与技巧日常汇总
数据库知识与技巧日常汇总
105 0
下一篇
无影云桌面