数据库完整性与实体完整性规则

版权申诉
0 下载量 11 浏览量 更新于2024-07-03 收藏 456KB PPT 举报
"北京大学《数据库系统概论》的PPT第五章主要讲解了数据库的完整性这一重要概念,包括实体完整性的定义、检查和违约处理。" 数据库完整性是确保数据库中数据正确性和相容性的关键机制,它与数据安全性的目标不同。数据完整性专注于防止不正确或不合语义的数据存在于数据库中,而数据安全性则关注于防止非法用户和操作对数据库的恶意破坏和非法访问。 为了维护数据库的完整性,数据库管理系统(DBMS)需要具备三个核心功能:首先,提供定义完整性约束条件的机制,允许用户在创建表时设定规则;其次,提供完整性检查的方法,这些方法会在数据插入或更新时运行,以验证约束条件是否满足;最后,如果发生违反完整性约束的情况,DBMS需要执行违约处理,通常会拒绝不合法的操作。 实体完整性是关系模型的基本原则,主要用于保证基本表中的每个实体(如记录)都有一个唯一的标识。在创建表时,通过指定PRIMARY KEY可以定义实体完整性。对于由单个属性组成的码,可以在列级或表级定义约束条件;而对于多属性构成的码,则只能在表级定义。 例如,在SC表中,如果Sno(学生编号)和Cno(课程编号)共同作为主码,创建表的SQL语句如下: ```sql CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno) /* 定义表级主码 */ ); ``` 实体完整性检查主要发生在数据插入或更新时,DBMS会自动执行。这包括两个主要检查:一是确认主码值在整个表中是唯一的,如果有重复则拒绝操作;二是检查主码的各个属性是否为空,任何空值都将导致插入或修改被拒绝。为了检查主码的唯一性,DBMS可能需要进行全表扫描,确保所有记录的主码值都是独一无二的。 通过这样的完整性机制,数据库能够有效地防止无效数据的录入,从而保证数据的准确性和一致性,这对于任何依赖于可靠数据的系统来说都是至关重要的。