第12章数据库完整性控制精选文档.ppt
《第12章数据库完整性控制精选文档.ppt》由会员分享,可在线阅读,更多相关《第12章数据库完整性控制精选文档.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第12章数据库完整性控制章数据库完整性控制本讲稿第一页,共三十七页本章内容本章内容12.1 12.1 约束约束12.2 12.2 默认值默认值12.3 12.3 规则规则12.4 12.4 事务处理事务处理12.5 12.5 数据的锁定数据的锁定本讲稿第二页,共三十七页数据完整性数据完整性l数据完整性问题的提出数据完整性问题的提出数据库中的数据是从外界输入的,由于种种原因,数据库中的数据是从外界输入的,由于种种原因,会发生输入数据无效或错误。为了保证输入的会发生输入数据无效或错误。为了保证输入的数据正确、符合规定,提出数据完整性问题。数据正确、符合规定,提出数据完整性问题。l数据完整性问题的
2、解决数据完整性问题的解决SQL Server2000中可以通过各种中可以通过各种约束约束、默认值默认值、规则规则等数据库对象来保证数据的完整性。等数据库对象来保证数据的完整性。l数据完整性包括数据完整性包括实体完整性实体完整性、域完整性域完整性、参照完整性参照完整性和和用户自定义完整性用户自定义完整性。本讲稿第三页,共三十七页12.1 12.1 约束约束l约束约束(Constraint)是是SQL Server提供的自动保持提供的自动保持数据库完整性的一种机制,它定义了可输入表数据库完整性的一种机制,它定义了可输入表或表的单个列中的数据的限制条件。或表的单个列中的数据的限制条件。使用约束使用约
3、束使用约束使用约束优先于使用触发器、规则和默认值优先于使用触发器、规则和默认值优先于使用触发器、规则和默认值优先于使用触发器、规则和默认值。l约束独立于表结构约束独立于表结构,可以在不改变表结构的,可以在不改变表结构的基础上,添加或删除约束。当表被删除时,基础上,添加或删除约束。当表被删除时,表所带的所有约束定义也随之被删除。表所带的所有约束定义也随之被删除。本讲稿第四页,共三十七页12.1 12.1 约束约束(1)主键约束主键约束主键约束主键约束(Primary Key,PK)l表的一列或几列的组合的值在表中唯一地指定一行记录,这样表的一列或几列的组合的值在表中唯一地指定一行记录,这样的一列
4、或多列称为表的主键,通过它可的一列或多列称为表的主键,通过它可强制表的实体完整性强制表的实体完整性。l l主键不能为空,且不同两行的键值不能相同。主键不能为空,且不同两行的键值不能相同。主键不能为空,且不同两行的键值不能相同。主键不能为空,且不同两行的键值不能相同。l表本身并不要求一定要有主键,但最好给表定义主键。表本身并不要求一定要有主键,但最好给表定义主键。l在规范化的表中,每行中的所有数据值都完全依赖于主键。在规范化的表中,每行中的所有数据值都完全依赖于主键。例如:例如:例如:例如:学生表中的学号。学生表中的学号。本讲稿第五页,共三十七页12.1 12.1 约束约束l创建主键约束的方法创
5、建主键约束的方法l在企业管理器中,打开表设计器。在企业管理器中,打开表设计器。l选择创建主键的列。选择创建主键的列。l单击工具栏设置主键按钮单击工具栏设置主键按钮 。本讲稿第六页,共三十七页12.1 12.1 约束约束(2)外键约束外键约束(Foreign Key,FK)l外键约束定义了表与表之间的关系。外键约束定义了表与表之间的关系。l通过将一个表中一列或多列添加到另一个表中,通过将一个表中一列或多列添加到另一个表中,创建两个表之间的连接,这个列就成为第二个创建两个表之间的连接,这个列就成为第二个表的外键,即外键是用于建立和加强两个表数表的外键,即外键是用于建立和加强两个表数据之间的连接的一
6、列或多列,通过它可以据之间的连接的一列或多列,通过它可以强制强制参照完整性参照完整性。l外键约束的主要目的是控制存储在外键表中的外键约束的主要目的是控制存储在外键表中的数据。数据。本讲稿第七页,共三十七页12.1 12.1 约束约束l创建外键约束的方法创建外键约束的方法l打开企业管理器,展开数据库,右键单击关系图,选择打开企业管理器,展开数据库,右键单击关系图,选择【新建数据库关系图新建数据库关系图】菜单项。菜单项。l根据向导提示,选择欲创建外键约束的表。根据向导提示,选择欲创建外键约束的表。l出现如下界面,拖动关联列。出现如下界面,拖动关联列。本讲稿第八页,共三十七页12.1 12.1 约束
7、约束l级联操作级联操作l根据主键表中数据的修改而对外键表中数据相应地做相根据主键表中数据的修改而对外键表中数据相应地做相同的修改。同的修改。lSQL Server提供了两种级联操作:级联删除和级联修改提供了两种级联操作:级联删除和级联修改l l级联删除级联删除级联删除级联删除:当主键表中某行被删除时,外键表中所有相关行将被:当主键表中某行被删除时,外键表中所有相关行将被删除。删除。例如:例如:例如:例如:课程表中的课程表中的c01课程被删除,选课表选了课程被删除,选课表选了c01课程的记录都课程的记录都被删除。被删除。l l级联修改级联修改级联修改级联修改:当主键表中某行的键值被修改时,外键表
8、中所有相:当主键表中某行的键值被修改时,外键表中所有相关行的该外键值也将被自动修改为新值。关行的该外键值也将被自动修改为新值。例如:例如:例如:例如:将课程表中将课程表中c02改为改为c30,选课表中,选课表中c02的值也被自动更的值也被自动更改为改为c30。本讲稿第九页,共三十七页12.1 12.1 约束约束(3)唯一性约束唯一性约束(Unique)l唯一性约束指定一个或多个列的组合的值具有唯一性约束指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的值,为表中唯一性,以防止在列中输入重复的值,为表中的一列或者多列提供实体完整性。的一列或者多列提供实体完整性。例如:例如:例如:例如:
9、身份证号码通常被设定唯一性约束。身份证号码通常被设定唯一性约束。l唯一性约束指定的列可以有唯一性约束指定的列可以有NULL属性。主键属性。主键也强制执行唯一性,但主键不允许空值,故主也强制执行唯一性,但主键不允许空值,故主键约束强度大于唯一约束。因此主键列不能再键约束强度大于唯一约束。因此主键列不能再设定唯一性约束。设定唯一性约束。l一个表可以定义多个唯一性约束。一个表可以定义多个唯一性约束。本讲稿第十页,共三十七页12.1 12.1 约束约束l创建唯一性约束创建唯一性约束l在企业管理器中,打开表设计器。在企业管理器中,打开表设计器。l单击工具栏管理索引单击工具栏管理索引/键按钮键按钮 。本讲
10、稿第十一页,共三十七页12.1 12.1 约束约束(4)检查约束检查约束(Check)l检查约束对输入列或整个表中的值设置检查条件,检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。以限制输入值,保证数据库的数据完整性。l当对具有检查约束列进行插入或修改时,当对具有检查约束列进行插入或修改时,SQL Server将将用该检查约束的逻辑表达式对新值进行检查,只有满足用该检查约束的逻辑表达式对新值进行检查,只有满足条件条件(逻辑表达式返回逻辑表达式返回TRUE)的值才能填入该列,否则报的值才能填入该列,否则报错。错。l可以为每列指定多个可以为每列指定多个CHECK约
11、束。约束。例如:例如:例如:例如:为学生表的性别列定义检查约束:为学生表的性别列定义检查约束:性别性别 in(男男,女女)或者或者 性别性别=男男 or 性别性别=女女本讲稿第十二页,共三十七页12.1 12.1 约束约束l创建检查约束创建检查约束l在企业管理器中,打开表设计器。在企业管理器中,打开表设计器。l单击工具栏管理索引单击工具栏管理索引/键按钮键按钮 ,选择,选择【CHECK约束约束】。输入约束输入约束表达式表达式本讲稿第十三页,共三十七页12.2 12.2 默认值默认值l默认值默认值(Default)l通过定义列的默认值或使用数据库的默认值对象通过定义列的默认值或使用数据库的默认值
12、对象绑定表的列,以确保在没有为某列指定数据时,绑定表的列,以确保在没有为某列指定数据时,来指定列的值。来指定列的值。l默认值可以是常量,也可以是表达式,还可以为默认值可以是常量,也可以是表达式,还可以为NULL值。值。例如:例如:将学生表的性别列设置默认值将学生表的性别列设置默认值女女。本讲稿第十四页,共三十七页12.2 12.2 默认值默认值l创建默认约束创建默认约束l在企业管理器中,打开表设计器。在企业管理器中,打开表设计器。l选择设定默认值的列,输入默认值。选择设定默认值的列,输入默认值。本讲稿第十五页,共三十七页12.2 12.2 默认值默认值l使用默认对象使用默认对象l默认对象是默认
13、对象是单独存储单独存储的,可以绑定到某列。删的,可以绑定到某列。删除表时,默认值会自动删除,但默认对象不会除表时,默认值会自动删除,但默认对象不会被删除。被删除。l默认对象的操作默认对象的操作(1)创建默认对象创建默认对象注意定界注意定界符符本讲稿第十六页,共三十七页12.2 12.2 默认值默认值(2)绑定默认对象绑定默认对象将左侧列添加将左侧列添加至右侧,即绑至右侧,即绑定定将右侧绑定列删将右侧绑定列删除至左侧,解除除至左侧,解除绑定绑定修改默认修改默认对象对象本讲稿第十七页,共三十七页12.2 12.2 默认值默认值(3)重命名默认对象重命名默认对象(4)删除默认对象删除默认对象本讲稿第
14、十八页,共三十七页12.3 12.3 规则规则l l规则规则规则规则是数据库中对存储在表的列或用户定义数据类型中的是数据库中对存储在表的列或用户定义数据类型中的值的规定和限制。值的规定和限制。l规则是规则是单独存储单独存储单独存储单独存储的独立的数据库对象。的独立的数据库对象。l规则与其作用的表或用户定义数据类型是相互独立的。规则与其作用的表或用户定义数据类型是相互独立的。l规则和约束可以同时使用,表的列可以有一个规则及多规则和约束可以同时使用,表的列可以有一个规则及多个约束。个约束。l规则与检查约束在功能上相似,但在使用上有所区别。规则与检查约束在功能上相似,但在使用上有所区别。l规则的操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 数据库 完整性 控制 精选 文档
限制150内