数据库完整性:实体完整性和参照完整性详解

需积分: 0 0 下载量 72 浏览量 更新于2024-08-05 收藏 210KB PDF 举报
本资源主要讨论的是数据库第五章中的核心概念——数据库完整性。数据库完整性是确保数据质量的关键,它包括数据的正确性和相容性两个方面。数据正确性要求数据反映现实世界的语义,即真实反映实际情况;而数据相容性则是指数据在不同关系表中的逻辑一致性。 1. **实体完整性**:这是最基本的数据完整性规则,通过 PRIMARYKEY 定义在创建表时实现。实体完整性要求每个表的主键(如学号Sno)必须唯一且非空。在插入或修改数据时,数据库管理系统会检查主键是否唯一以及所有属性是否为空,如果不符合则拒绝操作。 - **列级约束**:例如在 Student 表中,Sno 是唯一的且不允许为空。 - **表级约束**:如在 SC 表中,Sno 和 Cno 的组合为主键,这意味着在插入或修改时必须同时满足两者的完整性。 2. **参照完整性**:这是指一个表的外键(如外码Sno)引用另一个表(如Student表)的主键。在CREATE TABLE语句中,使用FOREIGNKEY关键字定义并通过REFERENCES指明引用关系。当试图对包含外键的表进行增删改操作时,如果外键值在引用表中不存在,系统将采取不同的违约处理策略,如 NOACTION(拒绝执行)、CASCADE(级联更新/删除)或 SET NULL(将外键设为 NULL)。 - **定义参照完整性**:在SC表中,Sno 和 Cno 都被定义为外键,并且分别引用 Student 和 Course 表的主键。 - **参照完整性检查**:在操作前,系统会检查外键是否存在,如果不存在则根据预设策略决定如何处理。 总结来说,本章节详细探讨了数据库完整性的重要性和实现方式,特别是在实体完整性和参照完整性上的约束条件设定、检查机制以及违约处理策略。这对于理解和设计高效、一致的数据库系统至关重要。理解并遵循这些原则有助于确保数据的准确性、完整性和一致性,从而提升数据库系统的可靠性和性能。