《数据库系统原理》实验指导书.docx
《《数据库系统原理》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数据库系统原理》实验指导书.docx(25页珍藏版)》请在冰豆网上搜索。
《数据库系统原理》实验指导书
《数据库系统原理》实验指导书
实验1熟悉SQLServer2000环境及数据库文件管理
一、实验目的
1、掌握登录SQLServer2000的方法,熟悉SQLServer实用工具的使用;
2、了解SQLServe数据库的存储结构,掌握估算数据库大小技术;
3、掌握创建数据库技术,掌握扩大和压缩数据库技术;
4、掌握使用企业管理器工具和T-SQL语句及系统存储过程对数据库进行管理。
二、实验要求
1、熟悉SQLServer2000的工作环境,了解SQLServer主要管理工具的用途和使用方法。
2、掌握在SQLServer2000环境下,利用企业管理器和T-SQL语言创建和管理数据库的方法。
三、实验设备、环境
设备:
奔腾II或奔腾II以上计算机
环境:
WINDOWS98或WINDOWSNT、SQLSERVER2000中文版
四、实验原理、方法
上机操作
五、实验步骤及内容
(一)实验步骤
1、教师讲授
2、教师演示
3、学生实际操作
(二)实验内容
1、熟悉SQLServer2000管理工具
(1)企业管理器(EnterpriseManager)
(2)查询分析器(QueryAnalyzer)
(3)服务管理器(ServiceManager)
(4)事件探查器(Profiler)
(5)导入和导出数据(ImportandExportData)
(6)SQLServer其他管理工具
2、数据库文件管理
(1)数据库的创建和删除。
①在企业管理器中建立一个图书读者库。
图书读者数据库中将包括一个数据文件和一个日志文件,各文件的属性见表1-1。
表1-1图书读者数据库中各列的属性
参数
参数值
数据库名
图书读者库
逻辑数据文件名
Readbook_dat
操作系统数据文件名
F:
\04计\学号\readbook_dat.Mdf
数据文件的初始大小
2MB
数据文件的最大大小
10MB
数据文件增长幅度
原来的15%
日志逻辑文件名
Readbook_log
操作系统日志文件名
F:
\04计\学号\readbook_log.Ldf
日志文件初始大小
1MB,且文件增长不受限制
日志文件增长幅度
2MB
②删除上题所建的数据库然后用T-SQL语句重新创建。
(2)修改数据库
①查看图书读者数据库的属性及数据文件和日志文件的空间使用情况。
②在企业管理器中,首先扩大图书读者数据库的主数据文件的大小,然后查看扩大后的数据库属性,接着收缩主数据文件到定义时的大小。
③用T-SQL语句为图书读者数据库添加一个大小为2MB的次数据文件。
六、实验报告要求及记录、格式
按金陵科技学院《实验报告(工科)》格式填写
七、实验注意事项
1、实验过程中注意爱护计算机,实验完毕要按正常操作关闭计算机。
2、不要随意更改SA的登录密码
八、阅读、讨论及思考题
1、仔细阅读《实训教程》第一、二章
2、思考:
(1)数据库包括哪些数据库对象?
各对象的主要作用是什么?
(2)数据库文件和日志文件的异同点是什么?
(3)文件组的作用是什么?
(4)简述SQLServer的4个系统数据库及其作用?
九、实验结果讨论、体会和收获
实验2表和表数据的操作
一、实验目的
掌握在SQLServer2000环境下,利用企业管理器和T-SQL语言创建和管理表的方法。
二、实验要求
1、掌握利用“企业管理器”创建数据表的方法;
2、学会利用T-SQL语句建立自定义数据类型;
3、掌握使用T-SQL语句建立数据表的方法;
4、掌握数据表的修改及删除方法(界面方式及语句方式);
5、使用“企业管理器”进行各种有关记录数据的操作;
6、掌握T-SQL中的INSERT、UPDATE及DELETE语句的使用方法;
三、实验设备、环境
设备:
奔腾II或奔腾II以上计算机
环境:
WINDOWS98或WINDOWSNT、SQLSERVER2000中文版
四、实验原理、方法
上机操作
五、实验步骤及内容
(一)实验步骤
1、教师讲授
2、教师演示
3、学生实际操作
(二)实验内容
1、创建数据库
利用“企业管理器”创建学生成绩管理数据库,Stuscore_dat.mdf,2MB--10MB,按10%增长;Stuscore_log.ldf,1BM,按2MB增长。
2、创建数据表
(1)用“企业管理器”或查询分析器建立stuscore数据库中的学生表(Student)、班级表(Class)、课程表(Course)及成绩表(Grade),结构如下:
(a)Student表的结构为:
字段名
类型
中文名
备注
SNO
Char(8)
学号
主键
SName
Varchar(10)
姓名
Sex
Char
(2)
性别
男、女
ClsNO
Char(6)
班级
班级的编号,参照表Class
StuAddr
Varchar(20)
住址
描述性说明
Birthday
SmallDate
出生年月
Height
DEC(4,2)
身高
以米为单位表示学生的身高。
(b)Class表的结构为:
字段名
类型
中文名
备注
ClsNO
Char(6)
班号
主键
ClsName
Varchar(16)
班名
对班级的描述信息
Director
Varchar(10)
辅导员
班级的辅导员
Specialty
Varchar(30)
专业
(c)Course表的结构为:
字段名
类型
中文名
备注
CNO
Char(4)
课程号
主键
CName
Varchar(16)
课程名
课程的名称
PCNO
char(4)
先修课程
先修课程的课程号
Credit
Tinyint
学分
(d)Grade表的结构为:
字段名
类型
中文名
备注
SNo
Char(8)
学号
学号,参照Student,与Course组成主键
CNO
Char(4)
课程号
课程号,参照Course
Scorce
Number(4,1)
成绩
(2)用“企业管理器”或系统存储过程sp_addtype创建用户自定义数据类型:
studentNo,char(8),和courseNo,char(4)
(3)修改学生成绩管理数据库中的各表,学号和课程号应用自定义的数据类型。
(4)将表Student增加一列Department(系别)Char
(2)。
3、表数据的操作
(1)向表(Student)中插入数据
SNO
SName
Sex
ClsNO
StuAddr
Birthday
Height
19920101
王军
男
CS01
下关40#
1976.12.21
1.76
19920102
李杰
男
CS01
江边路96#
1974.5.24
1.72
19920306
王彤
女
MT04
中央路94#
1977.3.18
1.65
19940107
吴杪
女
PH08
莲化小区74#
1979.4.8
1.60
插入数据之后使用命令:
Select*fromStudent;检查插入数据的正确性
(2)向表(Class)中插入数据
ClsNO
ClsName
Director
Specialty
CS01
计算机一班
王宁
计算机应用
MT04
数学四班
陈晨
数学
PH08
物理八班
葛格
物理
插入数据之后使用命令:
Select*fromClass;检查插入数据的正确性
(3)向表(Course)中插入数据
CNO
CName
PCNO
Credit
0001
数学
Null
6
0003
计算机基础
0001
3
0007
物理
0001
4
插入数据之后使用命令:
Select*fromCourse;检查插入数据的正确性
(4)向表(Grade)中插入数据
SNO
CNO
Score
19920101
0001
90
19920101
0007
86
19920102
0001
87
19920102
0003
76
19920306
0001
87
19920306
0003
93
19940106
0007
85
插入数据之后使用命令:
Select*fromGrade;检查插入数据的正确性
(5)使用Delete语句删除表中数据
1.DeletefromGradewhereSNo=’19920101’
2.删除数据之后使用命令
Select*fromGrade;
3.检查仍存在数据的正确性
六、实验报告要求及记录、格式
按金陵科技学院《实验报告(工科)》格式填写
七、实验注意事项
1、实验过程中注意爱护计算机,实验完毕要按政党操作关闭计算机;
2、不要随意更改Sa的登录密码;
3、注意自己创建的数据库主文件及日志文件的保存文件名及位置。
八、阅读、讨论及思考题
1、仔细阅读《实训教程》第三章
2、思考:
(1)SQLServer2000提供了哪些基本的数据类型?
(2)SQLServer2000有哪些方法来保证数据的完整性约束?
(3)DROPTABLE语句在使用时应该注意什么问题?
九、实验结果讨论、体会和收获
实验3关系、索引和视图
一、实验目的
1、掌握关系图的创建方法。
2、掌握创建索引、查看索引和删除索引的操作和方法。
3、掌握创建、查询、更新、修改和删除视图的操作和方法。
二、实验要求
1、掌握在SQLServer2000环境下,利用企业管理器创建关系图,理解关系数据库中表间关系的参照引用完整性;
2、掌握在SQLServer2000环境下,利用企业管理器创建、查看和管理视图;
3、掌握在SQLServer2000环境下,利用企业管理器创建、查看和管理索引。
三、实验设备、环境
设备:
奔腾II或奔腾II以上计算机
环境:
WINDOWS98或WINDOWSNT、SQLSERVER2000中文版
四、实验原理、方法
上机操作
五、实验步骤及内容
(一)实验步骤
1、教师讲授
2、教师演示
3、学生实际操作
(二)实验内容
1、创建关系图
根据实际情况,为学生成绩库(stuscore)创建关系图。
试比较在“对INSERT和UPDATE强制关系”选项选中或不选中情况下,对外键表中数据插入、更新有何影响?
2、索引的创建、查看和删除
(1)分别利用SQLServer企业管理器,为学生情况(xsqk)表创建一个基于总学分(total)和学号(xh)的索引IX_total_xh,其中总学分(total)按降序排列,当学号总学分相同时,按学号(xh)升序排列,填充因子为80%。
(2)利用查询分析器为学生情况(xsqk)表创建一个基于系别(dept)和班级(class)的索引IX_dept_class,其中按系别升序、班级降序排列,填充因子为70%。
(3)利用索引管理器查看索引。
(4)删除索引IX_total_xh。
利用索引管理器
(1)中的索引。
3、视图的创建、查询、修改和删除
(1)为学生情况(xsqk)表创建一个视图V_xsqk,以显示学生的学号、姓名、性别和出生年月等基本信息。
(2)创建一个视图V_XSCJ,以显示“101”号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。
(3)分别利用视图V_xsqk和V_XSCJ作查询和更新操作。
(4)利用企业管理器,修改V_xsqk视图的定义,为其增加一个条件,使得该视图只显示“0204计算机”班的学生的基本信息。
六、实验报告要求及记录、格式
按金陵科技学院《实验报告(工科)》格式填写
七、实验注意事项
1、实验过程中注意爱护计算机,实验完毕要按政党操作关闭计算机;
2、不要随意更改SA的登录密码;
3、注意自己创建的数据库主文件及日志文件的保存文件名及位置。
八、阅读、讨论及思考题
1、仔细阅读《实训教程》第五章
2、思考:
(1)SQLServer2000数据库中表之间的关系主要分为哪几类?
(2)视图的更新和修改有什么区别?
如何进行相应的操作?
(3)SQLServer2000数据库中的索引可以分为哪几种?
九、实验结果讨论、体会和收获
实验4T-SQL程序设计
一、实验目的
1、掌握T-SQL中运算符和表达式的使用。
2、通过对Select的使用,掌握Select语句的结构及其应用。
3、掌握T-SQL中几个常用流程控制语句的使用。
4、掌握系统内置函数的概念及其应用。
5、通过定义和使用用户自定义函数,掌握自定义函数的概念及其应用
二、实验要求
掌握在SQLServer2000环境下,利用企业管理器和查询分析器进行SQL数据查询。
学习使用Select语句进行数据库的检索,掌握在Select语句中使用where子句、orderby子句、groupby子句以及between、like关键字。
学习T-SQL语言的几个常用语句、系统内置函数和用户自定义函数的使用方法。
三、实验设备、环境
设备:
奔腾II或奔腾II以上计算机
环境:
WINDOWS98或WINDOWSNT、SQLSERVER2000中文版
四、实验原理、方法
上机操作
五、实验步骤及内容
(一)实验步骤
1、教师讲授
2、教师演示
3、学生实际操作
(二)实验内容
1、使用SQL查询分析器,对Pubs数据库完成如下查询操作:
1)简单查询
(1)查询所有作者的作者号、姓名信息;(authors表)
(2)查询所有作者的姓名和作者号信息,并在每个作者的作者号前面显示字符串“身份证号:
”表明显示信息是身份证信息;(authors表)
(3)改变显示列名。
显示所有作者的姓名信息和作者号信息,要求用“名”和“姓”来区别fname和lname,“作者编号”来区分作者号;(authors表)
(4)查询所有书在价格提高10%后的价格和书名信息;(titles表)
(5)查询所有书的书号和税后价格。
(titles表,royalty列表示税率);
(6)查询所有作者的姓和“名的第一个字符”以及作者号;(authors表,SUBSTRING函数)
(7)查询邮政编码大于9000的作者姓名和电话信息;(authors表)
(8)查询在CA州的作者姓名和城市;(authors表)
(9)查询出版日期在1/1/1991到12/31/1991之间的书名(书名限制为38个字符)和出版日期;(titles表,SUBSTRING函数)
(10)查询书的类型是mod_cook或trad_cook的书名和它的类型;(titles表)
(11)查询店名中包含Book的店的信息;(stores表);
(12)查询所有无价格的图书;(titles表)
(13)查询书名以T开头或者出版号为0877,且价格大于16美元的书的信息;(titles表)
(14)查询所有作者的所在城市和州名,要求没有重复信息;(authors表)
(15)按照类型的升序和价格的降序显示书的信息;(titles表)
2)生成汇总数据
(1)计算多少种书已被定价;(titles表)
(2)计算每本书的书号及它的售书总量;(sales表)
(3)求销售量大于30的书号及销售数量;(sales表)
(4)显示在1994年1月1日到1994年10月31日间,每本书的销售总额;(sales表)
3)连接查询
(1)求每本杂志上刊登的文章;(titles,publishers表)
(2)求某书店销售某书的数量;(titles,stores,sales表)
(3)查询所有合著的书及其作者。
(4)显示所有已销售的书名。
4)子查询
(1)查询有销售记录的所有书信息,包括书的编号、书名、类型和价格;
(2)求已销售的书的信息;
2、使用SQL查询分析器,对学生成绩管理(stuscore)数据库完成如下查询:
(1)在学生成绩库中查询出生年月在“1981-01-01”至“1982-05-01”之间的男生情况,并以出生年月按降序排列。
(2)统计“信息管理”专业的人数。
(3)统计每个学生每个学期的最低分、最高分及平均分。
3、流程控制语句
(1)xsqk表中若存在学号为“02020101”的学生,则显示已存在的信息,否则插入该学生的记录。
然后从xsqk表中删除学号为“02020101”的学生记录,重新执行该程序,观察与上次有何不同。
(2)使用While语句求1到100之间的累加和,输出结果。
4、用户自定义函数的应用
(1)定义一个自定义函数,按出生年月计算年龄。
然后从xsqk表中检索出含有年龄的学生信息。
掌握用户自定义函数在数据库中的应用。
(2)定义一个用户自定义函数Scoer_Rechange,将成绩从百分制转化为五级记分制。
将该用户定义函数用在查询每个学生的成绩中,给出五级记分制的成绩。
六、实验报告要求及记录、格式
按金陵科技学院《实验报告(工科)》格式填写
七、实验注意事项
1、实验过程中注意爱护计算机,实验完毕要按正常操作关闭计算机。
八、阅读、讨论及思考题
1、仔细阅读教材第三章:
关系数据库标准语言SQL和《实训教程》第六、七章:
T-SQL程序设计的内容;
2、思考:
(1)Transact-SQL中有哪些流程控制语句?
说明它们各自的作用。
(2)用户自定义函数与系统函数有何不同?
九、实验结果讨论、体会和收获
实验5数据完整性
一、实验目的
正确理解数据库的数据完整性的概念、SQLServer的数据完整性类型,掌握SQLServer各种数据完整性的实施技术。
二、实验要求
1、掌握SQLServer提供的各种数据完整性的概念和管理技术。
2、掌握在SQLServer2000环境下,实现数据完整性主要数据库对象(主键、外键、约束、规则、默认值)的创建和维护方法。
3、通过创建和执行存储过程,了解存储过程的基本概念,掌握使用存储过程的操作技巧和方法。
4、创建触发器,了解触发器的基本概念,理解触发器的功能,掌握使用触发器的操作技巧和方法。
三、实验设备
硬件设备:
奔腾II或奔腾II以上计算机
软件环境:
WINDOWS2000/NT或WINDOWS9X、SQLSERVER2000中文版企业版或标准版。
四、实验原理、方法
上机操作
五、实验步骤及内容
(一)实验步骤
1、教师讲授
2、教师演示
3、学生实际操作
(二)实验内容
1、约束、默认与规则
1)约束在数据库中的应用
(1)用系统存储过程sp_helpconstraint查看xsqk表的约束。
(2)在“查询分析器”中输入插入一个学生信息的命令:
insertintoxsqk(Xh,Dept,Specialty,Name)
values(‘02020106’,’计算机’,’计算机应用’,’黄诚’)
(3)修改xsqk表,使用Check约束,使Sex列只能接受“男”或“女”,以强制执行域数据完整性。
重做
(1)。
(4)禁止xsqk表中的sex列上的约束:
altertablexsqknocheckconstraintck_xsqk
(5)删除约束:
altertablexsqkdropconstraintck_xsqk。
重做
(1)。
(6)利用关系图,建立xscj表与xsqk表与xskc表的主外键约束。
2)默认的应用
(1)创建默认对象:
default_birthday,默认值为’1982-1-1’。
CREATEDEFAULTdefault_birthdayAS‘1982-01-01’
(2)利用系统存储过程sp_bindefault将default_birthday绑定到xsqk表的birthday列上。
(3)利用系统存储过程sp_unbidefault解除xsqk表的birthday列上的默认值绑定。
(4)删除默认值:
DROPDEFAULTdefault_birthday
(5)定义一个默认值为4的Default_Value,并将它绑定到xskc表的credit列上,绑定后给学生课程表插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。
实现过程要求使用SQL语句完成。
3)规则的应用
(1)利用企业管理器创建规则:
规则名为:
rule_term_range,
文本为:
@range>=1and@range<=8
(2)绑定规则:
将rule_term_range绑定到xskc表的term列上。
(3)解除
(2)中设置的规则绑定,删除规则rule_term_range。
(4)定义一个规则rule_Specialty,这个规则限制xsqk表中的Specialty列只能取以下的值:
计算机应用与维护、信息管理、电子商务、电子技术。
将该规则绑定到xsqk表后,给xsqk表插入数据行,观察规则的设置情况,使用完毕后,解除并删除该规则。
2、存储过程
1)存储过程的类型。
使用sp_helptext查看byroyalty存储过程的文本,该存储过程在数据库pubs中。
2)创建与执行存储过程
(1)在学生成绩库中创建存储过程proc_8_t1,要求实现如下功能:
产生学分为4的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、系别、专业、性别等。
并调用此存储过程,显示执行结果。
(2)在学生成绩库中创建存储过程proc_8_t2,要求实现如下功能:
输入专业名称,产生该专业学生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。
并调用此存储过程,显示“信息管理”专业学生的选课情况列表。
(3)在学生成绩库中创建存储过程proc_8_t3,要求实现如下功能:
输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分<9,则显示“此学生学分不足!
”,否则显示“此学生学分已足!
”,并调用此存储过程,显示“02020101”学生的总学分情况。
3)、修改存储过程
(1)对学生成绩库中已创建的存储过程proc_8_t1进行修改,要求在显示列表中增加班级字段,即产生学分为“4”的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、系别、专业、班级、性别等。
(2)在学生成绩库中创建的存储过程proc_8_t2进行修改,要求实现如下功能:
输入专业名称,产生该专业所有男生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。
并调用修改后的存储过程,显示“信息管理”专业男生的选课情况列表。
(3)对学生成绩库中已创建的存储过程proc_8_t3进行修改,要求实现如下功能:
输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分为空,则显示“此学生没选任何学分!
”,否则,如果总学分<9,则显示“此学生所选总学分为XXX,学分不足!
”,否则