数据库上机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库上级实验报告
一、目的
数据库管理系统包括许多实用的功能,其中,索引是加快查询速度的有效手段;视图有助于保持数据库的逻辑独立性;完整性约束支持对数据正确性的检查。本次实验目的是学习并熟悉SQL Server2000索引、视图、数据库完整性等功能的设置和使用方法。
二、实验内容及要求
要求同学们掌握聚集索引和非聚集索引,建立视图,显示结果,实施约束、规则、外键。
1.索引的建立
1)利用SQl语言或系统工具,在SPJ数据库上为S表建立非聚集索引。若该索引已存在,则删除后重建。
2)利用SQl语言或系统工具,在SPJ数据库上为P表建立聚集索引,并且强制其唯一性。
3)利用SQl语言或系统工具,在SPJ数据库上为每个表建立主键索引,若该索引已存在,则删除后重建。
2.建立视图,并对视图进行查询
在SPJ数据库上为天津的工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量。并针对该视图完成以下查询:
1)找出天津工程项目使用的各种零件代码及数量。
2)找出供应商S1的供应情况。
3.数据库完整性约束的设置(教程5.2.3)
利用SQL语言或系统工具完成下列完整性约束的设置和使用:
1)为供应商表“CITY”字段默认值设为“北京”的约束;
2)为零件表“WEIGHT”字段值限定在0~99的约束;
3)实施工程表的“JNO”字段值唯一的非聚集索引约束;
4)为SPJ表建立所有的外键;
5)添加违反上述第2小题和第4小题的记录,观察结果;
6)删除第一小题建立的约束。
三、实验平台
1、操作系统:
Windows 2000或Windows XP
2、数据库管理系统:
MS SQL Server
四、实验内容与完成情况
1、实验步骤
1)、按照教科书P74题5的表格建立了SPJ数据库。
2)、对各小题的问题进行了上机实践,使用SQL语言求解答案。
2、实验结果
1)索引的建立
(1)为SPJ数据库的S表建立非聚集索引
SQL 语言:
CREATE UNIQUE INDEX S_INDEX ON S(SNAME);
(2)为SPJ数据库的P表建立聚集索引,并且强制其唯一性
SQL 语言:
CREATE UNIQUE CLUSTERED INDEX P_INDEX ON P(PNAME); (3)为SPJ数据库的每个表建立主键索引
S表主键索引
SQL 语言:
CREATE UNIQUE INDEX S_INDEX ON S(SNO);
P表主键索引
SQL 语言:
CREATE UNIQUE INDEX P_INDEX ON P(PNO);
J表主键索引
SQL 语言:
CREATE UNIQUE INDEX J_INDEX ON J(JNO);
SPJ表主键索引
SQL 语言:
CREATE UNIQUE INDEX SPJ_INDEX ON SPJ(SNO,PNO,JNO);
2)建立视图,并对视图进行查询
在SPJ数据库上为天津的工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量。
SQL 语言:
CREATE VIEW VV_SPJ AS
SELECT SNO,PNO,QTY
FROM J,SPJ
WHERE J.JNO=SPJ.JNO
AND J.CITY='天津'
(1)找出天津工程项目使用的各种零件代码及数量。
SQL 语言:
SELECT PNO,QTY
FROM VV_SPJ;
结果:
PNO QTY
P1 100
P1 700
P3 500
P6 300
P6 200
P2 100
P6 500
(2)找出供应商S1的供应情况。
SQL 语言:
SELECT PNO,QTY
FROM VV_SPJ
WHERE SNO='S1';
结果:
PNO QTY
P1 100
P1 700
3)数据库完整性约束的设置
(1)为零件表“WEIGHT”字段值限定在0~99的约束;
用系统工具完成:选中零件表“P”右键选中“设计表”,进入P表,选中“WEIGHT”右键选中“CHECK约束”;在对话框中添加约束,输入约束语句:
WEIGHT BETWEEN 0 AND 99。
(2)实施工程表的“JNO”字段值唯一的非聚集索引约束;
SQL 语言:
CREATE UNIQUE INDEX J_IND ON J(JNO);
(3)为SPJ表建立所有的外键;
在建SPJ数据库时,建立关系图时,建立所有外键。
3.实验中出现的问题及解决方法
(1)由于MS SQL SEVER 的软件问题,在建视图时,语句结束时一开始使用了分号,导致出现错误,后将分号删去,语句可正常执行。
(3)一个表上只能建立一个唯一索引,若索引已存在,必须删除后重建。表中已有默认的主键表索引,必须在删除后才能重建索引表。
(4)在建聚集索引时,教科书上用的是“CLUSTER”,而在SQL Server中是“CLUSTERED”。各种软件的关键词有所区别
五、总结
本次实验,使我进一步加深了对SQL Server的认识,了解到索引是加快查询速度的有效手段;视图有助于保持数据库的逻辑独立性;完整性约束支持对数据正确性的检查。通过平时对书本的学习使我获得了理论的基础知识,而通过上机实习使我对理论认识有了进一步的加深。
六、问题回答
1.唯一约束和主键约束的区别是什么?
答:主键约束是指有一列或列的组合,其值能唯一的标识表中的每一行。
唯一约束是说不允许数据库表在指定列上具有相同的值,但允许有空值。
他们二者之间的区别是其中一个表可以定义多个唯一约束,另外一个只能定义一个主键约束;空值的列上可以定义唯一约束,不能定义主键