光盘出租管理系统Word格式文档下载.doc
- 文档编号:1458473
- 上传时间:2023-04-30
- 格式:DOC
- 页数:26
- 大小:1.69MB
光盘出租管理系统Word格式文档下载.doc
《光盘出租管理系统Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《光盘出租管理系统Word格式文档下载.doc(26页珍藏版)》请在冰点文库上搜索。
效率低,保密性差。
另外时间一长,将产生大量的文件和数据,对于查找,更新和维护都带了不少的困难。
随着科学技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它已进入社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对光盘租赁进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速,可靠性高,存储量大,保密性好,寿命长,成本低等。
这些优点能极大地提到光碟档案管理的效率,也是光碟租赁管理科学化,正规化的重要条件
2.业务需求
业务流程图如下:
丢失赔偿单
归怀记录单
超期罚单
归还处理
顾客
更新
租赁记录单
租赁处理
归还清单
更新后的数据库
缺货通知
合法租赁清单
管理员
查询结果
查询清单
查询需求
3.数据流程图
抽象出系统有哪些具体功能要求即功能模型。
(1)注册。
信用户通过填写新信息即可成为新用户。
(2)租赁。
账户余额足够的情况下可以租赁光盘。
(3)注册会员。
成为会员后有更多的查询和租赁的权限。
(4)充值。
用户通过充值可以更新自己的账户及借光盘。
(5)评价建议。
通过用户反馈来更新了解信息。
4.数据需求
需要处理的主要数据对象:
1.顾客信息:
登陆账号、登录密码、个人基本信息等
2.租借记录:
起租日期、归还日期、租赁人编号、归还状态等
3.账户管理:
账户余额、已缴押金等
数据流程图如下:
二、概念结构设计
1.光盘信息E-R图
借出量
库存量
类别
出版日期
光盘作者
光盘名字
光盘编号
出版社
光盘信息
2.顾客信息
3.管理员信息
4.总的E-R图
三、逻辑结构设计
将E-R图转换成等价的关系模式为:
顾客(顾客编号,姓名,性别,年龄,电话,地址,注册日期,账户 余额,罚款金额,超出天数,借光盘数)
光盘(光盘编号,光盘名字,作者,出版社,出版日期,类别,借出 数量,库存量)
管理员(管理员编号,姓名,性别,年龄,电话,地址)
租借(租借编号,顾客编号,光盘编号,租借费用,租借天数, 租借日期)
归还信息(光盘编号,归还日期,管理员编号)
四.物理结构设计
1.光盘信息
4.租借信息
5.归还信息
五.数据实施和维护
1.数据库CDmanagementsystem(光盘出租管理系统)的建立
createdatabaseCDmanagesystem
onprimary
(name=CDmanagementsystem,
filename='
D:
\CDmanagementsystem.mdf'
size=10MB,
maxsize=20MB,
filegrowth=2MB
)
logon
(
name='
CDmanage'
\CDsystem.ldf'
size=6MB,
filegrowth=20MB
)
go
2.创建基本表
(1)管理员employee信息
(2)光盘CD信息
(3)顾客customer信息
altertablecustomer
addCcountintnotnull
添加语句:
(4)租借rental信息
(5)归还信息:
3.数据初始化
(1)将管理员信息加入表中:
(2)将光盘信息加入表中:
(3)将顾客信息添加到表中
(4)将租借信息插入表中:
insertintorental
values('
2689574'
'
387659'
2013569'
30,'
2013/07/08'
3.0);
2689575'
268495'
2013578'
45,'
2013-06-25'
4.5);
2689576'
387658'
2013601'
35,'
2013/06/24'
3.5);
2689577'
387657'
2013602'
40,'
2013/06/29'
4.0);
2689578'
387656'
2013603'
2013/06/25'
4.5);
2689579'
387655'
2013604'
20,'
2013/07/25'
2.0);
4.单表查询
(1)在employee表中查询:
select*fromemployee
(2)在customer表中查询:
select*fromcustomer
(3)在CD表中查询:
select*fromCD
(4)在rental表中查询:
select*fromrental
(5)在Creturn中查询:
select*fromcreturn
(6)查询罚款金额大于0的顾客信息:
select*
fromcustomer
wherefinest>
0
(7)查询顾客一借光盘的天数:
以2013/8/2为当前日期,则语句为:
selectc1.customerId,customername,
datediff(day,rentaldate,'
2013/8/2'
)asborrowdays
fromcustomerc1,rentalr1
wherec1.customerid=r1.customerid
5.数据查询,更新及触发器,存储过程的创建
(1)创建触发器
在表中建立一个插入触发器(returnCD),功能:
当还光盘操作时,要在rental记录中添加一条记录,同时删除相应光盘的租借记录。
(2)在Creturn表中再建立一个插入触发器(returnCD2),功能:
当还光盘操作时,同时对相应表CD做相应的改动,inventory的属性:
库存量加1,借出量减1,lending的属性:
已借书数减1。
SQL语句为:
createtriggerreturnCD2
onCreturn
afterinsert
as
updateCD
setinventory=inventory+1,lending=lending-1
whereCD.CDIdin
(selectCD.CDId
fromCD,Creturn
whereCD.CDId=Creturn.CDIdandCD.lending>
0)
updatecustomer
setCcount=Ccount-1
wherecustomer.customeridin
(selectcustomer.customerid
fromcustomer,Creturn
wherecustomer.customerid=creturn.customerid
andcustomer.Ccount>
假设归还光盘编号为‘2013578’和‘2013569’代码
insertintoCreturn
2013/8/7'
);
2013-08-9'
CD中的数据:
Customer中的数据:
Rental中的数据:
(3)在rental表中建立一个插入触发器(rental1),当借光盘操作时,要改变customer表的部分属性,已借书数加1,账户余额减去相应的租借费用。
createtriggerrentalCD
onrental
setCcount=Ccount+1,
accountbalance=accountbalance-1
(selectrental.rentalfee
fromrental,Creturn
whereCreturn.CDid=rental.CDid)
假设光盘编号为‘2013569’代码
执行前customer中的数据为
执行后customer的数据为
(4)在rental表中建立一个插入触发器(rentalCD2),当借光盘操作时,要改变CD表的部分属性,库存量减1,借出量加1。
createtriggerrentalCD2
setinventory=inventory-1,lending=lending+1
whereCD.CDidin
(selectCD.CDid
fromCD,rental
whereCD.CDid=rental.CDid)
6.创建存储过程
(1)创建一个按照光盘类型查找该类型光盘的所有信息的存储过程
createproceduresort
@类别char(10)
fromCD
wheresort=@类别
执行存储过程查询歌曲光盘信息
(2)创建一个存储过程根据顾客编号,查询出顾客借光盘信息
createprocedurecustomerid
@顾客编号char(10)
selectcustomer.customerid顾客编号,customername顾客姓名,
Ccount已借光盘,accountbalance账户余额,CD.CDid光盘编号,
CDname光盘名字,rentaldate租借日期,rentaldays租借天数,rentalfee租借费用
fromrental,CD,customer
whererental.CDid=CD.cdid
andrental.customerid=customer.customeridandcustomer.customerid=@顾客编号
查找顾客编号为‘387655’代码
触发器:
7.超期处理
(1)对已借光盘的顾客进行查询借光盘是否超期(说明:
当前的日期为2013年9月1日计算
selectcustomer.customerid顾客编号,customer.customername顾客姓名,
CD.CDId光盘编号,CDname光盘名字,rentaldate租借日期,
datediff(day,rentaldate,2013/9/1)-rentaldays超出天数
fromCD,customer,rental
whererental.CDid=CD.CDidandrental.customerid=customer.customerid
anddatediff(day,rentaldate,2013/9/1)>
=rentaldays
对照rental表:
(2)对超过天数的租借者进行罚款,将信息插入到customer表,按照一天0.2元的比例来罚款
selectrental.customerid,rental.CDid,rentaldate,
0.2*datediff(day,rentaldate,2013/9/1)-rentaldays
fromrental
(2)wheredatediff(day,rentaldate,2013/9/1)>
=rentaldays
六.课程设计小结
这次的课程设计真的做起来困难重重,深刻体会到做一个软件,里面需要的很多知识我们没有接触过,去图书馆找书的时候发现,我们学的仅仅是皮毛,还有很多东西需要我们去发掘,就算是借一本书看完它,我们还是会发现还有很多知识没有吃透,这需要我们不断的实践,不断地自学习,不断地发现问题去思考问题。
从需求分析阶段不断地搜索资料,想充分了解自己所做的课题在客户或者公司中的需求,由于画数据流图等等软件设计流程做起来很生疏,翻阅课本和网上查资料,总算整了一个像样点的需求分析,但是也不知道是不是正确,根据数据流图,不断修改需求。
根据设计的大概模式,展开一步步的模块构造。
经过不断地测试,不断地改进,其中还是发现了不少问题,第一次做这些工作,没有任何经验,甚至无从下手,还是很谢谢老师和同学的帮忙,从中也学到了一些代码的写法,为什么要这样写,通过和同学的讨论,找到一些书本上没有的方法,如何数据绑定等等,这些东西虽然小,但是可以体现整个数据库水平,其实并不需要建多少数据库的表,写多少复杂的存储过程,是不是用了数据库函数,触发器等等,但是至少要弄明白这些东西如果操作,清晰思路才能将功能分清晰。
经过一段时间的学习与实践,使该系统具备了:
添加、修改、删除、浏览、查询、输出信息,实现了根据用户需求查看等功能。
作为一个光盘出租管理系统,本系统所提供的功能的确太少了一些,仅仅只实现了一些基本的功能,有很多地方还有待扩展和改良。
人如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,从学习这个专业,到以后做这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,在困难面前要勇于尝试,这是这次课程设计给我的最大感想。
数据库系统原理课程设计
课题名称:
光盘出租管理系统
姓名:
刘欣茹
班级:
信管1101
学号:
311109030106
指导老师:
刘小燕
2013年12月30日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 光盘 出租 管理 系统