数据库系统概论实验设计答案.docx
《数据库系统概论实验设计答案.docx》由会员分享,可在线阅读,更多相关《数据库系统概论实验设计答案.docx(40页珍藏版)》请在冰豆网上搜索。
数据库系统概论实验设计答案
数据库系统概论
实验报告册
:
momo
学号:
教师:
实验一需求分析
(一)——业务流程调查
一、实验目的:
掌握需求分析的步骤和业务流程调查的方法;掌握应用Powerbuilder绘制BPM模型
二、学时:
6H(课4H,课外2H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,Visio
四、实验容:
根据该VCD连锁店的业务需求调查文字,利用PD绘制该VCD连锁店管理系统的BPM模型。
五、实验结果:
出售租借:
根据购买人或租借人提供的VCD租借单,查阅库存,如果有,则办理销售或租借并登记销售或租借流水帐;如果没有相应的VCD,则可根据购买人或租借人的要求办理预约登记,当有VCD时,及时通知购买人或租借人。
归还:
根据租借人提供的所还VCD,检查VCD是否完好,如果完好,则办理归还登记,如果有损坏的VCD,办理赔偿登记。
并把赔偿通知单通知给租借人。
逾期罚款通知:
查询逾期未还的VCD,及时通知租借人,并进行相应的罚款登记。
六、思考题
1、数据库设计为什么需要进行详细的需求分析?
答:
需求分析简单地说就是分析用户的要求。
需求分析是设计数据库的起点,需求分析的结果是不是准确的反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是不是合理使用情况。
2、需求分析的目标是什么?
其调查步骤是什么?
常用的调查方法有哪些?
答:
(1)需求分析的目标:
1.通过详细调查现实世界要处理的对象,充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求。
2.在此基础上确定新系统的功能。
新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
(2)调查步骤:
1.了解组织机构。
2.调查部门的数据输入、处理、输出。
(调查重点之一)
3.在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。
(调查重点之二)
4.确定新系统的边界
(3)常用的调查方法:
⑴跟班作业
⑵开调查会
⑶请专人介绍
⑷询问
⑸设计调查表请用户填写
⑹查阅记录
3、数据库设计的特点是什么?
答:
特点一:
三分技术,七分管理,十二分基础数据。
特点二:
结构(数据)设计和行为(处理)设计相结合。
实验二需求分析
(二)——数据流程调查
一、实验目的:
掌握需求分析的步骤和数据流程调查的方法;掌握应用VISIO绘制数据流程图(DFD),掌握数据流程图分层次的绘制方法。
掌握编写数据字典的方法和步骤。
二、实验学时:
8H(课6H,课外2H)
三、实验软件平台:
Windows2k或WindowsXP,Visio
四、实验容:
1、掌握数据流程调查和分析的方法;
2、利用Visio绘制分层次的数据流程图并在绘制的过程中建立标准、统一的编码;
3、根据该VCD连锁店的业务需求调查文字以及第一次作业所完成的容,利用VISIO,绘制该连锁店管理系统的DFD模型。
4、编写详细正确的数据字典。
五、实验步骤
1、数据流程图的层次绘制方法复习
数据流程图分层次绘制模型:
数据流程图是按照“自顶向下、逐层细化”的原则进行,在绘制整个数据流程图的过程中,一定要建立标准、统一的编码,并建立相应的数据字典。
数据流程图的详细绘制过程可参见上课过程中的PPT案例(陪送系统数据流程图)。
2、根据该VCD连锁店的业务需求调查文字以及第一次作业所完成的容,利用VISIO,绘制该连锁店管理系统的DFD模型。
六、实验结果:
1、绘制数据流程图
说明:
这是总的vcd租借系统。
说明:
这是租售卡办理流程
说明:
vcd出租流程
说明:
这是预约流程
说明:
上图是归还流程
说明:
这是逾期还款流程
2、编写相应的正确的数据字典
表3-1数据流的描述
数据流编号
数据流名称
简述
数据流
来源
数据流
去向
数据流组成
数据流量
高峰流量
F1
租借申请
对vcd的租借的一个申请
客户
客户身份审合
购买人卡号、购买日期、VCD编码、数量、单价
1000条/月
1500条/月
F2
赔偿记录
对vcd损坏进行赔偿
客户
赔偿数据库
租借人卡号、租借日期、VCD编码、数量、归还日期,经办员工号
1000条/月
1500条/月
F3
VCD出租信息
出租信息
客户
Vcd审合
租借记录单号、租借人卡号、租借日期、VCD编码、数量、归还日期,经办员工号
1000条/月
1500条/月
F4
VCD归还信息
归还信息
Vcd审合结果
商店
租借记录单号、租借人卡号、租借日期、VCD编码、数量、归还日期,经办员工号
1000条/月
1500条/月
表3-2处理逻辑的描述
处理逻辑编号
处理逻辑名称
简述
输入的数据流
处理
输出的数据流
处理频率
P1.3.2
查阅库存
对库存进行查阅
F1
接收查询信息,并作回复
F11
100条/次
P1.3.3
办理销售登记
办理销售登记
F11
接收信息,并且登记
F13
100条/次
P1.3.5
预约答复
预约信息的答复
F12,F15
接收信息,处理答复客户
答复
100条/次
表3-3数据存储的描述
数据存储
编号
数据存储
名称
简述
数据存储组成
相关联的处理
D1
VCD出租库
对vcd进行出租
购买人卡号、购买日期、VCD编码、数量、单价
P1
D2
Vcd归还数据库
对vcd进行归还
租借记录单号、租借人卡号、租借日期、VCD编码、数量、归还日期,经办员工号
P2
表3-4外部实体的描述
外部实体编号
外部实体名称
简述
外部实体组成
输入的数据流
输出的数据流
S1
客户
Vcd租借用户
客户
没有
租借请求
S2
商店
Vcd租借老板
商店
F4
事不是同意租借
表4-5数据项的定义
数据项
编号
数据项名称
简述
类型及宽度
取值围
I1
购买人卡号
购买vcd的人的卡号
字符型,8位
“00000000”-“99999999”
I2
租借记录单号
租借了vcd后,所产生的租借单号
字符型,8位
“00000000”-“99999999”
I3
租借人卡号
已经租借了人的卡号
字符型,8位
“00000000”-“99999999”
七、思考题
1、数据流程图的特点有哪三方面?
答:
数据流程图是一个分层的概念模型,分为三个层次,分别是总体图、中层数据流图、细节图
2、数据字典的容和作用是什么?
答:
(1)数据字典的用途
数据字典是系统中各类数据描述的集合。
(2)数据字典的容
数据项
数据结构
数据流
数据存储
处理过程
实验三概念结构设计
一、实验目的:
掌握概念结构模型绘制的方法和步骤,掌握利用PD绘制和管理CDM的方法。
二、实验学时:
6H(课3H,课外3H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,Visio
四、实验容:
1、掌握概念结构设计的方法;
2、利用PD绘制并管理CDM;
3、根据该VCD连锁店的业务需求调查文字以及前两次作业所完成的容,利用PD,设计该连锁店管理系统合理的CDM模型。
五、实验结果
图例说明:
说明:
vc的总流程
说明:
vcd租借
说明:
vcd归还
说明:
vcd赔偿
说明:
逾期还款
六、思考题
1、什么是数据库的概念结构?
式述其特点和设计策略。
答:
(1)概念结构的特点
1.能真实、充分地反映现实世界
2.易于理解
3.易于更改
4.易于向关系、网状、层次等各种数据模型转换
(2)概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定
(3)设计策略:
自顶向下、自底向上、逐步扩、混合策略。
2、什么叫数据抽象?
答:
数据抽象是对实际的人、物、事、概念进行人为处理,抽取所关心的共同特性,策略飞本质的细节,并把这些特性用各种概念精确地加以描述。
3、数据库概念结构设计的重要性和设计步骤
答:
步骤:
一般先画出组织的局部E-R图,然后将其合并,在此基础进行优化和美化。
概念结构的重要性:
概念数据模型,主要在系统开发的数据库设计阶段使用,是按照用户的观点来对数据和信息进行建模,利用实体关系图来实现.它描述系统中的各个实体以及相关实体之间的关系,是系统特性和静态描述.数据字典也将是系统进一步开发的基础.
4、为什么要视图集成?
有哪些方法?
答:
视图集成是消除各分E-R图中的冲突是合并分E-R图的主要工作与关键所在。
方法:
(1)多个分E-R图一次集成。
(2)逐步集成,用累加的方式一次集成两个分E-R图。
5、试述在PD中设计数据项并把数据项关联到某一实体的操作步骤
答:
6、试述在PD中设计域并把它关联到某一实体属性上的操作步骤
实验四逻辑结构设计
一、实验目的:
掌握概念结构模型向逻辑模型转换的规则方法;掌握在PD环境中把CDM正确转换为PDM,并对PDM进行必要的管理和修改。
二、实验学时:
6H(课3H,课外3H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,Visio
四、实验容:
1、掌握概念结构模型向逻辑模型转换的规则方法;
2、掌握在PD环境中把CDM正确转换为PDM,并对PDM进行必要的管理和修改;
3、掌握利用创建PDM的四种方法;
4、根据该VCD连锁店的业务需求调查文字以及前三次实验所完成的容,利用PD,设计该连锁店管理系统合理的PDM模型。
五、实验结果
实验五数据库的物理设计与实施
一、实验目的:
掌握PD中利用PDM生成物理数据库的操作步骤;掌握在PD环境中把PDM正确转换为数据库文件和生成数据库文件的SQL脚本。
二、实验学时:
4H(课2H,课外2H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,MSSQLServer2000或Anywhere
四、实验容:
1、掌握PD中利用PDM生成物理数据库的操作步骤;
2、掌握在PD环境中把PDM正确转换为数据库文件和生成数据库文件的SQL脚本。
3、根据第四次实验所得到的PDM模型,完成该VCD连锁店管理系统数据库的物理设计,保留生成数据库的SQL脚本和数据库文件。
五、实验结果
/*==============================================================*/
/*DBMSname:
mohaoying*/
/*Createdon:
2012/4/2512:
53:
44*/
/*==============================================================*/
ifexists(select1fromsys.sysforeignkeywhererole='FK_ASSOCIAT_ASSOCIATI_商店管理员')then
altertableAssociation_4
deleteforeignkeyFK_ASSOCIAT_ASSOCIATI_商店管理员
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_ASSOCIAT_ASSOCIATI_逾期罚款通知')then
altertableAssociation_4
deleteforeignkeyFK_ASSOCIAT_ASSOCIATI_逾期罚款通知
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_同意租借_同意租借_商店管理员')then
altertable同意租借
deleteforeignkeyFK_同意租借_同意租借_商店管理员
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_同意租借_同意租借2_租借流水帐')then
altertable同意租借
deleteforeignkeyFK_同意租借_同意租借2_租借流水帐
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_没有库存_没有库存_商店管理员')then
altertable没有库存
deleteforeignkeyFK_没有库存_没有库存_商店管理员
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_没有库存_没有库存2_预约登记')then
altertable没有库存
deleteforeignkeyFK_没有库存_没有库存2_预约登记
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_登记_登记_商店管理员')then
altertable登记
deleteforeignkeyFK_登记_登记_商店管理员
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_登记_登记2_归还登记')then
altertable登记
deleteforeignkeyFK_登记_登记2_归还登记
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_租借_租借_客户')then
altertable租借
deleteforeignkeyFK_租借_租借_客户
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_租借_租借2_商店管理员')then
altertable租借
deleteforeignkeyFK_租借_租借2_商店管理员
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='Association_5_FK'
andt.table_name='Association_4'
)then
dropindexAssociation_4.Association_5_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='Association_4_FK'
andt.table_name='Association_4'
)then
dropindexAssociation_4.Association_4_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='Association_4_PK'
andt.table_name='Association_4'
)then
dropindexAssociation_4.Association_4_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='Association_4'
andtable_typein('BASE','GBLTEMP')
)then
droptableAssociation_4
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='同意租借2_FK'
andt.table_name='同意租借'
)then
dropindex同意租借.同意租借2_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='同意租借_FK'
andt.table_name='同意租借'
)then
dropindex同意租借.同意租借_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='同意租借_PK'
andt.table_name='同意租借'
)then
dropindex同意租借.同意租借_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='同意租借'
andtable_typein('BASE','GBLTEMP')
)then
droptable同意租借
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='商店管理员_PK'
andt.table_name='商店管理员'
)then
dropindex商店管理员.商店管理员_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='商店管理员'
andtable_typein('BASE','GBLTEMP')
)then
droptable商店管理员
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='客户_PK'
andt.table_name='客户'
)then
dropindex客户.客户_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='客户'
andtable_typein('BASE','GBLTEMP')
)then
droptable客户
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='归还登记_PK'
andt.table_name='归还登记'
)then
dropindex归还登记.归还登记_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='归还登记'
andtable_typein('BASE','GBLTEMP')
)then
droptable归还登记
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='没有库存2_FK'
andt.table_name='没有库存'
)then
dropindex没有库存.没有库存2_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='没有库存_FK'
andt.table_name='没有库存'
)then
dropindex没有库存.没有库存_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='没有库存_PK'
andt.table_name='没有库存'
)then
dropindex没有库存.没有库存_PK
endif;
ifexists(
select1fromsys.systable
wheretable_name='没有库存'
andtable_typein('BASE','GBLTEMP')
)then
droptable没有库存
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='登记2_FK'
andt.table_name='登记'
)then
dropindex登记.登记2_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='登记_FK'
andt.table_name='登记'
)then
dropindex登记.登记_FK
endif;
ifexists(
select1fromsys.sysindexi,sys.systa