实验五索引和数据完整性.docx

上传人:b****2 文档编号:1042320 上传时间:2022-10-15 格式:DOCX 页数:12 大小:434.56KB
下载 相关 举报
实验五索引和数据完整性.docx_第1页
第1页 / 共12页
实验五索引和数据完整性.docx_第2页
第2页 / 共12页
实验五索引和数据完整性.docx_第3页
第3页 / 共12页
实验五索引和数据完整性.docx_第4页
第4页 / 共12页
实验五索引和数据完整性.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验五索引和数据完整性.docx

《实验五索引和数据完整性.docx》由会员分享,可在线阅读,更多相关《实验五索引和数据完整性.docx(12页珍藏版)》请在冰豆网上搜索。

实验五索引和数据完整性.docx

实验五索引和数据完整性

实验五-索引和数据完整性

实验五索引和数据完整性

1、目的与要求

(1)掌握索引的使用方法。

(2)掌握数据完整性的实现方法。

2、实验准备

(1)了解索引的作用与分类。

(2)掌握索引的创建方法。

(3)理解数据完整性的概念及分类。

(4)掌握各种数据完整性的实现方法。

3、实验内容

(1)建立索引。

①使用CREATEINDEX语句创建索引。

A、对YGGL数据库的Employees表中的DepartmentID列建立索引。

在“查询分析器”窗口中输入如下程序并执行。

B、在Employees表的Name列和Address列上建立复合索引。

型,单击“添加”按钮,在列框中选择要创建索引的列,选择完单击“确定”按钮即完成创建的工作。

【思考与练习】

A、使用界面方式创建一个复合索引。

B、在Employees表的设计窗口中选择Address列,右击选择“索引/键”菜单项,在新窗口中为Address创建一个唯一索引。

C、创建一个数据量很大的新表,查看使用索引和不使用索引的区别。

 

(2)重建索引。

重建Employees表中的所有索引。

【思考与练习】

重建表Employees中EmployeeID列上的索引。

(3)删除索引。

使用DROPINDEX语句删除表Employees上的索引depart_ind,使用如下T-SQL语句。

从上面截图中可以显示,之前在Employees表中创建的depart_ind索引已经被删除。

【思考与练习】

A、使用DROPINDEX一次删除Employees表上的多个索引。

B、使用界面方式删除Department表上的索引。

在数据库YGGL中的Department表中打开“索引”,找到表Department表上的索引Dep_ind,右键删除,在弹出的“删除对象”窗口中选择“确定”,删除索引Dep_ind。

(4)数据完整性。

①创建一个表Employees5,只含EmployeeID、Name、Sex和Education列。

将Name设为主键,作为列Name的约束。

对EmployeeID列进行UNIQUE约束,并将其作为表的约束。

②删除上列中创建的UNIQUE约束。

【思考与练习】

A、使用T-SQL命令创建一个新表,使用一个复合列作为主键,作为表的约束,并为其命令。

B、使用ALTERTABLE语句为表Employees5添加一个新列Address,并未该列定义UNIQUE约束。

C、使用界面方式为一个新表定义主键和UNIQUE约束,并了解如何使用图形向导方式删除主键和UNIQUE约束。

 

③创建新表student,只考虑“号码”和“性别”两列,性别只能够包含男或女。

【思考与练习】

向该表中插入数据,“性别”列插入“男”和“女”以外字符,查看会发生什么情况?

模拟用户不小心输入汉字错误:

④创建新表Salary2表,结构与表Salary相同,但是表Salary2不允许OutCome大于InCome列。

 

【思考与练习】

A、向表中插入数据,查看OutCome比InCome大时会发生什么情况?

在“查询分析器”中输入上面截图中的代码,执行后出现下面这样的错误。

原因:

在创建表Salary2的时候,规定了InCome大于OutCome,如果输入的数据不满足这样的条件,那么就会出现错误与规定冲突。

B、创建表Employees6表,只考虑“学号”和“出生日期”两列,出生日期必须晚于1980年1月1日。

在“查询分析器”中输入上面的代码,在下面的结果栏中发现命令已经执行。

⑤对YGGL数据库中Employees表进行修改,增加“DepartmentID”字段的CHECK约束。

在“查询分析器”窗口中输入下面程序并执行:

执行上面的代码,但是出现了这样的问题。

 

【思考与练习】

测试CHECK约束的有效性。

在Employees表中进行增加修改,设置Check约束,使得DepartmentID在1—5之间。

如上面T-SQL命令所示,向表Employees中插入数据时,在结果栏中显示了check约束提示错误:

从上面的T-SQL命令和结果栏中消息提示可以得出,该CHECK约束有效。

⑥创建一个规则对象,用限制输入到该规则所绑定的列中的值只能是该规则中列出的值。

在“查询分析器”中输入上面截图中的代码,显示规则已经绑定。

【思考与练习】

A、建立一个规则对象,限制值在0~20,然后把它绑定到Employees表的WorkYear字段上。

B、删除上述建立的规则对象名。

⑦创建表Salary3,要求所有表Salary3上EmployeeID列的值都要出现在表Salary中,利用参照完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary3表中的EmployeeID值也会随之变化。

使用T-SQL语句:

执行上面截图中的命令,表Salary3已经成功建好。

【思考与练习】

A、创建表Salary3后,初始化该表的数据与Salary表相同。

删除Salary表中一行数据,在查看表Salary3中内容,看看会发生什么?

在左侧对象资源管理器中查看新建的的Salary3表及其数据:

利用参照完整性约束实现,当删除或修改Salary表上的EmployeeID列时,Salary3表中的EmployeeID值也会随之变化。

B、使用ALTERTABLE语句向Salary表中的EmployeeID列上添加一个外键,要求当Employees表中要求删除或修改EmployeeID值有关的行时,坚持Salary表中有没有与该EmployeeID值有关的记录,如果存在,则拒绝更新Employees表。

C、在对象资源管理器中建立Departments、Employees和Salary3个表之间的参照关系。

 

4、实验总结

通过本次实验我了解了索引和CHECK约束的大致用法,例如:

在表中约束输入性别只准“男”或者“女”,利用CHECK约束,当输入字符错误时候会出现错误。

同样也了解了索引的建立和使用的利弊,索引就像一把双刃剑,用得好查询搜索速度会提升很多,但是用得不好会浪费很多内存资源。

同时通过本次实验知道了很多完整性规则的实现方法。

总之,通过本次实验,收获了很多之前并不了解的知识;先前做一遍,再听老师讲解一遍理解更加深刻了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1