第四章 数据库完整性的设计与实现_第1页
第四章 数据库完整性的设计与实现_第2页
第四章 数据库完整性的设计与实现_第3页
第四章 数据库完整性的设计与实现_第4页
第四章 数据库完整性的设计与实现_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章第四章 数据完整性的设计与实现数据完整性的设计与实现第四章第四章 数据完整性的设计与实现数据完整性的设计与实现掌握掌握数据完整性的分类数据完整性的分类掌握如何利用企业管理器和掌握如何利用企业管理器和T-SQL语言创建主建约束语言创建主建约束掌握设置唯一性约束的方法掌握设置唯一性约束的方法 掌握掌握设置默认约束的方法设置默认约束的方法掌握设置检查约束的方法掌握设置检查约束的方法 掌握设置外键约束的方法掌握设置外键约束的方法第四章第四章 数据完整性的设计与实现数据完整性的设计与实现本章教学内容:本章教学内容:4.1 概述概述4.2 实体完整性的设计与实现实体完整性的设计与实现4.3 域完整性

2、的设计与实现域完整性的设计与实现4.4 参照完整性的设计与实现参照完整性的设计与实现第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.1 概述概述l为了保证在数据表中输入可靠的和有效的数据为了保证在数据表中输入可靠的和有效的数据,可以对数据表中的数据设置完整性约束。可以对数据表中的数据设置完整性约束。l数据完整性指数据的正确性与相容性。数据完整性指数据的正确性与相容性。l数据完整性包括:数据完整性包括:u实体完整性实体完整性u域完整性域完整性u参照完整性参照完整性u用户自定义的完整性用户自定义的完整性第四章第四章 数据完整性的设计与实现数据完整性的设计与实现1.实体完整性实体完整性

3、l用来保证在同一个数据表中不会存在完全相同用来保证在同一个数据表中不会存在完全相同的两条记录。的两条记录。l一般通过主键约束、一般通过主键约束、IDENTITY属性、唯一性属性、唯一性约束实现。约束实现。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现2.域完整性域完整性l用来保证对数据表中的字段输入有效的数值。用来保证对数据表中的字段输入有效的数值。l可以通过定义字段的数据类型、设置字段非空、可以通过定义字段的数据类型、设置字段非空、检查约束、默认约束、规则实现。检查约束、默认约束、规则实现。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现3.参照完整性参照完整性l通过创

4、建数据表间数据的参照关系,来保证键通过创建数据表间数据的参照关系,来保证键值在两个表中保持一致。值在两个表中保持一致。l可以通过外键约束实现。可以通过外键约束实现。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.用户自定义的完整性用户自定义的完整性l用来定义用户需要的特殊的完整性要求。用来定义用户需要的特殊的完整性要求。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.2 实体完整性的设计与实现实体完整性的设计与实现4.2.1 主键约束主键约束4.2.2 IDENTITY属性属性4.2.3 唯一性约束唯一性约束第四章第四章 数据完整性的设计与实现数据完整性的设计与实现

5、4.2.1 主键约束主键约束l是最重要的一种约束。是最重要的一种约束。l能够唯一地确定表中的每一条记录。能够唯一地确定表中的每一条记录。l定义为主键的列不允许为空。定义为主键的列不允许为空。limage和和text类型的列不能被指定为主键。类型的列不能被指定为主键。l可以将数据表中的一列或多列的组合定义为主可以将数据表中的一列或多列的组合定义为主键。键。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l添加、修改、删除主键的方法:添加、修改、删除主键的方法:u企业管理器企业管理器u使用使用T-SQL语言语言第四章第四章 数据完整性的设计与实现数据完整性的设计与实现使用企业管理器使用企

6、业管理器l“设计表设计表” “设置主键设置主键”,可以设置或取消,可以设置或取消主键。主键。l如对多个列设置主键,按住如对多个列设置主键,按住ctrl选择列。选择列。l对已设置好的主键,可以通过对已设置好的主键,可以通过“属性属性” “索索引引/键键”来删除主键(此种方法不能创建主来删除主键(此种方法不能创建主键)。键)。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现使用使用T-SQL语言语言l创建主键约束创建主键约束(创建创建/修改表时)修改表时)l格式:格式: CONSTRAINT constraint_name PRIMARY KEY CLUSTERED|NONCLUSTER

7、ED (column_name,n)第四章第四章 数据完整性的设计与实现数据完整性的设计与实现例例4.1l在学生库中创建学生表在学生库中创建学生表(sno ,sname,ssex,sclass,sdept),并设置,并设置sno为主为主键。键。u方法方法1:在建表的同时设置主键。:在建表的同时设置主键。u方法方法2:在已建好表的中添加主键约束。:在已建好表的中添加主键约束。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l方法方法1:lcreate table 学生表学生表 ( sno char(10), sname char(10), ssex char(2), sclass ch

8、ar(2), sdept char(20), constraint PK_学生表学生表 primary key (sno) )第四章第四章 数据完整性的设计与实现数据完整性的设计与实现lcreate table 学生表学生表 ( sno char(10) primary key , sname char(10), ssex char(2), sclass char(2), sdept char(20), )第四章第四章 数据完整性的设计与实现数据完整性的设计与实现lcreate table 学生表学生表 ( sno char(10) , sname char(10), ssex char(2)

9、, sclass char(2), sdept char(20), primary key(sno), )第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l方法方法2:lalter table 学生表学生表 add constraint PK_学生表学生表 primary key (sno)第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l使用使用T-SQL语句删除语句删除PRIMARY KEY约束约束l格式:格式: DROP CONSTRAINT constraint_name第四章第四章 数据完整性的设计与实现数据完整性的设计与实现例例4.2l删除选课表的主键删除选课表

10、的主键(sno,cno)lalter table 选课表选课表 drop constraint PK_选课表选课表第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.2.2 IDENTITY属性属性l使用标识列保证数据表中不会出现完全一样的使用标识列保证数据表中不会出现完全一样的两条记录。两条记录。l在数据表中创建一个标识列,其中的数据由系在数据表中创建一个标识列,其中的数据由系统自动生成,并且不会重复。统自动生成,并且不会重复。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l使用方法:使用方法:u企业管理器企业管理器u使用使用T-SQL语言语言第四章第四章 数据完整性的

11、设计与实现数据完整性的设计与实现使用使用T-SQL语言语言l格式:格式: IDENTITY(种子,递增量)(种子,递增量)u种子是初始值,种子是初始值,u递增量是每次增加的数据递增量是每次增加的数据l说明:说明:种子和递增量必须同时使用,如果都不种子和递增量必须同时使用,如果都不使用,则默认为(使用,则默认为(1,1)。)。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现例例4.3l新建表新建表bianhao ,并将列,并将列bianhao设置成一个设置成一个标识列,列中从标识列,列中从2开始,每次增加开始,每次增加3。lcreate table bianhaol(lbianhao

12、int identity(2,3),lmingcheng char(4)l)第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.2.3 唯一性约束唯一性约束lUNIQUE约束用于确保非主键列的取值的唯一约束用于确保非主键列的取值的唯一性,保证实体完整性。性,保证实体完整性。l可以指定一个或多个列的组合值具有唯一性。可以指定一个或多个列的组合值具有唯一性。l每个每个UNIQUE约束要建立一个唯一索引。约束要建立一个唯一索引。l一个表可有多个一个表可有多个UNIQUE约束。约束。l可用于定义允许空值的列。可用于定义允许空值的列。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l

13、使用方法:使用方法:u企业管理器企业管理器u使用使用T-SQL语言语言第四章第四章 数据完整性的设计与实现数据完整性的设计与实现企业管理器企业管理器l“属性属性” “索引索引/键键”,新建,新建UNIQUE,列名,列名选择框中可以选择两列。选择框中可以选择两列。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现使用使用T-SQL语言语言l使用使用T-SQLT-SQL语句创建唯一约束语句创建唯一约束( (创建创建/ /修改表时修改表时) CONSTRAINT CONSTRAINT constraint_nameUNIQUE CLUSTERED|NONCLUSTEREDUNIQUE CLU

14、STERED|NONCLUSTERED(列名(列名) 第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l使用使用T-SQL语句删除语句删除UNIQUE约束约束 DROP CONSTRAINT constraint_name第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.3 域完整性的设计与实现域完整性的设计与实现l域完整性用来保证在数据表中输入有效的数据域完整性用来保证在数据表中输入有效的数据值。值。l可以通过定义字段的数据类型、设置字段非空、可以通过定义字段的数据类型、设置字段非空、检查约束、默认约束和规则来实现。检查约束、默认约束和规则来实现。第四章第四章 数据完整

15、性的设计与实现数据完整性的设计与实现4.3.1 默认约束默认约束4.3.2 检查约束检查约束4.3.3 规则规则第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.3.1 默认约束默认约束l若将表中某列定义了若将表中某列定义了DEFAULT约束后,用户约束后,用户在插入新的数据行时,如未指定该列值,系统在插入新的数据行时,如未指定该列值,系统自动将该列值赋为默认值(默认值可以是空自动将该列值赋为默认值(默认值可以是空值)。值)。l默认可以是常量、函数、空值。默认可以是常量、函数、空值。l每个字段只能定义一个默认约束。每个字段只能定义一个默认约束。l不能为带有不能为带有IDENTITY

16、属性或数据类型为属性或数据类型为timestamp的字段设置默认值。的字段设置默认值。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l使用方法:使用方法:u企业管理器企业管理器u使用使用T-SQL语言语言第四章第四章 数据完整性的设计与实现数据完整性的设计与实现企业管理器企业管理器l在输入默认值时,对于数据值型数据,可以直在输入默认值时,对于数据值型数据,可以直接输入。接输入。l对于字符型数据和日期型数据,在输入数据时对于字符型数据和日期型数据,在输入数据时两端要加上单引号。两端要加上单引号。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现使用使用T-SQL语言语言l创建

17、创建DEFAULTDEFAULT约束约束( (创建创建/ /修改表时修改表时)CONSTRAINT CONSTRAINT constraint_nameDEFAULT DEFAULT 默认约束值默认约束值 FOR FOR 列名列名 l删除删除DEFAULTDEFAULT约束约束DROP CONSTRAINT DROP CONSTRAINT constraint_name第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.3.2 检查约束检查约束l目的:是对输入的数据值进行检查,满足条件目的:是对输入的数据值进行检查,满足条件的数据可以保存在数据表中,对于不满足条件的数据可以保存在数据

18、表中,对于不满足条件的数据则拒绝接受。的数据则拒绝接受。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l使用方法:使用方法:u企业管理器企业管理器u使用使用T-SQL语言语言第四章第四章 数据完整性的设计与实现数据完整性的设计与实现使用使用T-SQL语言语言l创建创建CHECKCHECK约束(在创建或修改表时);约束(在创建或修改表时); CONSTRAINT CONSTRAINT constraint_name CHECKNOT FOR REPLICATION CHECKNOT FOR REPLICATION (逻辑表达式)(逻辑表达式)l删除删除CHECKCHECK约束约束 D

19、ROP CONSTRAINT DROP CONSTRAINT constraint_name第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4.3.3 规则规则l 创建规则创建规则l 绑定规则绑定规则l 删除绑定删除绑定l 删除规则对象删除规则对象第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l是对存储在数据表中的数据值的规定和限制。是对存储在数据表中的数据值的规定和限制。l功能与功能与CHECK约束的功能相似,但规则是作约束的功能相似,但规则是作为一个独立的数据库对象存储在数据库中的。为一个独立的数据库对象存储在数据库中的。l只创建一次,绑定到多个列上。只创建一次,绑定

20、到多个列上。l一个列,只能应用一个规则。一个列,只能应用一个规则。第四章第四章 数据完整性的设计与实现数据完整性的设计与实现l规则对象在功能上与规则对象在功能上与CHECK约束是一样的,约束是一样的,在使用上有所区别:在使用上有所区别:uCHECK约束是和表的定义联系在一起的,删除表约束是和表的定义联系在一起的,删除表的同时的同时CHECK约束也被删除约束也被删除u规则对象作为一种单独存储的数据库对象,独立于规则对象作为一种单独存储的数据库对象,独立于表之外(用表之外(用CREATE RULE定义),删除表时并不定义),删除表时并不删除规则对象(用删除规则对象(用DROP RULE删除)删除)

21、第四章第四章 数据完整性的设计与实现数据完整性的设计与实现1. 创建规则创建规则l使用企业管理器创建规则对象使用企业管理器创建规则对象l使用使用T-SQLT-SQL语句语句CREATE RULECREATE RULE创建规则对象创建规则对象 CREATE RULE CREATE RULE 规则名规则名 AS AS 规则条件规则条件例:创建规则:设置学生的年龄在例:创建规则:设置学生的年龄在1616岁和岁和2525岁之间。岁之间。use use 学生学生 GOGOCREATE RULE nlCREATE RULE nlAS AS 年龄年龄=16 and =16 and 年龄年龄=25=25第四章

22、第四章 数据完整性的设计与实现数据完整性的设计与实现2.绑定规则绑定规则l格式:格式: Execute sp_bindrule 规则名规则名 ,绑定的列名绑定的列名第四章第四章 数据完整性的设计与实现数据完整性的设计与实现3.取消绑定取消绑定l格式:格式: Execute sp_unbindrule 绑定的列名绑定的列名第四章第四章 数据完整性的设计与实现数据完整性的设计与实现4. 删除规则删除规则l使用企业管理器删除规则对象使用企业管理器删除规则对象l使用使用T-SQLT-SQL语句语句DROP RULEDROP RULE删除规则对象删除规则对象 DROP RULE DROP RULE 规则对象名规则对象名例:删除规则对象例:删除规则对象nlnl。use use 学生学生 gogo DROP DEFAULT nlDROP DEFAULT nl第四章第四章

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论