数据库系统原理实验指导书v20DB2.docx
- 文档编号:16774320
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:31
- 大小:120.50KB
数据库系统原理实验指导书v20DB2.docx
《数据库系统原理实验指导书v20DB2.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验指导书v20DB2.docx(31页珍藏版)》请在冰点文库上搜索。
数据库系统原理实验指导书v20DB2
《数据库系统原理》
实验指导书
授课教师:
郭文明
实验指导教师:
杨嫒,郭文明
教学对象:
本科生
开课时间:
春季
北京邮电大学软件学院
2016年2月
⏹
前言
数据库技术是计算机科学的重要组成部分,数据库技术以及数据库的语言也正毅日新月异的速度发展。
对数据库技术相关知识的学习和掌握是当代大学生大一个基本要求。
《数据库系统原理》课程是软件学院企业运营信息化方向重要的专业课程之一。
随着数据库技术、特别是关系型数据库技术的广泛应用,以及企业等组织信息化进程的加速发展,应用系统中的数据正成为各种组织的重要资源,甚至是核心竞争力。
这也对数据的管理和使用提出了更多、更高的要求。
在广阔的应用背景下,数据库凸现成为一门实践性较强的专业技术,对数据库技术的学习要求将课堂教学与实践环节紧密结合起来。
经过几年的建设与发展,学院已经初步具备了较为完善的实验硬件环境。
学院的办学方针决定了学院的课程设置与业界的主流技术紧密联系在一起。
在与业界主导企业的各种合作中,学院方便得到了多种当前流行的数据库管理信息系统软件。
在现有的培养计划基础上,努力提高《数据库系统原理》课程的实验水平,全面增强学生的实践动手能力,将《数据库系统原理》课程建设成为高质量的实验规范化课程,是近期《数据库系统原理》实验课程的目标。
在本《数据库系统原理》实验指导书的编写过程中,总结了该课程实验的宝贵经验,结合数据库技术新出现的变化和发展,在现有实验条件的基础上,大幅调整了实验内容的安排,加强了综合性实验的比例。
希望本科学生通过本实验指导书的训练,能够深化对数据库技术基本知识的认识,增强自身的动手实践能力,培养出一定的实践素养,为将来的工作和科研活动打下牢固的实践基础。
本实验指导书的编写仓促,编者水平有限,欢迎广大教育界同仁提出宝贵意见和建议。
⏹
目录
1.前言2
2.目录3
3.实验要求4
4.实验准备5
5.实验一IBMDB2数据库管理系统的安装及认知6
5.1.实验目的6
5.2.实验内容6
5.3.实验环境6
5.4.实验步骤6
5.5.注意事项8
6.实验二关系数据库的基本SQL练习9
6.1.实验目的9
6.2.实验内容9
6.3.实验环境9
6.4.实验步骤9
6.5.注意事项10
7.实验三关系数据库的高级SQL练习11
7.1.实验目的11
7.2.实验内容11
7.3.实验环境11
7.4.实验步骤11
8.实验四数据库模式的设计13
8.1.实验目的13
8.2.实验内容13
8.3.实验环境13
8.4.实验步骤13
9.实验五数据库的备份与恢复15
9.1.实验目的15
9.2.实验内容15
9.3.实验环境15
9.4.实验步骤15
10.实验六数据库的安全性30
10.1.实验目的30
10.2.实验内容30
10.3.实验环境30
10.4.实验步骤30
11.参考书33
⏹实验要求
《数据库系统原理》实验课程的安排主要配合《数据库系统原理》课程的教学大纲的要求,根据教学的进展适时进行实验,以期达到让学生理论与实践相结合的目的。
在《数据库系统原理》的课程实验过程中,要求学生做到:
(1)按照实验指导书内容,认真完成实验内容,就实验可能出现的情况做出思考和分析。
(2)仔细观察上机和实践操作时出现的各种现象,及时解决实验中可能出现的各种问题。
(3)认真书写实验报告。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到。
如有事不能出席,所缺实验一般不补。
实验的验收将分为两个部分。
第一部分是操作演示,包括检查程序运行和即时提问。
第二部分是提交实验报告,每个实验都应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计成绩。
希望同学们抓紧时间,合理安排,认真完成。
⏹实验准备
《数据库系统原理》实验课以IBMDB2关系型数据库管理系统为基础展开。
DB2关系型数据库管理系统在当前业界的高端具有非常广泛的应用,并且正在从高端走向低端。
DB2数据库管理系统是业界最符合标准的关系型数据库之一,而且提供了非常详实的培训指导书,熟悉DB2关系型数据库管理系统必将对学生将来的工作和科研提供巨大的帮助。
⏹实验一IBMDB2数据库管理系统的安装及认知
1.1.实验目的
DB2是IBM公司的数据库产品,通过本次实验熟悉DB2产品,了解DB2中的相关术语,基本掌握DB2提供的应用和管理工具。
1.2.实验内容
了解IBMDB2v8.1数据库管理系统的安装
掌握IBMDB2v8.1数据库管理系统的基本使用
1.3.实验环境
普通PC、Windows系列操作系统、IBMDB2v8.1数据库管理系统
1.4.实验步骤
1、进入Windows2003Server操作系统,修改机器名称为自己的学号。
2、安装DB2UDBEnterpriseServerEdition。
在安装过程中在要求输入密码,请将密码统一设置为rjxy。
3、在操作系统上创建新用户inst1,它的密码是inst1,使其成为Administrators组的成员。
在操作系统上创建一个组adm1,使用户inst1成为组adm1的成员;同时也使用户db2admin成为组adm1的成员。
4、注销administrator用户,用inst1用户登录系统。
5、创建instance。
选择开始->程序->IBMDB2->CommandLineTools->CommandWindow。
键入命令db2ilist,查看输出。
然后键入命令db2icrtinst1,再接着键入db2ilist,查看输出。
用exit命令退出CommandWindow。
6、设置DB2的environment。
a.在控制面板->系统->高级->环境变量窗口中,编辑系统变量中的DB2INSTANCE项,将其变量值改变为INST1。
b.在控制面板->管理工具->服务,打开服务窗口。
将DB2-INST1的启动类型改为自动,并启动它。
c.再次选择开始->程序->IBMDB2->CommandLineTools->CommandWindow打开一个CommandWindow,键入命令db2setDB2COMM=TCPIP–IINST1。
以使你的实例inst1支持TCPIP通信。
7、熟悉DatabaseManagerConfigurationParameters。
选择开始—程序->IBMDB2->GeneralAdministrationTools->ControlCenter。
在窗口的左侧树状结构中找到INST1实例。
如果INST1没有作为一个instance被列出来,那么在instance上面点击右键,选择添加,键入INST1将其添加进来。
在INST1上点击右键,选择ConfigureParameters,可以看到INST1的CFGfile。
将SYSADM_GROUP参数的值设置为ADM1。
在INST1上点击右键,选择SetupCommunicationsoption,键入servicename(portnumber)为55000。
在INST1上点击右键,stoptheinstance,然后starttheinstance。
8、创建数据库
在ControlCenter中,在INST1上点击右键,选择Create->Database,弹出Wizard。
在NameWindow中,将数据库命名为MUSICDB。
点击完成,创建数据库。
在CommandCenter中,执行命令connecttoMUSICDB,然后执行getconnectionstate。
在ControlCenter中,在MUSICDB上点击右键,浏览一下MUSICDB的ConfigureParameters。
将maxlocks的值改为20,将num_freqvalues的值改为12。
在CommandCenter中,执行命令listtablespaces查看在MUSICDB中默认创建的表空间。
9、创建表空间
DB2中的表空间有两种类型,分为SMS和DMS。
SMS是由系统的文件管理器来控制存储空间,DMS是由数据库管理器来控制存储空间。
在ControlCenter中,展开数据库MUSICDB,在表空间上点击右键,选择创建。
创建向导开始后,在Name页,键入新建表空间名字dms01;在Spacemanagement页,选择Database-managedspace(highperformance);在Containers页,点击添加,设置容器大小为106×4KB页,然后在容器文本框输入c:
\dms\dms01后确定;在读/写页设置数据块大小为4×4KB页;最后点击完成创建新的表空间。
下面通过命令中心完成其它表空间的创建,首先对命令中心进行设置。
打开命令中心后,选择命令中心->选项,点击执行页,确认两个复选框都选中了。
下面通过运行脚本命令文件CRTBLSP创建表空间,在命令中心点击脚本页,然后选择脚本->导入,导入文件CRTBLSP,执行脚本创建表空间。
现在用listtablespaces查看一下目前数据库musicdb下面的表空间。
10、熟悉DB2相关工具,主要包括控制中心和命令行处理器、命令中心等。
1.5.注意事项
IBMDB2的用户模式与操作系统的用户管理之间的关系。
⏹实验二关系数据库的基本SQL练习
1.6.实验目的
SQL是关系数据库的标准语言,已经成为关系数据库管理系统的核心。
结合数据库系统原理教学的理论知识,通过实验让学生熟悉基本SQL的用法,掌握SQL语言的数据操纵等基本功能。
1.7.实验内容
在第一次实验的基础上,在IBMDB2v8.1数据库管理系统中创建自己的数据库模式,并导入对应的数据
实验SQL语句操作数据库表结构中的数据,获得预期的结果。
1.8.实验环境
普通PC、Windows系列操作系统、IBMDB2v8.1数据库管理系统
1.9.实验步骤
1、实验所需要的五个数据表模式如下,按照下面给出的表定义在DB2控制中心里创建它们:
11、使用IBMDB2的“命令行工具-命令窗口”建库并插入基本数据;
12、使用IBMDB2的导入/加载操作,将已有数据导入到IBMDB28.1数据库;
13、按照指导书完成下面的SQL练习:
a.查询全体职工的职工号和姓名
b.查询全体职工的记录
c.查询全体职工的姓名和出生日期
d.在职工表中查询有哪些职工担任了职务,并列出职工的职工号
e.查询全体主管的姓名
f.查询全体助理的职工号
g.查询所有工资在20000以下的职工的姓名和出生日期
h.查询工资在10000-20000之间的职工的姓名、所担任职务和出生日期
i.查询工资不在10000-20000之间的职工的姓名、职工号和性别
j.查询担任经理或助理职务员工的姓名和性别
k.查询不担任经理或助理职务员工的姓名和性别
l.查询fname为white的职员的详细信息
m.查询fname中第二个字母为“o”或“e”的职员的姓名和职工号
n.查询所有fame不是“white”的职工姓名
o.查询职工号的最后一位不是2、3、5的职工的所有信息
p.查询无电话号码的owner的编号和姓名对职工按收入多少进行降序排序
q.查询所有担任助理职务员工的员工号和收入,查询结果按收入降序排列
r.统计员工总人数
s.统计担任经理职务员工的人数
t.计算所有担任助理职务员工的考试总收入之和
u.统计每个职务的员工人数,列出职务名称和人数
v.查询每种职务的员工人数和平均收入
w.查询与Annbeech担任同一个职务的职工的职工号
x.将职工号为“SA9”的职工的收入改为15000
y.删除所有收入低于10000的员工的记录
1.10.注意事项
SQL语言的基本语法与使用技巧
⏹实验三关系数据库的高级SQL练习
1.11.实验目的
结合数据库系统原理教学的理论知识,通过实验让学生熟悉高级SQL的用法,掌握SQL语言的数据定义,触发器等高级功能。
1.12.实验内容
在IBMDB2v8.1数据库管理系统中创建自己的数据库模式、表、视图等数据库对象;
练习数据库触发器的定义和使用。
1.13.实验环境
普通PC、Windows系列操作系统、IBMDB2v8.1数据库管理系统
1.14.实验步骤
使用触发器提供账户透支保护
一个银行客户有一个储蓄账户和一个支票账户。
当客户从支票账户中取款的金额超过支票账户的余额时,如果储蓄账户的余额能够抵消产生的透支,则发生一次自动转账,即自动从客户的储蓄账户将透支的金额转账到支票账户;否则,拒绝该操作。
列名
数据类型
是否空
其它
SSN
Varchar(18)
NO
Name
Varchar(20)
NO
SavingBalance
Decimal(7,2)
NO
非负数
CheckingBalance
Decimal(7,2)
NO
非负数
要求:
在DB2命令行处理器中,用SQL完成如下操作:
创建数据库BNKDB
连接到数据库BNKDB
创建表ACCT
向表中插入两条记录
(‘111111111111111111’,’张三’,1500.00,1000.00)
(‘222222222222222222’,’李四’,500.00,4000.00)
触发器创建完成后,执行测试语句:
Updateacctsetcheckingbalance=-500
wheressn=’111111111111111111’;
Updateacctsetcheckingbalance=-1000
wheressn=’222222222222222222’;
在控制中心中,创建触发器OVERDRAFT,在对ACCT表的CHECKINGBALANCE字段执行UPDATE操作之前激活触发器完成自动转账。
要求保存创建触发器的SQL语句。
参考触发条件:
NEWROW.CHECKINGBALANCE<0
参考触发器内容为:
Declareoveragedecimal(7,2);
Setoverage=(NEWROW.CHECKINGBALANCE*(-1));
Ifoverage>OLDROW.SAVINGBALANCE
then
SIGNALSQLSTATE‘70001’(‘OverdraftProtectionUnsuccessful’);
Else
setNEWROW.SAVINGBALANCE=OLDROW.SAVINGBALANCE-overage,NEWROW.CHECKINGBALANCE=0;
Endif;
补充:
SIGNAL语句的用法
SIGNAL语句可以回滚触发事件和触发器造成的变化,并返回SQLCODE。
如,
SIGNALSQLSTATE‘70001’(‘OverdraftProtectionUnsuccessful’);
⏹实验四数据库模式的设计
1.15.实验目的
1.了解E-R图的基本概念和根据数据需求描述抽象出E-R图并将其转换为数据库逻辑模式进而实现数据库中的表和视图。
2.通过进行数据库表的建立操作,熟悉并掌握Powerdesigner数据库表的建立方法,理解关系数据库表的结构,巩固SQL标准中关于数据库表的建立语句。
3.通过对Powerdesigner中建立、维护视图的实验,熟悉Powerdesigne中对视图的操作方法和途径,理解和掌握视图的概念。
1.16.实验环境
普通PC、Windows系列操作系统、IBMDB2v8.1数据库管理系统
1.17.实验步骤
⏹1针对以下需求信息,尽可能全面地给出各个实体的属性和实体之间的系。
在线考试系统需求信息如下:
在线考试系统是关于一门课程的授课教师安排自己的学生在线参加各种考试的应用,如果阶段性考试,期中考试和期末考试等。
在线考试系统要求有用户的登录和登出。
在线考试系统主要包括用户管理、试题管理、试卷管理和考试管理功能。
需要实现教师输入试题,从试题生成试卷;学生参加考试获取试卷,提交答案和给出考试成绩等主要逻辑功能。
系统的用户包括教师、学生角色,一个用户有且只有一种角色。
鉴于在线考试的客观条件限制,试题完全采用单项选择形式。
试题有所属知识点、内容、分值、备选答案和唯一正确答案等属性组成。
课程的知识点是确定的,可以扩展,一道试题只能考察一个知识点。
教师录入各种试题构成题库,并根据考察的知识点不同生成试卷,相同知识点的试题只能在一张试卷中出现一次,试卷由试卷标题和一定数量(即知识点的数量)的试题组成。
试卷生成后,教师指定某次考试使用的试卷,学生参加考试使用统一的试卷,考试信息还包含考试标题、任教老师、考试时间。
学生登录后,可以参加考试并在提交答案后立刻得到自己的考试成绩,也可以查看自己的考试历史记录。
教师登录后可以查看学生的成绩。
⏹2将E-R图输入PowerDesigner形成概念模型
⏹3使用PowerDesigne将输入的E-R图转换成数据库物理模型
⏹4使用PowerDesigne将输入的数据库物理模型转化为生成数据库中的表和视图的脚本
⏹5执行SQl脚本,生成表和视图
⏹6成功后,查看生成的表和视图的情况
.4.实验结果
实验报告内容必须包括E-R图和关系模型。
⏹实验五数据库的备份与恢复
1.18.实验目的
在课程理论知识学习的基础上,使用DB2数据库管理系统工具对数据库的备份恢复操作有直接的体会。
1.19.实验内容
在了解DB2数据库管理系统中的数据库备份、恢复机制的基础上,进行有关DB2数据库管理系统的备份和恢复操作。
1.20.实验环境
普通PC、Windows系列操作系统、IBMDB2v8.1数据库管理系统
1.21.实验步骤
理解故障出现的原因以及如何从故障中恢复是非常重要的。
以下部分将模拟各种不同的故障类型,并介绍如何从故障中恢复系统。
场景1.整个数据库意外删除和损坏
本场景将展示如何从完全数据库故障中恢复。
遇到这种情况的原因可能是数据库意外删除或受到破坏,也可能是人为错误或硬件故障造成的不一致性。
在这些情况中,可以通过应用上次完全数据库备份对数据库进行恢复。
表1.恢复场景中所使用的配置
组件
描述
操作系统
WindowsXPServicePack2
DB2版本和等级
DB2UDBEnterpriseServerEdition(ESE)V8.2.6fixpak13/DB2V9.1ESEfixpak1
数据库名称
TESTDB1(在控制中心创建)
步骤1.执行完全数据库备份
要执行完全脱机数据库备份,可以使用以下命令:
∙TERMINATE
∙DB2FORCEAPPLICATIONALL
∙DB2BACKUPDATABASEtestdb1TOc:
\testdb1\backup
需要注意备份文件名称中生成的ID。
它类似于:
20071211154219。
这个ID只是备份映像的时间戳,恢复过程中需要使用它。
步骤2.模拟故障
要模拟故障场景,可以完全删除数据库:
∙TERMINATE
∙DB2FORCEAPPLICATIONALL
∙DB2DROPDATABASEtestdb1
现在,尝试连接数据库:
∙DB2CONNECTTOtestdb1
将报告以下错误,它提示找不到此数据库:
Error:
SQL1013NDatabasealiasnameorDatabasename"testdb1"couldnotfound.
步骤3.创建一个新的数据库
要开始恢复过程,首先创建一个与丢弃数据库名称相同的数据库:
∙DB2CREATEDATABASEtestdb1
查看数据库目录的内容,确保数据库创建成功且目录正确:
∙DB2LISTDBDIRECTORY
步骤4.恢复数据库
恢复数据库备份映像。
在本例中,我使用时间戳20071211154219恢复备份映像:
∙DB2RESTOREDATABASEtestdb1FROMc:
\testdb1\backupTAKENAT20071211154219INTOtestdb1
将返回以下报警消息
SQL2523W:
Restoringtoanexistingdatabasethatisdifferentfromthedatabaseonthebackupimage.Thetargetdatabasewillbeoverwrittenbythebackupversion.Theroll-forwardrecoverylogsassociatedwiththetargetdatabasewillbeoverwritten.
按Y键继续运行。
该操作将把数据库备份恢复到前一步骤中创建的数据库。
成功恢复映像之后,数据库将与备份时的数据库完全一致。
步骤5.连接到数据库
尝试连接到数据库:
∙DB2CONNECTTOtestdb1
可能会返回以下错误消息:
SQL1117NAconnectiontooractivationofdatabase"testdb1"cannotbemadebecauseofRoll-ForwardPendingSQLSTATE=57019.
出现错误的原因可能是,必须使用某些日志文件进行一致性检查。
使用以下命令将数据库恢复到一致状态:
∙DB2ROLLFORWARDDATABASEtestdb1COMPLETE
再次尝试连接到数据库:
∙DB2CONNECTTOtestdb1
步骤6.数据库和对象验证
验证之前的对象仍然存在且可用,比如说:
oDB2LISTTABLESPACESSHOWDETAIL
oDB2LISTTABLES
上一条命令应该会提示,所有表空间均处于正常状态并且可以访问容器。
所有表及表中的数据集合应该与执行备份时的状态一致。
场景2.表空间容器意外丢弃或损坏的表空间容器
本场景将展示当一个或多个表空间容器丢失或损坏时如何恢复数据库系统。
出现此情况的原因可以是人为错误(比如说,某个用户删除了某个目录或文件)或数据文件损坏问题。
表2.场景2中所使用的系统配置
组件
描述
操作系统
WindowsXPServicePack2
DB2版本和等级
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 实验 指导书 v20DB2