SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践

上传人:清晨86****784 文档编号:207972817 上传时间:2021-11-06 格式:PPT 页数:39 大小:3.11MB
返回 下载 相关 举报
SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践_第1页
第1页 / 共39页
SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践_第2页
第2页 / 共39页
SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践_第3页
第3页 / 共39页
SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践_第4页
第4页 / 共39页
SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践》由会员分享,可在线阅读,更多相关《SQL Server 2008应用实践教程[郑阿奇]PPT课件 第6章数据库表数据完整性应用实践(39页珍藏版)》请在金锄头文库上搜索。

1、第6章 数据库表数据完整性应用实践,界面方式图书管理数据库表数据完整性,命令方式图书管理数据库表数据完整性,界面方式图书管理数据库表数据完整性,命令方式图书管理数据库表数据完整性,6.1 界面方式图书管理数据库表数据完整性,根据数据完整性的分类,图书管理数据库表数据完整性可以分为:列数据完整性(域完整性);数据行的数据完整性(实体完整性);表的数据完整性(参照完整性)。 6.1.1 图书管理数据库列的完整性 实现列的数据完整性时需要对表中的列进行修改,列的数据类型、为空性、默认值在创建表时已经进行了正确的定义。本节主要解决“列的内容是否符合要求(CHECK约束)”的数据完整性:在TReader

2、表中“借书量”一列的值必须小于等于5;TBook表中库存量必须小于复本量。实现以上限制的操作步骤如下: (1)启动“SQL Server Management Studio”,在“对象资源管理器”窗口中展开数据库 “MBOOK”中的“表”选项,用鼠标右键单击“dbo.TReader”表,在弹出的快捷菜单中选择“设计”菜单项。在打开的“表设计器”窗口中选择“借书量”列,用鼠标右键单击,在弹出的快捷菜单中选择“CHECK约束”菜单项。,6.1.1 图书管理数据库列的完整性,(2)在打开的 “CHECK约束”窗口(如图6.1所示)中,单击“添加”按钮,添加一个“CHECK约束”。在常规属性区域中的“

3、表达式”一栏后面单击“ ”按钮(或直接在文本框中输入内容),打开“CHECK约束表达式”窗口,并编辑相应的CHECK约束表达式为“借书量=0 AND 借书量=5”。,图6.1 “CHECK约束”窗口,6.1.1 图书管理数据库列的完整性,(3)单击“确定”按钮,完成CHECK约束表达式的编辑,返回到“CHECK约束”窗口中。在“CHECK约束”窗口中选择“关闭”按钮,并保存修改,完成“CHECK约束”的创建。 功能测试:使用界面方式插入一条记录: (091101, 091101,王海, 1, 1991-05-10, 软件工程, 6, NULL, NULL, NULL),记录中借书量为6,违反了

4、CHECK约束的规定,将弹出如图6.2所示的错误提示。,图6.2 违反CHECK约束时错误提示,6.1.2 图书管理数据库数据行的完整性,(1)进入TReader表的“表设计器”窗口,选择“密码”属性列并用鼠标右键单击,在弹出的快捷菜单中选择“索引/键”菜单项,打开“索引/键”窗口。 (2)在窗口中单击“添加”按钮,并在右边的“标识”属性区域的“名称”一栏中输入唯一键的名称为UN_password(也可以用系统默认的名称)。在常规属性区域的“类型”一栏中选择类型为“唯一键”,如图6.3所示。,图6.3 创建唯一键,6.1.2 图书管理数据库数据行的完整性,(3)在常规属性区域中的“列”一栏后面

5、单击“ ”形状的按钮,在弹出的对话框中选择要创建约束的列为“密码”列,排序顺序为“升序”。单击“确定”按钮返回到“索引/键”窗口,单击“关闭”按钮,最后单击主界面工具栏中的“保存”按钮保存。 功能测试:使用界面方式插入一条记录: (091101, 081101,王海, 1, 1991-05-10, 软件工程, 4, NULL, NULL, NULL),由于密码“081101”在TReader表中已经存在,违反了UNIQUE约束的规定,将弹出如图6.4所示的错误提示。,6.1.3 图书管理数据库表的完整性,本节即需要通过定义TLend表和TReader、TBook表间的参照关系来实现图书管理数据

6、库中表的数据完整性。Treader表和TBook表是主表,TLend表是从表。 操作步骤: (1)在主表TReader和Tbook中创建主键。由于之前两个表中的主键已经定义,这里不用再创建。 (2)启动“SQL Server Management Studio”,在“对象资源管理器”窗口中展开数据库MBOOK,用鼠标右键单击“数据库关系图”图标,在弹出的快捷菜单中选择“新建数据库关系图”菜单项,打开“添加表”对话框。在出现的“添加表”对话框中选择要添加的表TReader、TBook和TLend,单击“添加”按钮完成表的添加,之后单击“关闭”按钮退出对话框。 (3)在“数据库关系图设计”窗口中将

7、鼠标指向主表TReader表的主键,按住鼠标并拖动到从表TLend表,即将TReader表中的“借书证号”字段拖动到从表TLend中的“借书证号”字段。,6.1.3 图书管理数据库表的完整性,(4)弹出如图6.5所示的“表和列”窗口,窗口中的选项按照默认设置,单击“表和列”窗口中的“确定”按钮。,图6.5 设置表的完整性,6.1.3 图书管理数据库表的完整性,再单击“外键关系”窗口中的“确认”按钮,进入如图6.6所示的界面。,图6.6 Treader表和TLend表的参照关系图,6.1.3 图书管理数据库表的完整性,(5)之后在“数据库关系图设计”窗口中将主表TBook中的主键列“ISBN”拖

8、动到从表TLend中的“ISBN”列,弹出“表和列”窗口,进行与第4步相同的操作即可。最后界面如图6.7所示。,图6.7 Treader表、TBook表和TLend表间的参照关系图,6.1.3 图书管理数据库表的完整性,功能测试: (1)实现参照完整性约束后,使用DELETE语句删除TReader表中的一行数据: USE MBOOK GO INSERT INTO TReader VALUES(081301, 081301, 李霞, 0, 1991-03-16, 计算机, 3, NULL, NULL, NULL) /*增加新读者“”*/ INSERT INTO TLend(借书证号, ISBN,

9、 图书ID, 借书时间) VALUES(081301, 978-7-121-09006-6, 2009026674,GETDATE() /*添加的借书记录*/ DELETE FROM TReader WHERE 借书证号= 081301/*删除读者“”*/,6.1.3 图书管理数据库表的完整性,运行结果如图6.8所示,图中显示,上述“DELETE”命令没有执行成功。原因是:借书证号为“081301”的读者在Lend表中已经存在借书记录。,图6.8 验证能否删除有借书记录的读者信息,6.1.3 图书管理数据库表的完整性,(2)删除TReader表中一行数据,该行数据在TLend表中无相关记录,查

10、看删除情况。 DELETE FROM TLend WHERE 借书证号= 081301/*先删除“081301”所有的借书记录*/ DELETE FROM TReader WHERE 借书证号= 081301/*删除读者“081301”*/ 运行结果如图6.9所示。,图6.9 验证能否删除无借书记录的读者信息,6.1.3 图书管理数据库表的完整性,如果要删除前面建立的TReader表与TLend表之间的参照关系,可按以下步骤进行:在“MBOOK”数据库的“数据库关系图”目录下选择要修改的关系图Diagram_0,用鼠标右键单击,在弹出的快捷菜单中选择“修改”菜单项,打开“数据库关系图设计”窗口

11、。在该窗口中,选择已经建立的“关系”,用鼠标右键单击,选择“从数据库中删除关系”,如图6.10所示。在随后弹出的对话框中,单击“是”按钮,删除表之间的关系。,图6.10 删除关系,6.2 命令方式图书管理数据库表数据完整性,使用命令方式实现图书管理数据库表数据完整性要比界面方式更为灵活,实现的功能也可以更为复杂。数据库使用者一般都可以在创建或修改表时实现数据完整性。 6.2.1 图书管理数据库列的完整性 使用命令方式实现以下限制:在TReader表中“借书量”一列的值必须小于等于5,TBook中库存量必须小于或等于复本量。 启动“SQL Server Management Studio”,新建

12、一个查询窗口,在窗口中输入如下语句: USE MBOOK GO ALTER TABLE TReader ADD CHECK(借书量=0 AND 借书量=5) GO ALTER TABLE TBook ADD CONSTRAINT CK_TBook CHECK(库存量=复本量,6.2.1 图书管理数据库列的完整性,执行以上语句,结果如图6.11所示。,图6.11 实现图书管理数据库列的完整性约束,6.2.1 图书管理数据库列的完整性,说明:数据库使用者可以在创建或修改表时添加CHECK约束。以上语句中使用了ALTER TABLE语句修改图书管理数据库中已经创建的表来添加CHECK约束。第一条AL

13、TER TABLE语句中使用ADD子句向TReader表中添加了CHECK约束,使用CHECK关键字来表示,括号中包含用于约束的表达式,这里规定了借书量的大小。第二条ALTER TABLE语句中使用CONSTRAINT关键字为添加的CHECK定义一个约束名,如果省略系统将自动定义一个名称。,6.2.2 图书管理数据库数据行的完整性,使用命令方式实现读者的密码在TReader表中必须是唯一的,实现的语句如下: USE MBOOK GO ALTER TABLE TReader ADD UNIQUE NONCLUSTERED (密码) 说明:数据库使用者可以在创建或修改表时实现实体完整性约束,上例语

14、句中使用了ALTER TABLE语句向图书管理数据库的读者信息表中添加了一个UNIQUE约束,该约束使用UNIQUE关键字来表示,SQL Server中添加UNIQUE约束时系统将自动创建一个唯一性索引。NONCLUSTERED关键字索引是非聚集的,该关键字是默认值,可以省略。在后面的括号中指定“密码”列为添加约束的列。,6.2.3 图书管理数据库表的完整性,使用命令方式实现表TReader和Tlend、表TBook和TLend之间的参照完整性。实现的语句如下: USE MBOOK GO ALTER TABLE TLend ADD FOREIGN KEY(借书证号) REFERENCES TR

15、eader(借书证号) GO ALTER TABLE TLend ADD FOREIGN KEY(ISBN) REFERENCES TBook(ISBN),说明:图书管理数据库的表的完整性(参照完整性)通过创建或修改表时添加外键来实现。在以上语句中,第一条ALTER TABLE语句使用ADD子句向从表TLend中添加一个外键(FOREIGN KEY),“借书证号”列作为组成外键的字段。使用REFERENCES关键字指定外键与TReader表中的主键“借书证号”列对应。第二条ALTER TABLE语句是向TLend表中添加“ISBN”字段作为外键,与TBook表中的“ISBN”字段对应。,L6.

16、1 界面方式图书管理数据库表数据完整性,L1数据完整性的分类 数据完整性是指数据库中的数据在逻辑上的一致性和准确性。数据完整性一般包括三种。 1域完整性 域完整性又称为列的完整性,指给定列输入的有效性。实现域完整性的方法有:限制类型(通过数据类型)、格式(通过CHECK约束和规则)或可能的取值范围(通过CHECK约束、DEFALUT定义、NOT NULL定义和规则)等。 CHECK约束实际上是字段输入内容的验证规则,表示一个字段的输入内容必须满足CHECK约束的条件,若不满足,则数据无法正常输入。CHECK约束通过显示输入到列中的值来实现域完整性;DEFAULT定义后,如果列中没有输入值则填充默认值来实现域完整性;通过定义列为NOT NULL限制输入的值不能为空也能实现域完整性。,L1数据完整性的分类,2实体完整性 实体完整性又称为行的完整性,要求表中有一个主键,其值不能为空且能唯一地标识对应的记录。通过索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性可实现数据的实体完整性。 例如,对于PXSCJ数据库中XSB表,学号作为主键,每一个学生的学号能唯一地标识该学生

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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