第五章数据库完整性详解.pptVIP

  • 11
  • 0
  • 约1.17万字
  • 约 63页
  • 2017-08-24 发布于湖北
  • 举报
第五章 数据库完整性 数据库完整性 数据是数据库的核心,数据的正确和完整与否将直接影响数据库的使用。 数据的完整性和安全性是两个不同概念; 数据的安全性 保护数据库防止恶意的破坏和非法的存取 防范对象:非法用户和非法操作 数据的完整性 防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据 防范对象:不合语义的、不正确的数据 本次课内容 数据完整性概述 在SQL Server 2005中实现数据完整性 其他相关知识 触发器 一、数据库完整性概述 1、DBMS必须能够提供 提供定义完整性约束条件的机制 完整性约束条件 = 完整性规则,由SQL的ddl语句来实现; 提供完整性检查的机制 检查数据是否满足完整性约束条件的机制; 违约处理 若用户操作违反完整性约束条件,采取一定的动作,如拒绝执行(NO ACTION)、级联执行或其他操作; 2、数据库完整性约束机制分类 完整性约束条件作用的对象有关系、元组、列三种;可分为: 实体完整性:实体完整性是为了保证表中的数据唯一; 参照完整性:参照完整性用于确保相关联的表间的数据应保持一致,避免因一个表的记录修改,造成另一个表的内容变为无效的值.一般来说,参照完整性是通过外键和主键来维护的; 域完整性:域完整性可以保证数据的取值在有效的范围内; 用户定义完整性:由用户自行定义的,不同于前面3种的完整性,也可以说一种强制数据定义; 1)实体完整性 实体(Entity):是数据逻辑模型中的一个概念。现实世界是一组实体的基本对象和这些对象的联系(Relation)构成的。在数据库中,我们可以理解一条记录就是一个实体。 实体完整性:在现实世界中,任何一个实体都有区别于其他实体的特征,即在数据库中,所有的记录都应该有惟一的标识,这就是实体完整性的含义(规则2.1:实体完整性规则)。 常见的实体完整性机制包括: 主键(Primary Key);惟一码(Unique); 2)参照完整性 参照完整性是指在两个表的主键和外键之间数据的完整性,其含义包括: 参照完整性保证被参照表和参照表之间数据的一致性; 可以防止数据丢失或者无意义的数据; 可以禁止在从表中插入被参照表中不存在的关键字的记录。 参照完整性的常见实现机制包括: 外键(Foreign Key)、检查(Check)、触发器(Trigger);存储过程(Stored Procedure) 在输入或删除记录时,可以用来保持所有表之间定义的关系,以确保键值在所有表中一致。 关系模型的参照完整性定义 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码 用REFERENCES短语指明这些外码参照哪些表的主码 3)域完整性 域:指列(字段),所以域完整性就是指列的完整性; 域完整性要求列(字段)的数据具有正确的数据类型、格式和有效的数值范围。 域完整性的常见实现机制包括: 默认值(Default) 检查(Check) 数据类型(Data type) 规则(Rule) 4)用户自定义完整性 用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求;可直接由RDBMS提供,而不必由应用程序承担;系统将实现数据完整性的要求直接定义在表上或列上。 常见的实现机制包括: 规则(Rule)、创建数据表时的所有约束(Constraint)、触发器(Trigger)、存储过程(Stored Produre); 二、在SQL Server 2005中实现数据完整性 SQL Server 2005提供了完善的数据完整性机制,主要包括约束、默认值和规则3类; 创建及管理约束及约束对象 默认值约束及默认值对象 创建及管理规则对象 1、创建及管理约束及约束对象 主键Primary key约束 惟一值Unique约束 外键Foreign key约束 检查Check约束 1)创建及删除主键约束及惟一值约束 单属性构成的码的两种说明方法 : 定义为列级约束条件,定义为表级约束条件 多个属性构成的码只有一种说明方法: 定义为表级约束条件 创建约束方式: 创建表时同时创建primary key约束或unique约束 修改表时同时创建primary key约束或unique约束 i)创建表时同时创建primary key约束或unique约束 语法结构: CREATE TABLE table_name (column_name data_type (NULL| NOT NULL) [ [CONSTRAINT constraint_name] { PRIMARY KEY | unique} [, ...n] 例1:定义数据表student时,为学号sno字段创建主键约束,对姓名sname字段定义惟一值约束; 方法1:在列级定义主码 Use s

文档评论(0)

1亿VIP精品文档

相关文档