数据库上机实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.唯一约束和主键约束的区别是什么?

答:主键约束是指有一列或列的组合,其值能唯一的标识表中的每一行。

唯一约束是说不允许数据库表在指定列上具有相同的值,但允许有空值。

他们二者之间的区别是其中一个表可以定义多个唯一约束,另外一个只能定义一个主键约束;空值的列上可以定义唯一约束,不能定义主键

相关文档
最新文档