数据库完整性:实体完整性与参照完整性的维护

版权申诉
0 下载量 107 浏览量 更新于2024-07-03 收藏 248KB PPT 举报
“数据库系统原理课件:数据库完整性.ppt” 数据库完整性是确保数据库中存储的信息准确、一致且有效的关键概念,它涉及到数据的正确性和相容性。完整性主要分为三类:实体完整性、参照完整性和用户定义的完整性。 1. 实体完整性(Entity Integrity): 实体完整性规定了关系数据库中主键的属性,要求每个表的主键值必须唯一,不能为NULL。在创建表时,可以使用`PRIMARY KEY`约束来定义主键。例如,在创建`Student`表时,可以将`Sno`属性定义为列级约束或表级约束作为主键。当尝试插入或更新主键值时,数据库管理系统(DBMS)会自动检查主键的唯一性和非空性,以确保实体完整性。 2. 参照完整性(Referential Integrity): 参照完整性涉及到两个表之间的关联,通常通过外键实现。外键是一个表中的字段,引用另一个表的主键,以确保数据的一致性。例如,在`SC`表中,`Sno`和`Cno`组合成主键,表示学生选课关系。如果`Sno`或`Cno`试图引用不存在的主键值,数据库系统将拒绝这样的操作,从而维护参照完整性。 3. 用户定义的完整性(User-defined Integrity): 除了实体完整性和参照完整性,用户还可以根据业务需求定义额外的完整性约束,如检查特定列的值是否满足特定条件。这可以通过使用`CHECK`约束、触发器等机制来实现。例如,可以定义一个约束确保学生的年龄始终在合理的范围内。 4. 完整性检查与违约处理: DBMS提供了完整性检查机制,当尝试违反完整性约束时,系统会执行违约处理,如拒绝操作。对于主键检查,DBMS通常会通过索引来加速查找,但全表扫描也可能在某些情况下被采用。如果违反了完整性约束,系统会拒绝操作并可能返回错误信息。 5. 完整性约束命名字句和域中的完整性限制: 完整性约束可以通过SQL命令如`CREATE TABLE`中的`PRIMARY KEY`、`UNIQUE`、`NOT NULL`、`FOREIGN KEY`等来定义。同时,还可以对特定列的值范围进行限制,确保数据符合特定域的规则。 6. 触发器(Triggers): 触发器是DBMS中的一个特殊程序,会在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行。触发器可以用于实施更复杂的业务逻辑,以增强数据库的完整性。 数据库完整性是保证数据库数据准确无误的关键机制,涵盖了从基础的主键和外键约束到复杂的用户定义规则和触发器,确保了数据的正确存储和使用。理解并正确应用这些完整性概念对于设计和管理高质量的数据库系统至关重要。