数据库管理系统及其应用实验指导书071026.docx
《数据库管理系统及其应用实验指导书071026.docx》由会员分享,可在线阅读,更多相关《数据库管理系统及其应用实验指导书071026.docx(24页珍藏版)》请在冰点文库上搜索。
数据库管理系统及其应用实验指导书071026
数据库管理系统及其应用
实验指导书
***编
计算机工程学院
二○一一年
目录
实验一:
安装和配置SQLSERVER………………………………………3
实验二:
数据库的创建与管理…………………………………………4
实验三:
表的创建与管理…………………………………………………5
实验四:
SQL语言…………………………………………………………6
实验五:
数据库的备份与恢复…………………………………………7
*实验六:
索引及优化……………………………………………………8
*实验七:
数据完整性……………………………………………………9
*实验八:
系统安全………………………………………………………10
*实验九:
T-SQL语句……………………………………………………11
*试验10存储过程………………………………………………………12
*实验11触发器…………………………………………………………13
*实验12游标与事务……………………………………………14
*实验13数据库实训1……………………………………………15
*实验14数据库实训2……………………………………………16
*实验15Oracle安装和配置…………………………………20
*实验16创建Oracle数据库…………………………………21
*实验17ORACLE数据库操作工具软件使用……………………22
*实验18ORACLE数据库备份和恢复……………………………23
实验一:
安装和配置SQLSERVER
一、实验目的:
1)掌握SQLSERVER安装的基本步骤,掌握SQLSERVER连接的基本方式。
2)掌握SQLSERVER常用的设置方法,包括:
启动、关闭、连接、设置连接参数、managementstudio进入等等。
3)创建数据库
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
三、实验内容和步骤:
安装配置:
1):
安装SQLSERVER,如果计算机已经安装,尝试安装新的实例。
具体过程见上课时操作。
2):
在命令行模式下,使用netstart和netstop命令启动和关闭mssqlserver服务,如果无法运行net命令,到操作系统system32目录下直接运行。
3):
进入操作系统系统设置-》管理工具-》服务,选择SQLSERVER服务模块,并点击属性页,对sqlserver服务帐号进行设置。
注意:
需要有管理权限的用户才能正确启动SQLSERVER服务。
4):
尝试使用本机managementstudio连接某个其它同学的计算机的SQLSERVER。
访问该同学master数据库中的sysobjects表,命令如下:
select*fromsysobjects命令需要点击运行按钮执行,可以看到检索出来的数据。
5):
尝试使用managementstudio连接其它同学的计算机的SQLSERVER服务器,打开managementstudio后->SQLSERVER组->右键新建注册。
*6):
让配合同学将自己的sqlserver开放端口,使用服务器网络实用工具从1433更改为2433。
然后使用你的managementstudio和managementstudio中的查询分析器对该同学的电脑进行连接?
连接是否可以成功?
怎样才能连接成功?
*7):
使用netstat–na命令,观察自己的计算机开放的端口。
数据库:
1)数据库名称为班级编号加学号,如计算0333班01号同学,数据库建立为js033301,数据库初始大小为3M,文件名和数据库名称相同。
2)在managementstudio中的查询分析器中调试上述语句,并且将语句保存。
3)在managementstudio图形界面中,删除该数据库。
4)重新创建相同的数据库。
5)修改初始大小为100M,并观察文件系统中数据库文件的变化。
6)尝试删除数据库文件和日志文件。
能否删除?
7)关闭数据库系统服务,并重新尝试删除,能否删除?
8)重新进入managementstudio,观察数据库,出现什么标记?
思考与讨论:
修改自己的sqlserver开放端口,使用服务器网络实用工具从1433修改到2345端口,然后重新启动sqlserver服务器,再次使用netstat–na命令观察,情况有何不同?
在端口试验过程中,注意禁用tcp/ip无关的协议,比如命名管道等。
实验二:
数据库的创建与管理
一、实验目的:
掌握managementstudio的基本使用,掌握数据库的创建基本方式,数据库创建中的设置大小、路径、日志等参数的基本方法。
数据库系统的打开,关闭。
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
三、实验内容和步骤:
1)扩充第一次试验1步骤的3M数据库文件为20M
2)使用sp_helpdb观察数据库中已经有的数据库。
3)使用删除数据库命令,在managementstudio中的查询分析器中删除第一次实验的数据库
4)运行数据库安装语句,重新建立第一次实验数据库(第一次实验的语句要保存好)
5)在managementstudio中的查询分析器中创建一个数据库,要求数据库数据文件有两个,日志文件有两个,要求数据文件在C盘,日志文件在D盘(实验机器中如果无D盘,则还是建立在C盘)。
6)在managementstudio中的查询分析器中创建一个数据库后,为数据库添加一个数据文件,使得原来的一个数据文件,增加为两个。
要求原数据库文件在C盘,增加的文件在D盘(实验机器中如果无D盘,则还是建立在C盘)。
实验三:
表的创建与管理
一、实验目的:
了解表、数据库、数据库系统的关系。
了解主键、外键的概念。
掌握创建表的基本方法,“空”,“非空”的概念,字段的类型。
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
三、实验内容和步骤:
第一次:
1)创建一个名称为TSXT的数据库,相关条件为默认即可。
2)然后在数据库中建立如下表:
表名:
d_cbsxx出版社信息
字段名
意义
类型
长度
要求
备注
cbfxz
出版社编号
integer
主键notNULL
Isbnbh
出版社在ISBN中的编号
varCHAR
7
notNULL
如7220
cbsmc
出版社名称
varCHAR
50
notNULL
cbsdz
出版社地址
varCHAR
20
notNULL
Pybm
拼音
varCHAR
20
notNULL
3)创建表后,在原SQL语句后增加解决如下问题的语句(也可以独立作为一个SQL文件保存)
使用insert语句往d_cbsxx(出版社信息)表插入两个记录,其中一个使用没有字段参数的语句(就是insertinto?
?
?
values格式),一个使用有字段参数的语句(insertinto?
?
?
(字段1,字段2)values格式)。
4)复制上述语句,将上述语句复制为30个语句,别忘记修改主键(出版社编号)。
然后执行,生成30个出版社插入的语句。
5)删除其中出版社编号大于20的记录。
6)使用update语句,将出版社编号为1-10的出版社地址改为杭州,出版社编号大于10的出版社地址修改为北京(可以使用多句update)
第二次:
创建Tsxt数据库,要求数据在C盘,日志在D盘(如无D盘,只能创在在C盘),数据库大小为10M。
1)使用用sql语句创建第一次实验第2题所要求的表
2)将d_cbsxx表增加一个备注字段,为字符串型20个字符。
3)修改字段ISBNbh,增加长度为15字节。
4)往表里使用insert语句,插入10个记录。
4)使用sql语句删除cbfxz主键。
5)设置isbnbh为主键,设置主键的时候,有无问题,为什么?
如何改进?
实验四:
SQL语言
一、实验目的:
掌握查询的基本语法,掌握like语句,掌握连接的基本语法,以及groupby等高级语法。
了解子查询函数的概念。
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
上交SQL语句。
三、实验内容和步骤:
实验1:
1)恢复TSXT数据库.
2)在managementstudio中的查询分析器中,查询如下数据:
1.查询d_tsqd1的所有数据。
2.从d_tsqd1中,列出出版社发行者+题名信息。
3.查询所有著录日期在“2003.12.1”之后的图书
4.查询所有复本数(登记册书)大于8本的图书。
5.查询所有题名(书名)中含有“红楼梦”的图书,并以题名逆序排列。
6.查询条形码号为003038的图书,列出“题名,第一责任者,出版社发行者,图书条形码号”等字段。
实验2:
1)恢复tsxt数据库。
2)使用groupby语句完成下列题目
1.请按照进入阅览室的次数的由多到少的顺序,列出读者进入阅览室的次数。
(事项字段为’阅’)
2.请列出进入阅览室次数大于100次的读者,提示:
使用having
3.请列出进入阅览室次数最多的十位读者。
提示:
使用top10子句。
实验3:
1.统计最多的图书复本数,列出数目即可。
2.查询平均的复本数,列出平均数即可。
3.何判断是否有借书证编号为XS0103120这个读者存在?
4.怎么知道是否有条码号为'003038'这册书存在呢?
5.借书证编号为XS0103120的读者目前还有哪些图书没有归还(列出:
题名,图书条码号)?
6.图书馆2004年总共被借过多少册图书(包含目前借出的图书)?
7.目前图书馆还有多少图书册没有被归还?
8.图书馆总共有多少册图书呢?
又有多少种图书呢?
9.以编目时间为准2003年到2004年,图书馆总共进了多少册新的图书?
又有多少种?
10.查询读者‘XS0103120’在2004年时间内借了什么图书,以借书证编号精确检索,姓名为“赵佳”。
(提示:
如检索姓名需要连接4张表,要求列出:
条码号,书名,第一责任者,出版社,借阅时间)
11.查询读者‘赵佳’在2004年时间内借了什么图书(提示:
需连接4张表,要求列出:
条码号,书名,第一责任者,出版社,借阅时间)
12.查询条形码号为003038的图书,在2003-1-1到2004-1-1之间,曾经被谁借过。
(要求列出:
姓名,借书证编号,出借时间)
13.上交SQL语句,每题一个SQL语句,放到一个文本文件中上交。
实验五:
数据库的备份与恢复
一、实验目的:
掌握数据库的备份及恢复,设置数据库备份调度。
。
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
三、实验内容和步骤:
一:
语句导入数据
1)创建数据库和基本表(主要是出版社信息表)。
2)在managementstudio中的查询分析器中运行《导入的语句》目录下的插入数据语句.sql文件,观察运行效果。
二:
导入导出
1)使用managementstudio中的查询分析器生成规定的数据库和表(根据发放的数据字典或者之前已经创建好的语句运行创建,或者复制原有建立的表结构来建立)。
2)使用sqlserver导入和导出工具,将<导入的表文件excel等>目录中的图书馆数据库.XLS文件中的几张表,导入到刚建立的数据库中。
3)观察导入后的数据库结果,使用selectcount(*)命令统计d_tsqd1表的记录个数。
4)将d_cbsxx和d_tsck两张表,通过导出的方式,导出到“导出.xls”文件中。
三:
备份恢复
1)将《库》目录下的tsxt文件恢复到你所在的计算机中,观察其中的数据。
注意设置恢复目录和恢复数据库名称。
2)将该数据库做备份,并观察备份文件。
3)设置调度,设置每个星期天12:
00进行自动增量备份。
备份地点必须和目前存在的文件盘符不同。
实验六:
索引及优化
一、实验目的:
掌握索引的建立方法,掌握利用索引优化性能的基本方法和性能的观察方法。
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
三、实验内容和步骤:
1)删除d_tsqd1中有关sm的索引。
2)关闭sqlserver服务然后重新打开,使用任务管理器观察并记录sqlserver内存占用。
3)打开性能工具中的SQLSERVERProfile,添加设定跟踪项目开始事件和结束事件(starttime,endtime)
4)对d_tsqd1表执行查询,执行查询语句:
selectsmfromtsgly.d_tsqd1wheresmlike‘马克思’。
5)停止事件探查器跟踪(红色的方框按钮),并观察语句执行时间。
使用任务管理器,观察并记录内存占用。
6)记录上述结果,记录的结果,包括内存和开始结束时间,精确到1/1000秒。
7)创建针对sm的索引,选择项全部选择默认。
8)关闭sqlserver服务,然后重新打开。
9)记录sqlserver内存占用。
10)重新打开事件探查器开始跟踪(按下绿色的按钮)。
11)执行查询书名like‘马克思’的语句。
12)观察该语句的执行时间。
并观察内存的占用情况。
13)将对比数据上交。
语句
执行时间
占用内存
无索引进行检索
建立索引后检索
14)查询读者XS01031202004年时间内借了什么图书(列出书名、条形码、时间),以借书证号精确检索,在D_ccdj中的sjrkh和sx字段建立索引和删除索引,并对比实验结果。
实验七:
数据完整性
一、实验目的:
掌握数据完整性设置的方法和步骤,掌握参照完整性和实体完整性的建立。
二、实验要求:
根据提示的实验过程进行实验,达到下述目标,并进行调试。
上交实验的sql语句和结果的屏幕截图(压缩后上交,不要全屏的截图,截取返回结果中的小部分,使用jpg保存)。
三、实验内容和步骤:
1)为d_khxmb中的xb(性别)字段创建check约束,要求性别必须为’男’或者’女’。
2)为d_khxmb中的年龄字段创建check约束,要求年龄必须小于100岁。
3)在managementstudio中的查询分析器中尝试修改编号‘XS0100053’的借书证中的xb为”难”观察提示结果并记录。
4)在managementstudio中的查询分析器中尝试修改编号’XS0100055’的同学年龄为119岁,尝试保存并记录提示结果。
5)在managementstudio中的查询分析器中,使用update语句尝试3和4同样的过程。
并上交update语句。
重点观察运行后的提示信息。
6)尝试在d_tsqd1表中删除编号(tsbh字段)为2151的图书记录,能够成功么?
为什么?
分别使用managementstudio中图形界面操作和查询分析器的delete语句删除,上交提示信息结果和sql语句。
7)尝试在d_tsmx中使用insert语句插入一条图书编号为25684,条形码编号为999999的图书,其余的字段允许空的全部为空,能够成功么?
提示信息是什么?
为什么?
实验八系统安全
实验目的:
理解SQLSERVER系统安全的设置方式。
实验要求:
根据要求,完成下述要求的过程,并且将重要的过程的屏幕截图加工后拷贝到word文档中,并附文字说明试验结果后上交。
实验过程:
试验1:
对表单独授权:
1)创建一个登陆名称为js03test,默认数据库为mater,不给予其其它授权。
2)使用js03test登陆managementstudio中的查询分析器,通过使用相关命令,观察其拥有的数据库权限。
3)使用js03test登陆managementstudio(修改注册的属性,将登陆用户修改为js03test),观察其拥有的权限,看看其是否拥有建立数据库的权限。
4)重新使用administrator或者sa帐号登陆managementstudio。
对js03test登陆进行重新修改,修改默认数据库为tsxt,并且将tsxt设定为数据库许可访问。
然后保存结果。
5)在tsxt数据库用户中,对js03test用户进行授权,给予js03test用户d_tsmx表的select。
6)managementstudio中的查询分析器中使用js03test登陆,然后使用查询语句查询d_tsmx表,并且尝试查询d_tsqd1表。
能否成功?
试验2:
使用数据库角色授权:
1)创建一个登陆名称为js03test1,修改默认数据库为tsxt,并且将tsxt设定为数据库许可访问。
然后保存结果。
2)在tsxt数据库用户中,创建一个新的角色reader,该角色拥有对d_tsmx表的select权限。
3)设置将js03test1用户为reader角色。
4)managementstudio中的查询分析器中使用js03test1登陆,然后使用查询语句查询d_tsmx表,并且尝试查询d_tsqd1表。
能否成功?
5)将reader角色从用户js03test1去除,重新试验4,能否成功?
试验3:
服务器角色授权(选做)
设置某个用户为systemadministrator角色,使用该用户登陆managementstudio,观察其拥有的权限。
实验9T-SQL语句
实验目的:
了解T-SQL基本语法,掌握T-SQL变量定义及简单语句的使用
实验要求:
根据提示的试验过程进行试验,达到下述目标,并进行调试。
实验过程
3)恢复tsxt数据库
4)查询003038条码图书的书名,如果存在该书,则显示,该书书名为:
“”,否则,显示:
“图书馆中,该图书不存在!
”
5)在managementstudio中的查询分析器中编制如下程序:
查询XS0100101借书证号码的读者,借书本数是否超过2本,如果达到2本,则显示:
“该读者借书已经达到本数,无法接续借书”,如果没有2本,则显示:
“该读者借书X本,还可以接续借书!
”,要求借书证号码可以随着变量的修改而改变。
*4)借书证XS0100101读者,借书“003038”图书一本(该题可选做)
实验10存储过程
实验目的:
了解存储过程的定义及使用。
实验要求:
根据提示的试验过程进行试验,达到下述目标,并进行调试。
实验过程
步骤一:
系统存储过程调用
1)调用sp_helpdb存储过程,观察其返回值,并了解返回值含义。
2)调用sp_tables存储过程,观察其返回值,并了解返回值含义。
步骤二:
用户存储过程调用
6)恢复tsxt数据库
7)创建一个存储过程名称为pro_test1,检测读者XS0100057当前借书本数是否多于1本,如果多于1本,则显示,该读者借书本数多于1本,否则显示该读者借书本数少于1本。
8)创建一个存储过程名称为pro_test2,检测某读者当前借书本数是否多于1本,如果多于1本,则显示,该读者借书本数多于1本,否则显示该读者借书本数少于1本。
(提示:
参数为读者借书证号码)
9)在managementstudio中的查询分析器中调用该存储过程pro_test1和pro_test2
实验11触发器
实验目的:
了解触发器的概念、定义和触发过程。
实验要求:
根据提示的试验过程进行试验,达到下述目标,并进行调试。
实验过程:
1)恢复tsxt数据库
2)创建一个触发器,触发器名称为:
u_jsz,当修改借书证编号的时候触发。
触发器中,所作的处理代码如下所示:
declare@ls_jszvarchar(20),@ls_jsznewvarchar(20),@ls_messvarchar(50)
select@ls_jsz=(selectdeleted.bhfromdeleted)
select@ls_jsznew=(selectinserted.bhfrominserted)
Updatetsgly.d_ccdjsetsjrkh=@ls_jsznewwheresjrkh=@ls_jsz
select@ls_mess='老的借书证号码是:
'+@ls_jsz+'新的借书证号码是'+@ls_jsznew
raiserror(@ls_mess,16,1)
3)执行一个修改借书证编号的语句,观察步骤二创建触发器执行后的效果。
4)触发器u_jsz修改了操作日志流水登记表(d_ccdj表)中借书证号码,尝试在这个基础上同时修改图书明细表(d_tsmx)中的借书证号码。
5)在实验报告中描述触发器执行后效果。
实验12游标与事务
实验目的:
1)在T_SQL语言中,使用游标遍历记录
2)了解控制事务一致性必要性和方法
实验要求:
根据提示的试验过程进行试验,达到下述目标,并进行调试。
实验过程:
恢复tsxt数据库
一:
游标
创建一个游标,将借书证表中,王姓同学的姓名中的姓和名,分别进行显示,比如“王强”,显示为:
“该同学姓为:
王,名为强”
二:
事务
1)使用begintransaction语句定义一个名为test_tran的事务。
2)在事务中,对表d_cbsxx的出版社名称中包含“浙江”字样的出版社名称进行修改,修改出版社名称为“testchange”。
3)运行上述语句,观察语句是否已经执行。
4)在managementstudio中的查询分析器中,清除刚才的语句,输入新的回滚语句:
“rollbacktransactiontest_tran”。
5)使用select查询d_cbsxx中,有无出版社名称为“testchange”的出版社,为什么?
三:
事务和锁
1)打开一个managementstudio中的查询分析器(命名为分析器1),使用begintransaction语句定义一个名为test_tran的事务。
2)在事务中,对表d_cbsxx的出版社名称中包含“浙江”字样的出版社名称进行修改,修改出版社名称为“testchange”。
3)运行上述语句,观察语句是否已经执行。
4)打开一个新的managementstudio中的查询分析器(命名为分析器2),运行select*fromd_cbsxx语句,观察执行效果。
为什么会发生这样的情况?
5)再次打开一个新的managementstudio中的查询分析器(命名为分析器3),运行sp_lock,观察系统中的锁的情况。
6)在分析器1中,运行committransactiontest_tran,运行的同时,观察分析器2中的查询语句的运行状态变化。
7)在分析器3中,重新运行sp_lock,观察执行结果的变化,为什么会发生这样的变化?
实验13数据库实训
实验目的:
掌握VB与数据库的连接