第五章数据库完整性
第五章 数据库完整性
数据是数据库的核心,数据的正确和完整与否将直接影响数据库的 使用。 数据的完整性指数据的正确性和相容性。 数据的完整性和安全性是两个不同的概念。 1、数据的安全性 保护数据库防止恶意的破坏和非法的存取; 防范对象:非法用户和非法操作。 、数据的完整性 防止数据库中存在不符合语义的数据(不正确的数据); 防范对象:不合语义的、不正确的数据
2 数据是数据库的核心,数据的正确和完整与否将直接影响数据库的 使用。 数据的完整性指数据的正确性和相容性。 数据的完整性和安全性是两个不同的概念。 1、数据的安全性 • 保护数据库防止恶意的破坏和非法的存取; • 防范对象:非法用户和非法操作。 2、数据的完整性 • 防止数据库中存在不符合语义的数据(不正确的数据); • 防范对象:不合语义的、不正确的数据
本章主要内容 数据完整性概述 索引 在 SQL Server2008中实现数据完整性 其他相关知识
3 本章主要内容 数据完整性概述 在SQL Server 2008中实现数据完整性 其他相关知识 索引
、数据库完整性概述 1、为了维护数据的完整性,DBMS必须能够: (1)提供定义完整性约束条件的机制 完整性约束条件=完整性规则,由SQL的DDL语句来实现; (2)提供完整性检查的机制 检查数据是否满足完整性约束条件的机制; (3)违约处理 若用户操作违反完整性约束条件,采取一定的动作,如拒绝执行(NO ACTION)、级联执行或其他操作;
4 一、数据库完整性概述 1、为了维护数据的完整性,DBMS必须能够: (1)提供定义完整性约束条件的机制 完整性约束条件 = 完整性规则,由SQL的DDL语句来实现; (2)提供完整性检查的机制 检查数据是否满足完整性约束条件的机制; (3)违约处理 若用户操作违反完整性约束条件,采取一定的动作,如拒绝执行(NO ACTION)、级联执行或其他操作;
2、数据库完整性约束机制分类 完整性约束条件作用的对象有关系、元组、列三种;可分为 (1)实体完整性:实体完整性是为了保证表中的数据唯一; (2)参照完整性:参照完整性用于确保相关联的表间的数据应保持 致,避免因一个表的记录修改,造成另一个表的内容变为无效的 般来说,参照完整性是通过外键和主键来维护的; (3)域完整性:域完整性可以保证数据的取值在有效的范围内; (4)用户定义完整性:由用户自行定义的,不同于前面3种的完整 性,也可以说一种强制数据定义;
5 2、数据库完整性约束机制分类 完整性约束条件作用的对象有关系、元组、列三种;可分为: (1)实体完整性:实体完整性是为了保证表中的数据唯一; (2)参照完整性:参照完整性用于确保相关联的表间的数据应保持 一致,避免因一个表的记录修改,造成另一个表的内容变为无效的.一 般来说,参照完整性是通过外键和主键来维护的; (3)域完整性:域完整性可以保证数据的取值在有效的范围内; (4)用户定义完整性:由用户自行定义的,不同于前面3种的完整 性,也可以说一种强制数据定义;
(1)实体完整性 实体(Ent):是数据逻辑模型中的一个概念。现实世界是一组实体的 基本对象和这些对象的联系( Relation)构成的。在数据库中,我们可以理解 一条记录就是一个实体 实体完整性:在现实世界中,任何一个实体都有区别于其他实体的特征, 即在数据库中,所有的记录都应该有惟一的标识,这就是实体完整性的含义 规则21:实体完整性规则)。 常见的实体完整性机制包括 主键( Primary Key);惟一码( Unique);
6 (1)实体完整性 实体(Entity):是数据逻辑模型中的一个概念。现实世界是一组实体的 基本对象和这些对象的联系(Relation)构成的。在数据库中,我们可以理解 一条记录就是一个实体。 实体完整性:在现实世界中,任何一个实体都有区别于其他实体的特征, 即在数据库中,所有的记录都应该有惟一的标识,这就是实体完整性的含义 (规则2.1:实体完整性规则)。 常见的实体完整性机制包括: 主键(Primary Key);惟一码(Unique);
(2)参照完整性 参照完整性是指在两个表的主键和外键之间数据的完整性,其含义包括 参照完整性保证被参照表和参照表之间数据的一致性 ·可以防止数据丢失或者无意义的数据; 可以禁止在从表中插入被参照表中不存在的关键字的记录 参照完整性的常见实现机制包括: 外键( Foreign Key)、检查( Check)、触发器( Trigger);存储过程 Stored Procedure)
7 (2)参照完整性 参照完整性是指在两个表的主键和外键之间数据的完整性,其含义包括: • 参照完整性保证被参照表和参照表之间数据的一致性; • 可以防止数据丢失或者无意义的数据; • 可以禁止在从表中插入被参照表中不存在的关键字的记录。 参照完整性的常见实现机制包括: 外键(Foreign Key)、检查(Check)、触发器(Trigger);存储过程 (Stored Procedure)
(3)域完整性 域:指列(字段),所以域完整性就是指列的完整性; 域完整性要求列(字段)的数据具有正确的数据类型、格式和有效的数 值范围。 域完整性的常见实现机制包括: 默认值( Default) 检查( Check) 数据类型( Data type) 规则(Rule)
8 (3)域完整性 域:指列(字段),所以域完整性就是指列的完整性; 域完整性要求列(字段)的数据具有正确的数据类型、格式和有效的数 值范围。 域完整性的常见实现机制包括: • 默认值(Default) • 检查(Check) • 数据类型(Data type) • 规则(Rule)
(4)用户自定义完整性 用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求; 可直接由 RDBMS提供,而不必由应用程序承担;系统将实现数据完整性的 要求直接定义在表上或列上。 常见的实现机制包括 规则(Rule)、创建数据表时的所有约束( Constraint)、触发器 ( Trigger)、存储过程( Stored produre);
9 (4)用户自定义完整性 用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求; 可直接由RDBMS提供,而不必由应用程序承担;系统将实现数据完整性的 要求直接定义在表上或列上。 常见的实现机制包括: 规则(Rule)、创建数据表时的所有约束(Constraint)、触发器 (Trigger)、存储过程(Stored Produre);
二、紧引 、索引的分类 索引:根据表中一列或若干列按照一定顺序建立的列值与记录行之间的 对应关系表。 作用: 快速存取数据 保证数据记录的唯一性; 实现表与表之间的参照完整性 在使用 ORDER BY、 GROUP BY子句进行数据检索时,利用索引可以 减少排序和分组的时间
10 二、索引 1、索引的分类 索引:根据表中一列或若干列按照一定顺序建立的列值与记录行之间的 对应关系表。 作用: • 快速存取数据; • 保证数据记录的唯一性; • 实现表与表之间的参照完整性; • 在使用ORDER BY、GROUP BY子句进行数据检索时,利用索引可以 减少排序和分组的时间