VCD租售管理系统.docx
《VCD租售管理系统.docx》由会员分享,可在线阅读,更多相关《VCD租售管理系统.docx(33页珍藏版)》请在冰豆网上搜索。
VCD租售管理系统
重庆理工大学数据库实验报告
VCD租售管理系统
课程:
数据库课程设计
题目:
vcd租售管理系统
班级:
107030702
学号:
10703070226
姓名:
许永顺
重庆理工大学
计算机科学与工程学院
2009年11月
“数据库建模技术”实验需求文字
根据以下开发VCD出售租借连锁店管理系统需求调查文字,完成实验一至实验五。
市内某家大型VCD出售租借连锁店有许多员工,每个员工只能服务于一家租借店;每个员工有工号、姓名、性别、年龄、政治面貌等属性;每家店日常工作主要有:
租借、归还、逾期罚款等(租借人首先要办理租借卡,租借卡分为年卡、月卡和零租卡)。
具体操作流程如下:
(1)出售租借:
根据购买人或租借人提供的VCD租借单,查阅库存,如果有,则办理销售或租借并登记销售(记录销售记录单号、购买人卡号、购买日期、VCD编码、数量、单价,经办员工号)或租借流水帐(记录租借记录单号、租借人卡号、租借日期、VCD编码、数量、归还日期,经办员工号);如果没有相应的VCD,则可根据购买人或租借人的要求办理预约登记(记录预约登记单号、购买或租借卡卡号、VCD编码、数量、经办员工号),当有VCD时,及时通知购买人或租借人。
(2)归还:
根据租借人提供的所还VCD,检查VCD是否完好,如果完好,则办理归还登记(记录归还单号、租借人卡号、归还日期、VCD编码、数量、经办员工号),如果有损坏的VCD,办理赔偿登记(记录赔偿单号、租借卡卡号、赔偿日期、赔偿VCD编码、数量、金额,经办员工号),并把赔偿通知单通知给租借人。
(3)逾期罚款通知:
查询逾期未还的VCD,及时通知租借人,并进行相应的罚款登记(记录罚款单号、租借卡卡号、罚款日期、罚款金额、经办员工号)。
实验一需求分析
(一)——业务流程调查
一、实验目的:
掌握需求分析的步骤和业务流程调查的方法;掌握应用Powerbuilder绘制BPM模型
二、学时:
6H(课内4H,课外2H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,Visio
四、实验内容:
根据该VCD连锁店的业务需求调查文字,利用PD绘制该VCD连锁店管理系统的BPM模型。
五、实验结果:
【请在此粘贴你的BPM,地方不够可换页】
销售租借流程图
归还流程图
逾期罚款流程图
六、思考题
1、数据库设计为什么需要进行详细的需求分析?
答:
需求分析是整个数据库设计过程的基础,是最困难、最耗费时间的一步。
作为“地基”的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。
需求分析做得不好,甚至会导致整个数据库设计返工重做。
2、需求分析的目标是什么?
其调查步骤是什么?
常用的调查方法有哪些?
答:
需求分析的目标是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。
调查用户的具体步骤:
(1)调查组织机构情况。
包括了解该组织的部门组成情况、各部门的职责等,为分析信息流做准备。
(2)调查各部门的业务活动情况。
包括了解各个部门输入是使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这是调查的重点。
(3)在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求、处理要求、安全性与完整性要求,这是调查的又一个重点。
(4)确定新系统的边界。
对前面的调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。
由计算机完成功能就是新系统应该实现的功能。
调查方法:
(1)跟班作业;
(2)开调查会;(3)请专人介绍;(4)询问;(5)设计调查表请用户填写;(6)查阅记录。
3、数据库设计的特点是什么?
答:
一、数据库建设的基本规律:
三分技术七分管理,十二分基础数据。
二、结构(数据)设计和行为(处理)设计相结合
数据库设计应该和应用系统设计相结合。
实验二需求分析
(二)——数据流程调查
一、实验目的:
掌握需求分析的步骤和数据流程调查的方法;掌握应用VISIO绘制数据流程图(DFD),掌握数据流程图分层次的绘制方法。
掌握编写数据字典的方法和步骤。
二、实验学时:
8H(课内6H,课外2H)
三、实验软件平台:
Windows2k或WindowsXP,Visio
四、实验内容:
1、掌握数据流程调查和分析的方法;
2、利用Visio绘制分层次的数据流程图并在绘制的过程中建立标准、统一的编码;
3、根据该VCD连锁店的业务需求调查文字以及第一次作业所完成的内容,利用VISIO,绘制该连锁店管理系统的DFD模型。
4、编写详细正确的数据字典。
五、实验步骤
1、数据流程图的层次绘制方法复习
数据流程图分层次绘制模型:
数据流程图是按照“自顶向下、逐层细化”的原则进行,在绘制整个数据流程图的过程中,一定要建立标准、统一的编码,并建立相应的数据字典。
数据流程图的详细绘制过程可参见上课过程中的PPT案例(陪送系统数据流程图)。
2、根据该VCD连锁店的业务需求调查文字以及第一次作业所完成的内容,利用VISIO,绘制该连锁店管理系统的DFD模型。
六、实验结果:
1、绘制数据流程图【请在此粘贴你的DFD,数据流程图中的数据对象一定要编号,地方不够可换页】
VCD租售连锁店管理系统的数据流程图顶层图(一层)
用户信息登录流程图(二层)
销售或租借流程图(二层)
还书数据流程图(二层)
逾期罚款流程图(二层)
2、编写相应的正确的数据字典
表3-1数据流的描述
数据流编号
数据流名称
简述
数据流
来源
数据流
去向
数据流组成
数据流量
高峰流量
D1
用户信息
用户购买租借提交的信息
用户
申请处理
卡号+姓名+用户基本信息
不限
不限
D2
销售租借
VCD店提供销售租借服务
VCD店
提供服务
销售租借记录单号+租借人卡号+VCD编码等
不限
不限
D3
归还
VCD店处理用户归还申请
VCD店
处理归还申请
归还记录单号+租借人卡号+VCD编码+归还日期等
不限
不限
D4
逾期罚款
用户逾期罚款并通知用户
VCD店
处理逾期罚款
记录罚款单号+租借卡号+VCD编码+罚款日期
不限
不限
表3-2处理逻辑的描述
处理逻辑编号
处理逻辑名称
简述
输入的数据流
处理
输出的数据流
处理频率
P1
用户申请
申请购买租借提交的信息
D1
持卡者可以直接购买租借,若无需申请
D2
P2
销售租借
提供销售租借VCD服务
D2
销售租借登记并出库更新
D3
P3
归还
处理归还VCD请求
D3
归还登记,并入库更新
D4
表3-3数据存储的描述
数据存储
编号
数据存储
名称
简述
数据存储组成
相关联的处理
F1
用户信息
购买租借提交的用户信息
卡号+姓名+用户基本信息
P1、P2、P3
F2
库存台帐
销售租借归还记录
记录单号+购买人卡号+VCD编码等
P2.1、P2.2、P3
表3-4外部实体的描述
外部实体编号
外部实体名称
简述
外部实体组成
输入的数据流
输出的数据流
E1
用户
购买租借归还VCD的人
卡号+姓名+基本信息
D1
D2
E2
员工
提供销售租归还服务的人
记录单号+租借人卡号+VCD编码等
D2
D3
表4-5数据项的定义
数据项
编号
数据项名称
简述
类型及宽度
取值范围
I1
销售租借
VCD店提供销售租借服务
Char(8)
I2
归还VCD
VCD店处理用户归还VCD
Char(8)
I3
逾期罚款
对逾期用户罚款
Char(8)
七、思考题
1、数据流程图的特点有哪三方面?
答:
数据流程图的特点:
(1)层次性;
(2)抽象性;
(3)概括性。
2、数据字典的内容和作用是什么?
答:
数据字典的内容:
数据项、数据结构、数据流、数据存储、处理过程。
数据字典的作用:
数据流图表达了数据和处理的关系。
实验三概念结构设计
一、实验目的:
掌握概念结构模型绘制的方法和步骤,掌握利用PD绘制和管理CDM的方法。
二、实验学时:
6H(课内3H,课外3H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,Visio
四、实验内容:
1、掌握概念结构设计的方法;
2、利用PD绘制并管理CDM;
3、根据该VCD连锁店的业务需求调查文字以及前两次作业所完成的内容,利用PD,设计该连锁店管理系统合理的CDM模型。
五、实验结果
【请在此粘贴你的CDM,注意实体的正确抽象以及数据项、域、主标识和各类联系的正确表达】
六、思考题
1、什么是数据库的概念结构?
式述其特点和设计策略。
答:
概念结构设计就是将需求分析得到的用户需求抽象为信息结构即概念模型的过程。
概念结构设计的特点:
(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键;
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;
(4)易于向关系、网状、层次等各种数据模型转换。
概念结构设计的策略:
(1)自顶向下。
(2)自底向上。
(3)逐步扩张。
(4)混合策略。
2、什么叫数据抽象?
答:
所谓抽象就是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确的加以描述。
一般有三种抽象:
(1)分类
(2)聚集
(3)概括
3、数据库概念结构设计的重要性和设计步骤
答:
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
4、为什么要视图集成?
有哪些方法?
答:
各子系统的分E-R图设计好以后,下一步就是要将所有的分E-R图综合成一个系统的总E-R图。
一般来说,视图集成可以有两种方式:
(1)多个分E-R图一次集成。
(2)逐步集成,用累加的方式一次集成两个分E-R图。
实验四逻辑结构设计
一、实验目的:
掌握概念结构模型向逻辑模型转换的规则方法;掌握在PD环境中把CDM正确转换为PDM,并对PDM进行必要的管理和修改。
二、实验学时:
6H(课内3H,课外3H)
三、实验软件平台:
Windows2k或WindowsXP,Powerduilder9.5,Visio
四、实验内容:
1、掌握概念结构模型向逻辑模型转换的规则方法;
2、掌握在PD环境中把CDM正确转换为PDM,并对PDM进行必要的管理和修改;
3、掌握利用创建PDM的四种方法;
4、根据该VCD连锁店的业务需求调查文字以及前三次实验所完成的内容,利用PD,设计该连锁店管理系统合理的PDM模型。
五、实验结果
【请在此粘贴你的PDM,注意对联系所转换来的独立表,要添加合理的非主属性字段】
六、思考题
1、什么是数据库的逻辑结构设计?
试述其设计步骤
答:
逻辑结构设计:
对数据在计算机中的组织形式设计。
设计步骤:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
2、试述把E-R图转换为关系模型的转换规则。
答:
转换一般遵循如下规则:
(1)一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
(2)一个1:
n联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。
(3)一个M:
N联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本事的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
(5)具有相同码的关系模式可以合并。
实验五数据库的物理设计与实施
一、实验目的:
掌握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脚本和数据库文件。
五、实验结果
【请在此粘贴你的生成数据库的SQL脚本,并注意保留生成数据库的SQL脚本和数据库文件。
】
/*==============================================================*/
/*DBMSname:
SybaseASAnywhere9*/
/*Createdon:
2009-11-69:
10:
30*/
/*==============================================================*/
ifexists(select1fromsys.sysforeignkeywhererole='FK_记录归还单_办理归还_员工')then
altertable记录归还单
deleteforeignkeyFK_记录归还单_办理归还_员工
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_记录归还单_归还VCD_用户信息')then
altertable记录归还单
deleteforeignkeyFK_记录归还单_归还VCD_用户信息
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_记录归还单_归还入库_VCD')then
altertable记录归还单
deleteforeignkeyFK_记录归还单_归还入库_VCD
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_赔偿罚款单_VCD受损或逾期未_VCD')then
altertable赔偿罚款单
deleteforeignkeyFK_赔偿罚款单_VCD受损或逾期未_VCD
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_赔偿罚款单_办理罚款赔偿_员工')then
altertable赔偿罚款单
deleteforeignkeyFK_赔偿罚款单_办理罚款赔偿_员工
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_赔偿罚款单_赔偿_用户信息')then
altertable赔偿罚款单
deleteforeignkeyFK_赔偿罚款单_赔偿_用户信息
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_销售租借单_出售出租_VCD')then
altertable销售租借单
deleteforeignkeyFK_销售租借单_出售出租_VCD
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_销售租借单_办理销售租借预约_员工')then
altertable销售租借单
deleteforeignkeyFK_销售租借单_办理销售租借预约_员工
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_销售租借单_购买租借预约_用户信息')then
altertable销售租借单
deleteforeignkeyFK_销售租借单_购买租借预约_用户信息
endif;
ifexists(
select1fromsys.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='VCD_PK'
andt.table_name='VCD'
)then
dropindexVCD.VCD_PK
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.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='用户信息_PK'
andt.table_name='用户信息'
)then
dropindex用户信息.用户信息_PK
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='归还VCD_FK'
andt.table_name='记录归还单'
)then
dropindex记录归还单.归还VCD_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.sysindexi,sys.systablet
wherei.table_id=t.table_id
andi.index_name='VCD受损或逾期未还_FK'
andt.table_name='赔偿罚款单'
)then
dropindex赔偿罚款单.VCD受损或逾期未还_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='赔偿_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.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='办理销售租借预约_FK'
andt.table_name='销售租借单'
)then
dropindex销售租借单.办理销售租借预约_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(
select1from