数据完整性和一致性控制ppt课件

上传人:aa****6 文档编号:54861650 上传时间:2018-09-20 格式:PPT 页数:65 大小:832.50KB
返回 下载 相关 举报
数据完整性和一致性控制ppt课件_第1页
第1页 / 共65页
数据完整性和一致性控制ppt课件_第2页
第2页 / 共65页
数据完整性和一致性控制ppt课件_第3页
第3页 / 共65页
数据完整性和一致性控制ppt课件_第4页
第4页 / 共65页
数据完整性和一致性控制ppt课件_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《数据完整性和一致性控制ppt课件》由会员分享,可在线阅读,更多相关《数据完整性和一致性控制ppt课件(65页珍藏版)》请在金锄头文库上搜索。

1、第 8 章,第8章 SQL Server 2005数据库控制与维护,数据库应用教程,数据库的完整性控制,数据库的安全性管理,数据库备份与还原,第8章 SQL Server 2005数据库控制与维护,8.1.1 数据完整性概述,8.1.2 使用约束实施数据完整性控制,8.1.3 使用规则实施数据完整性控制,8.1 数据库的完整性控制,8.1.4 使用默认值实施数据完整性控制,8.1.5 使用触发器实施数据完整性控制,8.1.1 数据完整性概述,1完整性的概念,数据完整性是指数据的正确性、有效性、一致性和相容性。由于数据库是一个动态的集合,数据不断地被插入和被修改,因此由于主观或客观的原因,可能破

2、坏数据库的数据完整性 。,2破坏数据库的数据完整性的情况,(1)无效的数据被添加到数据库中。如:某在教师管理系统中,输入的教师号不存在 。,(2)对数据库的修改不一致。如:在两个不同的表中,同一教师的系号不同。,(3)将存在的数据修改为无效的数据。如:将某教师所在的系号修改为并不存在的系 。,8.1.1 数据完整性概述,3完整性机制,为了保证存放数据的完整性,DBMS应能对数据库进行数据完整性控制。在SQL Server2000中,提供了约束、默认值、规则、触发器等维护机制对数据完整性进行控制。,4完整性分类,在SQL Server中,数据完整性分成四类:实体完整性、域完整性、参照完整性和用户

3、自定义完整性。,8.1.1 数据完整性概述,域完整性:也可称为列完整性。 域完整性要求:向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围。例如,在CollegeMIS数据库的SelectCourse表中,向Score(成绩)列输入数据时,不能出现字符,也不能输入小于0或大于100的数值。 域完整性的控制方法:主要有CHECK约束、外键约束、默认约束、默认值、非空定义、规则以及在创建表时设置的数据类型 。,实体完整性的控制方法:主要有主键约束、惟一索引、惟一约束和指定IDENTITY属性。,5完整性控制方法,参照完整性的控制方法:主要有外键约束,有时利用触发器也可实现参照完整

4、性控制。,8.1.2 使用约束实施数据完整性控制,在SQL Server中,可通过约束来实施数据库的数据完整性控制,常用的约束有NOT NULL(非空)约束、CHECK(检查)约束、UNIQUE(惟一)约束、PRIMARY KEY(主键)约束、FOREIGN KEY(外键)约束和DEFAULT(默认)约束 。,1约束的建立,【格式】ALTER TABLE table_nameADD CONSTRAINT constraint_name PRIMARY KEY CLUSTERED | NONCLUSTERED ( column ,.n ) ,(1)主键约束的创建,【功能】为table_name作

5、为表名指定的表增加一个由constraint_name指定名称的主键约束。,【例8-1】把CollegeMIS数据库中SelectCourse表中的主键pk_xuanke删除,然后重建。,USE CollegeMIS GO ALTER TABLE SelectCourse DROP CONSTRAINT pk_xuanke GO ALTER TABLE SelectCourseADD CONSTRAINT pk_xuankePRIMARY KEY(StuNo,TeaNo,CourseNo) GO,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-2】为CollegeMIS数据库中的

6、Department表的DepartName字段创建一个惟一约束,约束名为IX_DepartName。,(2)惟一约束的创建使用企业管理器创建惟一约束,在一张数据表中,有时除主键需要具有唯一性外,还有其他列也需要具有唯一性。例如,在“系部”表中,主键为“系部代码”,但是另外一个字段“系部名称”虽不是主键,也需保证它的唯一性,这时就需要创建表中的唯一约束。,使用对象资源管理器创建唯一约束 下面以“系部”表为例,为“系部名称”字段创建唯一约束。操作步骤如下: (1)在“对象资源管理器”窗格中,右击需要设置唯一约束的表(本例为“系部”表),在弹出的快捷菜单中选择“修改”命令,打开“表设计器”窗口。,

7、(2)在“表设计器”窗口中,右击需要设置为唯一约束的字段(本例为“系部名称”字段),在弹出的快捷菜单中选择“索引/键”命令,如图6-7所示,也可以直接单击工具栏中的“管理索引和键”按钮,打开“索引/键”对话框,如图6-8所示。,图6-7 选择“索引/键”命令,图6-8 “索引/键”对话框,(3)在打开的“索引/键”对话框中,单击“添加”按钮,结果如图6-9所示。,图6-9 单击“添加”按钮创建唯一约束,(4)设置好相关选项后,单击“关闭”按钮,完成唯一约束的创建。这时,不只是该表的主键必须为唯一,并且被设置为唯一约束的字段同样也必须为唯一。,8.1.2 使用约束实施数据完整性控制,1约束的建立

8、,【格式】ALTER TABLE table_nameADD CONSTRAINT constraint_name UNIQUE CLUSTERED | NONCLUSTERED ( column ,.n ) ,(2)惟一约束的创建使用Transact-SQL语句,【功能】为table_name作为表名指定的表增加一个由constraint_name指定名称的惟一约束。 说明:惟一约束默认的索引类型为NONCLUSTERED。,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-3】通过Transact-SQL语句为CollegeMIS数据库中的Department表的Telepho

9、ne字段创建一个惟一约束,约束名为IX_Telephone。,(2)惟一约束的创建使用Transact-SQL语句,USE CollegeMIS GO ALTER TABLE Department ADD CONSTRAINT IX_Telphone UNIQUE (Telephone) GO,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-4】为CollegeMIS数据库中的“课程表”的“学分” 字段创建一个检查约束,约束名为CK_Grade。检查条件只允许为17分,不允许小于1分的学分和大于7分的学分出现。 。,(3)检查约束的创建使用对象资源管理器,检查约束对输入的数据的值

10、做检查,可以限定数据输入,从而维护数据的域完整性。,操作步骤如下: (1)在“对象资源管理器”窗格中,右击需要设置唯一约束的表(本例为“课程表”),在弹出的快捷菜单中选择“修改”命令,打开“表设计器”窗口。 (2)在“表设计器”窗口中右击需要创建检查约束的字段(本例为“学分”字段),在弹出的快捷菜单中选择“CHECK约束”命令,如图6-11所示,打开“CHECK约束”对话框。,图6-11 选择“CHECK约束”命令,(3)在“CHECK约束”对话框中,单击“添加”按钮,然后在“(名称)”文本框中输入检查约束名称,在约束“表达式”文本框中输入约束条件,这里输入“(学分=1 AND 学分=7)”,

11、如图6-12所示。,图6-12 设置“CHECK约束”条件,(4)单击“关闭”按钮关闭对话框,完成检查约束的创建。 注意:如果表中原来就有数据,并且数据类型或范围与所创建的约束相冲突,那么约束将不能成功创建。,8.1.2 使用约束实施数据完整性控制,1约束的建立,【格式】ALTER TABLE table_nameADD CONSTRAINT constraint_name CHECK ( logical_expression),(3)检查约束的创建使用Transact-SQL语句,【功能】为table_name作为表名指定的表增加一个由constraint_name指定名称的检查约束。 说明

12、:“logical_expression”是检查约束的检查条件,通常是一个关系表达式或逻辑表达式。,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-5】使用Transact-SQL语句,为CollegeMIS数据库中的Student表的Birthday字段创建一个检查约束,约束名为CK_Birthday。检查条件为Birthday字段的值必须小于当前日期。,(3)检查约束的创建使用Transact-SQL语句,USE CollegeMIS GO ALTER TABLE Student ADD CONSTRAINT CK_Birthday CHECK (Birthday=GetDa

13、te() GO,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-6】为CollegeMIS数据库中的Student表的Sex字段创建一个默认约束,默认值为“男”。,(4)默认约束的创建 使用对象资源管理器,操作步骤如下: (1)在“对象资源管理器”窗格中,右击需要创建默认约束的表(这里为“学生”表),在弹出的快捷菜单中选择“修改”命令,打开“表设计器”窗口。 (2)选择需要创建默认约束的字段(这里为“性别”字段),然后在下方的“列属性”选项卡中的“默认值或绑定”文本框中输入默认值,本例为选择“性别”字段,在默认值中输入“男”,如图6-13所示。,在用户输入某些数据时,希望一些数据

14、在没有特例的情况下被自动输入,例如,学生的注册日期应该是数据录入的当天日期;学生的修学年限是固定的值;学生性别默认是“男”等情况,这个时候需要对数据表创建默认约束。 下面分别用例子说明如何在对象资源管理器中和利用SQL语句创建默认约束,图 6 | 13 输入默认值,注意:单引号不需要输入,在表保存后,在单引号外还会自动生成一对小括号。 (3)关闭“表设计器”窗口。,8.1.2 使用约束实施数据完整性控制,1约束的建立,【格式】ALTER TABLE table_nameADD CONSTRAINT constraint_name DEFAULT constant_expression FOR

15、column_name,(4)默认约束的创建 使用Transact-SQL语句,【功能】为table_name作为表名指定的表增加一个由constraint_name指定名称的默认约束。 说明:“column_name”是要设置默认约束的列名,“constant_expression”是设置的默认值。,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-7】为CollegeMIS数据库中的Student表的Grade字段创建一个默认约束,约束名为DF_Grade,默认值为1。,(4)默认约束的创建使用Transact-SQL语句,USE CollegeMIS GO ALTER TAB

16、LE Student ADD CONSTRAINT DF_Grade DEFAULT 1 FOR Grade GO,8.1.2 使用约束实施数据完整性控制,1约束的建立,【例8-8】为CollegeMIS数据库中的“教师”表的创建一个外键约束,约束名为FK_ Teacher _Department。约束对应的主键表为Department (引用的主键字段为系部代码),本表( “教师”表)的外键字段为系部代码。,(5)外键约束的创建 使用对象资源管理器,操作步骤如下:(1)在“对象资源管理器”窗格中,右击需要创建外键约束的表(这里为“教师”表),在弹出的快捷菜单中选择“修改”命令,打开“表设计器”窗口。(2)选择需要创建外键约束的字段(这里为“系部代码”字段),单击工具栏中的“关系”按钮,或右击该字段,在弹出的快捷菜单中选择“关系”命令,打开“外键关系”对话框,如图6-14所示。,外键是用来维护表与表之间对应唯一关系的一种方法。可以利用对象资源管理器或SQL语句来创建外键约束。,

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

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

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