数据库完整性(好)资料重点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法2:在表级定义主码 CREATE TABLE Student (Sno CHAR(9) , Sname CHAR(20) Unique, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno))
实体完整性检查:
❖ 插入或对主码列进行更新操作时,RDBMS按照实体完整性规 则自动进行检查。包括: ▪ 1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改 ▪ 2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插 入或修改
▪ 创建及管理约束及约束对象 ▪ 默认值约束及默认值对象 ▪ 创建及管理规则对象
1、创建及管理约束及约束对象
❖ 主键Primary key约束 ❖ 惟一值Unique约束 ❖ 外键Foreign key约束 ❖ 检查Check约束
1)创建及删除主键约束及惟一值约束
❖ 单属性构成的码的两种说明方法 :
• 完整性约束条件 = 完整性规则,由Swk.baidu.comL的ddl语句来实现;
▪ 提供完整性检查的机制
• 检查数据是否满足完整性约束条件的机制;
▪ 违约处理
• 若用户操作违反完整性约束条件,采取一定的动作,如拒绝执 行(NO ACTION)、级联执行或其他操作;
❖ 2、数据库完整性约束机制分类
完整性约束条件作用的对象有关系、元组、列三种;可分为: ▪ 实体完整性:实体完整性是为了保证表中的数据唯一; ▪ 参照完整性:参照完整性用于确保相关联的表间的数据应保持一致,
❖ 常见的实现机制包括:
▪ 规则(Rule)、创建数据表时的所有约束(Constraint)、触发 器(Trigger)、存储过程(Stored Produre);
二、在SQL Server 2005中实现数据完整性
❖ SQL Server 2005提供了完善的数据完整性机制,主 要包括规则、默认值和约束3类;
❖ 在输入或删除记录时,可以用来保持所有表之间定义的关 系,以确保键值在所有表中一致。
❖ 关系模型的参照完整性定义
▪ 在表定义中用FOREIGN KEY短语定义哪些列为外码 ▪ 用REFERENCES短语指明这些外码参照哪些表的主码
3)用户自定义完整性
❖ 用户定义的完整性就是针对某一具体应用的数据必须满 足的语义要求;可直接由RDBMS提供,而不必由应用程 序承担;系统将实现数据完整性的要求直接定义在表上 或列上。
检查方法:全表扫描、索引
ii)通过修改表时同时创建primary key约束或unique约束 ❖ 语法格式:
ALTER TABLE table_name ADD [CONSTRAINT constraint_name]
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字段定义惟一值约束;
避免因一个表的记录修改,造成另一个表的内容变为无效的值.一 般来说,参照完整性是通过外键和主键来维护的; ▪ 用户定义完整性:由用户自行定义的,不同于前面3种的完整性, 也可以说一种强制数据定义;
1)实体完整性
❖ 实体(Entity):是数据逻辑模型中的一个概念。现实世界是一 组实体的基本对象和这些对象的联系(Relation)构成的。在 数据库中,我们可以理解一条记录就是一个实体。
第六章 数据库完整性
授课教师:刘跃娟 2013-12-6
数据库完整性
❖ 数据是数据库的核心,数据的正确和完整与否将直接影响数据 库的使用。
❖ 数据的完整性和安全性是两个不同概念;
▪ 数据的安全性
➢ 保护数据库防止恶意的破坏和非法的存取 ➢ 防范对象:非法用户和非法操作
▪ 数据的完整性
➢ 防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正 确的数据
▪ 参照完整性保证被参照表和参照表之间数据的一致性; ▪ 可以防止数据丢失或者无意义的数据; ▪ 可以禁止在从表中插入被参照表中不存在的关键字的记录。
❖ 参照完整性的常见实现机制包括:
▪ 外键(Foreign Key)、检查(Check)、触发器(Trigger);存 储过程(Stored Procedure)
方法1:在列级定义主码
Use stu
CREATE TABLE student (Sno char(9) constraint sno_pk primary key, Sname char(8) constraint sname_uk unique, Ssex char(2) , Sage smallint , Sdept varchar(20))
➢ 防范对象:不合语义的、不正确的数据
本次课内容
一. 数据完整性概述 二. 在SQL Server 2005中实现数据完整性
▪ 创建和管理约束及约束对象
▪ 创建和管理默认值对象
▪ 创建和管理规则对象
三. 其他相关知识
▪ 触发器
一、数据库完整性概述
❖ 1、DBMS必须能够提供
▪ 提供定义完整性约束条件的机制
▪ 定义为列级约束条件,定义为表级约束条件
❖ 多个属性构成的码只有一种说明方法:
▪ 定义为表级约束条件
创建约束方式: I. 创建表时同时创建primary key约束或unique约束 II. 修改表时同时创建primary key约束或unique约束
i)创建表时同时创建primary key约束或unique约束 ❖ 语法结构:
❖ 实体完整性:在现实世界中,任何一个实体都有区别于其他实 体的特征,即在数据库中,所有的记录都应该有惟一的标识, 这就是实体完整性的含义(规则2.1:实体完整性规则)。
❖ 常见的实体完整性机制包括:
▪ 主键(Primary Key);惟一码(Unique);
2)参照完整性
❖ 参照完整性是指在两个表的主键和外键之间数据的完整性,其 含义包括: