数据库的完整性是指数据的正确性和相容性。
数据库的完整性和安全性是两个不同的概念:数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。数据的安全性是保护数据库防止恶意的破坏和非法的存取。因此,完整性检查和控制的防范对象是不合语义的、不正确的数据,防止它们进入数据库。安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。
1、提供定义完整性约束条件的机制
实体完整性、参照完整性和用户定义完整性。一般由SQL的DDL语句来实现。
2、提供完整性检查的方法
一般在更新语句执行后开始检查,也可以在事物提交时检查。检查这些操作执行后数据库中的数据是否违背了完整性约束条件。
3、违约处理
DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作,如拒绝执行、或级联执行等操作,进行违约处理以保证数据库的完整性。
实体完整性
实体完整性定义
关系模型的实体完整性是在CREATE TABLE中用PRIMARY KEY 定义。一种是定义为列级约束条件,另一种是定义为表级约束条件。
列级约束条件: <属性列名> <数据类型> PRIMARY KEY
表级约束条件: PRIMARY KEY (<属性列名>)
实体完整性检查和违约处理
1、检查主码值是否唯一,如果不唯一则拒绝插入或修改;
2、检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
RDBMS核心一般都在主码上自动建立一个索引,这样将大大提高效率。