教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
注:文档高清截图在后
第5章 数据库完整性
数据库的完整性(integrity)是指数据的正确性(correctness)和相容性(compatibility)。正确性指数据符合现实语义、反映实际状况的;相容性指数据库的同一对象在不同关系表中的数据符合逻辑。例如:某网站要求每个用户的注册邮箱必须唯一;“是否参加过ICPC / CCPC / CTF”只能取是或否;被“过柱子”的样品必须是实验室中存在的样品;获取某软件的学生授权的用户必须是在读大学生等等。
数据库的完整性和安全性是部分重叠的概念。保证数据的完整性,是指防止数据库中存在不符合语义(不正确)的数据;保证数据的安全性,是指保护数据库不被破坏和非法存取。
为维护数据库的完整性,DBMS至少要实现如下功能:
1、提供定义完整性约束条件的机制。
SQL的数据定义语言可以定义实体完整性、参照完整性和用户定义完整性,它们将作为数据库模式的一部分存入数据字典。
2、提供完整性检查的方法。
一般在执行增删改的语句后检查,也可以在事务提交(将对数据库的修改正式回写到硬盘的物理数据库中)时检查。
3、违约处理。
DBMS发现违背完整性约束条件的操作时,需要采取一定动作,如拒绝执行或级联执行,保证数据完整性。
目前商用的关系数据库产品都支持完整性控制,DBMS直接负责而不必由应用程序完成,减轻应用程序编写者的负担。更重要的是,关系数据库管理系统(RDBMS)使完整性控制成为了核心功能,从而能为所有用户和应用提供一致的完整性。如果由应用程序的编写者各自实现完整性控制,很可能存在各种漏洞,且有的程序定义的完整性约束可能被其它程序破坏,数据的正确性仍然无法保证。
5.1 实体完整性
1、回忆:2.3 关系的完整性 实体完整性规则 若属性(一个或一组)A是基本关系R的主属性,则A不能为空(null)。空值就是不知道、不存在或无意义(未定义)的值。
关系模型的实体完整性在创建表时用PRIMARY KEY定义,可以定义为列级约束也可以定义为

数据库完整性涉及实体完整性、参照完整性和用户定义完整性,确保数据的正确性和相容性。实体完整性规定主属性不能为空,参照完整性通过外键维护表间关系,用户定义完整性允许自定义约束条件。完整性检查在增删改操作后进行,违约处理通常拒绝执行或级联执行。主键和外键通常伴随索引以提高效率,而触发器和断言提供更复杂的规则执行。
最低0.47元/天 解锁文章
2661

被折叠的 条评论
为什么被折叠?



