数据库完整性(1)

上传人:F****n 文档编号:88541446 上传时间:2019-04-30 格式:PPT 页数:60 大小:643KB
返回 下载 相关 举报
数据库完整性(1)_第1页
第1页 / 共60页
数据库完整性(1)_第2页
第2页 / 共60页
数据库完整性(1)_第3页
第3页 / 共60页
数据库完整性(1)_第4页
第4页 / 共60页
数据库完整性(1)_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《数据库完整性(1)》由会员分享,可在线阅读,更多相关《数据库完整性(1)(60页珍藏版)》请在金锄头文库上搜索。

1、第七章,数据库完整性,学习要点,数据库完整性概述 SQL2005完整性实现 触发器 概述 创建、修改、查看、删除 使用 说明 AFTER触发器 INSTEAD OF触发器,数据库完整性概述,数据完整性 (Data Integrity) 定义 指数据的准确性和一致性。 目的 防止数据库中存在不符合语义规定的数据和防止因错误 信息的输入输出造成无效操作或错误信息 分类 实体完整性:用于保证数据库中数据表的每一个特定实体的记 录都是唯一的。 域完整性:用于保证指定列的数据具有正确的数据类型、格 式和有效的数据范围。 参照完整性:确保同一键值在所有相关联表之间都一致。 用户定义完整性 :由用户自定义的

2、不属于其他任何完 整性分类的特定业务规则。,数据库完整性概述,数据完整性 (Data Integrity) 为维护数据库的完整性,DBMS必须: 提供定义完整性约束条件的机制 提供完整性检查的方法 违约处理,学习要点,完整性实现,SQL Server 2005完整性实现 DEFAULT约束 CHECK约束 PRIMARY KEY约束 UNIQUE约束 FOREIGN KEY约束 NOT NULL约束 标识列 默认值 规则,学习要点,约束,DEFAULT约束 定义 在用户未输入某些列的数据时,数据库系统为用户提供的默认值。 (默认值必须与所约束列的数据类型相一致) 是可以避免不允许为空值的数据错

3、误 可以加快用户的输入速度 创建 SSMS方式 T-SQL方式,约束列表,使用SSMS工具,DEFAULT约束,DEFAULT约束,CREATE TABEL BookInfo ( b_ID VARCHAR(16), b_Detail VARCHAR(100) DEFAULT 暂无描述 ),使用T-SQL定义(一),DEFAULT约束,CREATE TABEL 数据表名 ( 列名 数据类型 CONSTRAIN 约束名 DEFAULT 默认值 ,. ),列级约束,示 例,NEXT,CREATE TABEL BookInfo ( b_Detail VARCHAR(100), CONSTRAINT d

4、e_Detail DEFAULT 暂无描述 FOR b_Detail ),使用T-SQL定义(二),DEFAULT约束,NEXT,CREATE TABEL 数据表名 ( 列名1 数据类型, CONSTRAIN 约束名 DEFAULT 默认值 FOR (列名 ,n) ,. ),表级约束,示 例,使用T-SQL定义(三),DEFAULT约束,ALTER TABEL 数据表名 ( ADD CONSTRAIN 约束名 DEFAULT 默认值 FOR (列名 ,n) ,. ),修改表:添加约束,ALTER TABEL BookInfo ( ADD CONSTRAINT de_Detail DEFAULT

5、 暂无描述 FOR b_Detail ),示 例,返回,约束,CHECK约束 定义 限制用户输入数据的取值范围、格式等。 一个列可以定义多个CHECK 约束。 当往表中插入记录或修改相应列的值时,系统检查约束条件是否满足,若不满足则拒绝执行数据操作。 创建 SSMS方式 T-SQL方式,约束列表,使用SSMS工具,CHEECK约束,CHECK约束,CREATE TABEL 数据表名 ( 列名 数据类型 CONSTRAIN 约束名 CHECK (逻辑表达式) ,. ),CREATE TABEL BookInfo ( b_Quantity SMALLINT CHECK (b_Quantity=1

6、AND b_Quantity =100), ),使用T-SQL定义(一),CHECK 约束,列级约束,示 例,NEXT,使用T-SQL定义(二、三),CHECK 约束,返回,CREATE TABEL 数据表名 ( 列名1 数据类型, CONSTRAIN 约束名 CHECK (逻辑表达式) ,. ),表级约束,ALTER TABEL 数据表名 ( ADD CONSTRAIN 约束名 CHECK (逻辑表达式) ,. ),修改表:添加约束,约束,PRIMARY KEY约束 定义 若是单列作为主键,可以在列级定义或表级定义 若是列集合作为主键,必须在表级定义 一个表只能有一个PRIMARY KEY约

7、束,受约束的列或列集合的值不能为空和重复,必须能唯一标识表中的行。 定义了PRIMARY KEY 约束的列的列宽不能更改。 创建 SSMS方式 T-SQL方式,约束列表,使用SSMS工具,返回,PRIMARY约束,使用T-SQL定义(一),NEXT,PRIMARY约束,CREATE TABEL 数据表名 ( 列名 数据类型 CONSTRAIN 约束名 PRIMARY KEY ,. ),CREATE TABEL BookInfo ( b_ID VARCHAR(16) PRIMARY KEY, ),列级约束,示 例,默认的约束名为:PK_BookInfo,使用T-SQL定义(二),PRIMARY约

8、束,CREATE TABEL 数据表名 ( 列名1 数据类型, CONSTRAIN 约束名 PRIMARY KEY (列名1,n) ,. ),CREATE TABEL BorrowReturn ( s_ID CHAR(8) NOT NULL, r_ID CHAR(8) NOT NULL, PRIMARY KEY (s_ID,r_ID) ),表级约束,示 例,组合键必须在表级定义 默认的约束名为: PK_ BorrowReturn,NEXT,使用T-SQL定义(三),返回,PRIMARY约束,ALTER TABEL 数据表名 ( ADD CONSTRAIN 约束名 PRIMARY KEY( 列名

9、, ) ,. ),ALTER TABLE BorrowReturn ADD CONSTRAINT PK_ BorrowReturn PRIMARY KEY(s_ID,r_ID),示 例,修改表:添加约束,约束,UNIQUE约束 定义 也称唯一值约束,确保在非主键列中不输入重复值。 一个表可以定义多个UNIQUE 约束。 在允许空值的列上保证唯一性时,应使用UNIQUE约束。 当往表中插入记录或修改相应列的值时,系统检查是否有重复值,若有则拒绝执行数据操作。 创建 SSMS方式 T-SQL方式,约束列表,使用SSMS工具,返回,UNIQUE约束,使用T-SQL定义(一),NEXT,UNIQUE约

10、束,CREATE TABEL 数据表名 ( 列名 数据类型 CONSTRAIN 约束名 UNIQUE ,. ),CREATE TABEL ReaderType ( rt_ Name VARCHAR(10) UNIQUE , ),列级约束,示 例,使用T-SQL定义(二、三),UNIQUE约束,返回,CREATE TABEL 数据表名 ( 列名1 数据类型, CONSTRAIN 约束名 UNIQUE (列名1,n) ,. ),表级约束,ALTER TABEL 数据表名 ( ADD CONSTRAIN 约束名 UNIQUE (列名1,n) ,. ),修改表:添加约束,约束,FOREIGN KEY约

11、束 定义 也称为外键约束,用于强制实现参照完整性,建立两个表之间的关系。 可以规定表中的某列参照同一个表或另外一个表中已有的PRIMARY KEY 约束或UNIQUE 约束的列。 一个表可以有多个FOREIGN KEY 约束。 创建 SSMS方式 T-SQL方式,约束列表,使用SSMS工具 Step1,NEXT,FOREIGN KEY约束,使用SSMS工具 Step2,NEXT,FOREIGN KEY约束,使用SSMS工具 Step3,NEXT,FOREIGN KEY约束,使用SSMS工具 Step4,返回,FOREIGN KEY约束,使用T-SQL定义(一),示例,CREATE TABEL

12、数据表名 ( 列名 数据类型 CONSTRAIN 约束名 FOREIGN KEY REFERENCES 参照主键表 (参照列) ON DELETE CASCADE | ON UPDATE CASCADE ,. ),列级约束,FOREIGN KEY约束,NO ACITON:默认选项。将引发错误,撤销对父表的删除(更新)操作 CASCADE:当在主表删除(更新)一行,则自动将子表中的对应行删除(更新) SET NULL:删除(更新)父表的一行,子表相应行的外键值被置为NULL SET DEFAULT:删除(更新)父表的一行,子表相应行的外键值被置为 外键的默认值,使用T-SQL定义(一),FORE

13、IGN KEY约束,CREATE TABEL BookInfo ( b_ID VARCHAR(16) PRIMARY KEY, b_Name VARCHAR(50) NOT NULL, bt_ID CHAR(10) REFERENCES BookType(bt_ID), ),示 例,NEXT,使用T-SQL定义(二),示例,CREATE TABEL 数据表名 ( 列名1 数据类型, CONSTRAIN 约束名 FOREIGN KEY(列名) REFERENCES 参照主键表 (参照列) ON DELETE CASCADE | ON UPDATE CASCADE ,. ),表级约束,FOREIG

14、N KEY约束,使用T-SQL定义(二),NEXT,FOREIGN KEY约束,CREATE TABLE BorrowReturn ( br_ID CHAR(6) PRIMARY KEY , s_ID CHAR(8) REFERENCES NOT NULL, r_ID CHAR(8) REFERENCES NOT NULL, FOREIGN KEY (s_ID) REFERENCES BookStore(s_ID) , FOREIGN KEY (r_ID) REFERENCES ReaderInfo(r_ID) ),示 例,使用T-SQL定义(三),UNIQUE约束,返回,ALTER TABE

15、L 数据表名 ( ADD CONSTRAIN 约束名 FOREIGN KEY( 列名 ) REFERENCES 参照主键表 (参照列) ON DELETE CASCADE | ON UPDATE CASCADE ,. ),修改表:添加约束,ALTER TABEL BookInfo ( ADD FOREIGN KEY (bt_ID) REFERENCES BookType(bt_ID) ON DELETE CASCADE ON UPDATE CASCADE , ),示 例,约束,NOT NULL约束 实质 表中列可以定义为允许或不允许空值。 默认情况下,创建表列允许空值。一个列中出现NULL 值,意味着用户还没有为该列输入值。 若设置为NOT NULL,用户没有输入该列值,则引发错误。 示例 SSMS方式 T-SQL方式,约束列表,使用SSMS工具,返回,NOT NULL约束,使用T-SQL定义,NOT NULL 约束,CREATE TABEL 数据表名 ( 列名 数据类型 CONSTRAIN 约束名 NULL | NOT NULL , ),表级约束,CREATE TABEL BookInfo ( b_ID varchar(16) PRIMARY KEY, b_Name varchar(50) UNIQUE NOT NULL, bt_ID char(10) REFERENC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号