Alex_McAvoy

想要成为渔夫的猎手

数据库完整性概述

【概述】

数据库完整性是指数据的正确性相容性,正确性是指数据是符合现实世界语义、反映当前实际情况的,相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的

数据库的完整性安全性是两个不同的概念,完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,安全性是为了保护数据库防止恶意的破坏和非法的存取

因此,完整性检查和控制的防范对象是不合语义、不正确的数据,防止他们存入数据库,安全性控制的防范对象是非法用户、非法操作,防止他们对数据库的非法存取

【DBMS 提供功能】

为为维护数据库的完整性,DBMS 必须具有以下功能:

  • 提供定义完整性约束条件的机制:通过完整性约束条件,来限定符合数据模型的数据库状态及其变化,以保证数据的正确、有效、相容
  • 提供完整性检查的方法:检查数据是否满足完整性约束条件,一般在 INSERTUPDATEDELETE 语句执行后,或在事务提交时检查
  • 违约处理:DBMS 在发现用户操作违背完整性约束条件后,进行违约处理以保证数据完整性

【具体实现】

三大完整性约束

关系的完整性约束 中已经介绍了关系数据库的三类完整性约束的基本概念,关于在 SQL 语言中如何实现这些完整性约束见下:

完整性约束命名子句

在 SQL 中,实体、参照、用户定义的完整性均在 CREATE TABLE 语句中定义,一经定义无法修改

为弥补上述缺陷,SQL 在 CREATE TABLE 语句中提供了完整性约束命名子句 CONSTRAINT,用于对完整性约束条件命名,从而能够更灵活地增删完整性约束条件

关于完整性约束命名子句的详细内容:点击这里

触发器

触发器(Trigger),是用户定义在关系表上的一类由事件驱动的特殊过程,一旦定义,触发器将被保存在数据库服务器中

任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在 RDBMS 核心层进行集中的完整性控制

触发器类似于完整性约束,但比完整性约束更加灵活,可以实施更为复杂的检查和操作,具有更精细、更强大的数据控制能力

关于触发器的详细内容:点击这里

感谢您对我的支持,让我继续努力分享有用的技术与知识点!