第12讲:数据库完整性

大纲:

  1. 数据库完整性的概念及分类
  2. SQL语言实现静态(列/关系)完整性
  3. SQL语言实现动态完整性

一、前言

1. 数据库完整性是数据库的一种特性(在任何情况下的正确性、有效性和一致性),其由DBMS保证实现

①广义完整性:语义完整性、并发控制、安全控制、故障恢复

②狭义完整性:特指语义完整性,DBMS通常有专门的完整性管理机制与程序来处理语义完整性问题

2. 回顾关系模型中的三个完整性:实体完整性、参照完整性、用户自定义完整性

用户自定义完整性即是上述语义完整性,而这也是我们这讲的主题。

3. 本讲目的:学会把完整性约束条件施加到数据库的定义中,学会如何表达完整性约束条件。

二、数据库完整性概述

1. 为什么会引发数据库完整性的问题?

  • 不正当的数据库操作,如输入错误、操作失误、程序处理失误等

2. 数据库完整性管理的作用:

  • 防止和避免数据库中不合理数据的出现
  • DBMS应尽可能地自动防止DB中的语义不合理现象

3. DBMS如何自动保证数据库完整性?

  1. DBA定义完整性约束规则;
  2. 当用户请求更新数据时,DBMS将依据完整性约束规则来检查此更新是否符合规则,进而决定是否允许更新。

三、数据库完整性的分类

1. 按约束对象分类

  • 域完整性约束条件:施加于某一列上,对给定列上所要更新的某一候选值是否可以接受进行约束条件判断
  • 关系完整性约束条件:施加于关系(若干列)上,对给定关系上所要更新的某一候选元组是否可以接受进行约束条件判断;或是对一个关系中的若干元组和另一个关系中的若干元组间的联系是否可以接受进行约束条件判断

2. 按约束来源分类

  • 结构约束:来自于模型的约束,例如函数依赖约束、主键约束(实体完整性)、外键约束(参照完整性),只关心数值相等与否,是否允许空值等
  • 内容约束:来自于用户的约束,如用户自定义完整性,关心元组或属性的取值范围

3. 按约束状态分类

  • 静态约束:要求DB在任何时候均应满足的约束,如Sage在任何时候均应满足“大于0且小于150”
  • 动态约束:要求DB从一状态变为另一状态时应满足的约束,例如人的身高只能增加,不能减少(不可从170更改为165)

四、 完整性约束条件

五、用SQL语言实现静态完整性

原文地址:https://www.cnblogs.com/xzxl/p/10747795.html

时间: 2024-11-11 13:18:12

第12讲:数据库完整性的相关文章

SQL 数据库完整性

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27109035 一.实体完整性定义 [例1]将Student表中的Sno属性定义为码. CREATE TABLE Student ( Sno CHAR(10) PRIMARY KEY, /*在列定义主码*/ Sname CHAR(20) NOT NULL, Sage SMALLINT ); 或者: CREATE TABLE Student ( Sno CHAR(10

数据库复习3——数据库完整性

数据库复习 CH5 完整性 5.1 完整性约束 数据库完整性是指数据库中数据在逻辑上的一致性.正确性.有效性和相容性,那么完整性约束就是指用户插入.修改和删除操作时,DBMS为了保证数据库逻辑上的一致性.正确性.有效性和相容性所必需要检查的约束条件 C.J.Date在<An Introduction to Database Systems>一书中描述了四种完整性约束: 类型约束 属性约束 关系变量约束 数据库约束 C.J.Date提出的理论多半是建立在他自创的Tutorial D这个概念型数据

[ionic开源项目教程] - 第12讲 医疗模块的实现以及Service层loadMore和doRefresh的提取封装

关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现tab2[医疗]模块,[医疗]模块跟tab1[健康]模块类似. [ionic开源项目教程] - 第12讲 医疗模块的实现以及Service层loadMore和doRefresh的提取封装 [效果图] 1.实现tab2.html[医疗]模块的视图部分实现(跟tab1.html类似): <ion-view view-title="医疗"> <ion-slide-box show-pa

数据库 chapter 5 数据库完整性

第五章 数据库完整性 数据库的完整性是指数据库的正确性和相容性. 例如,学生学号必须唯一,性别只能是男或女等等: 和数据安全性的区别: 数据的完整性是为了防止数据库中存在不正确的数据,数据库的安全性是保护数据库防止恶意的破坏和非法的存取.因此,完整性检查和控制的防范对象是不合语义的,不正确的数据,防止它们进入数据库.安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取. 为维护数据库的完整性,DBMS必须能够: 提供定义完整性约束条件的机制: 提供完整性检查的方法: 违约处理

复习六——数据库完整性

数据库完整性概念 数据库完整性是指保护数据库中数据的 正确性:数据的合法性 有效性:数据是否在有效范围内 相容性:指表示同一个事实的两个数据应该一致 完整性规则定义 D(Data):约束作用的数据对象 O(Operation):触发完整性检查的数据库操作,立即检查还是延迟检查. A(Assertion):数据对象要满足的断言或语义规则 C(Condition):受A作用的数据对象值的谓词 P(Procedure):违反完整性规则时触发的过程 完整性约束按约束作用类型分类 域完整性 域是一组具有相

数据库完整性和约束

数据库的完整性 数据库约束是保证数据库完整性的方法 ,数据库完整性分为实体完整性.域完整性和参照完整性 实体完整性 实体完整性要求表中的主键字段不能为空且不能重复: 域完整性 域完整性要求表中数据都在有效范围内: 参照完整性 参照完整性保证了相关联的表的数据一致性: 约束的使用 约束是保证表中数据完整性和一致性的手段,分为主键约束.外键约束.检查约束.唯一约束.非空约束五种: 主键约束 主键约束在每个数据表中只有一个,但主键约束可以有多个列组成: -- 添加主键约束 alter table ta

数据库原理-数据库完整性

关系数据库的完整性规则是数据库设计的重要内容.绝大部分关系型数据库管理系统RDBMS都可自动支持关系完整性规则,只要用户在定义(建立)表的结构时,注意选定主键.外键及其参照表,RDBMS可自动实现其完整性约束条件. 实体完整性 实体完整性指表中行的完整性.主要用于保证操作的数据(记录)非空.唯一且不重复.即实体完整性要求每个关系(表)有且仅有一个主键,每一个主键值必须唯一,而且不允许为“空”(NULL)或重复. 参照完整性 参照完整性(Referential Integrity)属于表间规则.对

数据库完整性

本节要点: 实体完整性 参照完整性 用户定义的完整性 完整性约束命名子句 触发器 数据库的完整性是指数据的正确性和相容性. 例如,学生的学号必须唯一:性别只能是男或女:本科学生年龄的取值范围为14~50的整数:学生选的课程必须是学校开设的课程:学生所在的院系必须是学校已经成立的院系等. 数据的完整性和安全性是两个不同概念. 为维护数据库的完整性,DBMS必须: 提供定义完整性约束条件的机制 提供完整性检查的方法 违约处理 1         实体完整性 1.1       实体完整性定义 关系模

《数据库系统概论》 -- 5 数据库完整性

概念 数据库的完整性是指数据的正确性与相容性 正确性:数据是满足现实世界语义,反映当前状况 相容性:同一数据库对象在不同关系表中的数据是符合逻辑的 作用 防止数据库中存在不符合语义的不正确数据,防范对象对象是不合语义.不正确的数据 实体完整性--列级/表级约束条件 使用         关系模型实体完整性用PRIMARY KEY表示 说明         单码为主码,则该实体完整性约束可作为表级约束条件或列级约束条件 多码为主码,该实体完整性约束只可作为表级约束条件 检查         对基本