光盘出租管理系统.doc
- 文档编号:234268
- 上传时间:2022-10-07
- 格式:DOC
- 页数:26
- 大小:1.69MB
光盘出租管理系统.doc
《光盘出租管理系统.doc》由会员分享,可在线阅读,更多相关《光盘出租管理系统.doc(26页珍藏版)》请在冰豆网上搜索。
光盘出租管理系统
一.需求分析 1
1.课题背景及意义 1
2.业务需求 2
3.数据流程图 2
4.数据需求 2
二、概念结构设计 3
1.光盘信息E-R图 3
2.顾客信息 3
3.管理员信息 4
4.总的E-R图 6
三、逻辑结构设计 6
四.物理结构设计 7
1.光盘信息 7
2.顾客信息 7
3.管理员信息 7
4.租借信息 8
5.归还信息 8
1.数据库Cmanagementsystem(光盘出租管理系统)的建立 8
2.创建基本表 9
3.数据初始化 12
4.单表查询 14
5.数据查询,更新及触发器,存储过程的创建 17
6.创建存储过程 21
7.超期处理 23
六.课程设计小结 24
一.需求分析
1.课题背景及意义
光盘出租管理系统是一个光盘出租商管理不可缺少的部分,它对于光盘出租商是至关重要的。
光盘租赁系统提供充足的信息和快捷的查询手段。
一直以来人们使用传统人工方式管理光盘的基本档案,这种管理方式有很多缺点:
效率低,保密性差。
另外时间一长,将产生大量的文件和数据,对于查找,更新和维护都带了不少的困难。
随着科学技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它已进入社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对光盘租赁进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速,可靠性高,存储量大,保密性好,寿命长,成本低等。
这些优点能极大地提到光碟档案管理的效率,也是光碟租赁管理科学化,正规化的重要条件
2.业务需求
业务流程图如下:
丢失赔偿单
归怀记录单
超期罚单
归还处理
顾客
更新
租赁记录单
租赁处理
归还清单
更新后的数据库
缺货通知
合法租赁清单
管理员
查询结果
查询清单
查询需求
3.数据流程图
抽象出系统有哪些具体功能要求即功能模型。
(1)注册。
信用户通过填写新信息即可成为新用户。
(2)租赁。
账户余额足够的情况下可以租赁光盘。
(3)注册会员。
成为会员后有更多的查询和租赁的权限。
(4)充值。
用户通过充值可以更新自己的账户及借光盘。
(5)评价建议。
通过用户反馈来更新了解信息。
4.数据需求
需要处理的主要数据对象:
1.顾客信息:
登陆账号、登录密码、个人基本信息等
2.租借记录:
起租日期、归还日期、租赁人编号、归还状态等
3.账户管理:
账户余额、已缴押金等
数据流程图如下:
二、概念结构设计
1.光盘信息E-R图
借出量
库存量
类别
出版日期
光盘作者
光盘名字
光盘编号
出版社
光盘信息
2.顾客信息
3.管理员信息
4.总的E-R图
三、逻辑结构设计
将E-R图转换成等价的关系模式为:
顾客(顾客编号,姓名,性别,年龄,电话,地址,注册日期,账户 余额,罚款金额,超出天数,借光盘数)
光盘(光盘编号,光盘名字,作者,出版社,出版日期,类别,借出 数量,库存量)
管理员(管理员编号,姓名,性别,年龄,电话,地址)
租借(租借编号,顾客编号,光盘编号,租借费用,租借天数, 租借日期)
归还信息(光盘编号,归还日期,管理员编号)
四.物理结构设计
1.光盘信息
2.顾客信息
3.管理员信息
4.租借信息
5.归还信息
五.数据实施和维护
1.数据库CDmanagementsystem(光盘出租管理系统)的建立
createdatabaseCDmanagesystem
onprimary
(name=CDmanagementsystem,
filename='D:
\CDmanagementsystem.mdf',
size=10MB,
maxsize=20MB,
filegrowth=2MB
)
logon
(
name='CDmanage',
filename='D:
\CDsystem.ldf',
size=6MB,
maxsize=20MB,
filegrowth=20MB
)
go
2.创建基本表
(1)管理员employee信息
(2)光盘CD信息
(3)顾客customer信息
altertablecustomer
addCcountintnotnull
添加语句:
altertablecustomer
addCcountintnotnull
(4)租借rental信息
(5)归还信息:
3.数据初始化
(1)将管理员信息加入表中:
(2)将光盘信息加入表中:
(3)将顾客信息添加到表中
(4)将租借信息插入表中:
insertintorental
values('2689574','387659','2013569',30,'2013/07/08',3.0);
insertintorental
values('2689575','268495','2013578',45,'2013-06-25',4.5);
insertintorental
values('2689576','387658','2013601',35,'2013/06/24',3.5);
insertintorental
values('2689577','387657','2013602',40,'2013/06/29',4.0);
insertintorental
values('2689578','387656','2013603',45,'2013/06/25',4.5);
insertintorental
values('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>0)
假设归还光盘编号为‘2013578’和‘2013569’代码
insertintoCreturn
values('2013569','387659','2013/8/7');
insertintoCreturn
values('2013578','268495','2013-08-9');
CD中的数据:
Customer中的数据:
Rental中的数据:
(3)在rental表中建立一个插入触发器(rental1),当借光盘操作时,要改变customer表的部分属性,已借书数加1,账户余额减去相应的租借费用。
createtriggerrentalCD
onrental
afterinsert
as
updatecustomer
setCcount=Ccount+1,
accountbalance=accountbalance-1
(selectrental.rentalfee
fromrental,Creturn
whereCreturn.CDid=rental.CDid)
假设光盘编号为‘2013569’代码
执行前customer中的数据为
执行后customer的数据为
(4)在rental表中建立一个插入触发器(rentalCD2),当借光盘操作时,要改变CD表的部分属性,库存量减1,借出量加1。
createtriggerrentalCD2
onrental
afterinsert
as
updateCD
setinventory=inventory-1,lending=lending+1
whereCD.CDidin
(selectCD.CDid
fromCD,rental
whereCD.CDid=rental.CDid)
6.创建存储过程
(1)创建一个按照光盘类型查找该类型光盘的所有信息的存储过程
createproceduresort
@类别char(10)
as
select*
fromCD
wheresort=@类别
执行存储过程查询歌曲光盘信息
(2)创建一个存储过程根据顾客编号,查询出顾客借光盘信息
createprocedurecustomerid
@顾客编号char(10)
as
selectcustomer.customerid顾客编号,customername顾客姓名,
Ccount已借光盘,accountbalance账户余额,CD.CDid光盘编号,
CDname光盘名字,rentaldate租借日期,rentaldays租借天数,rentalfee租借费用
from
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 光盘 出租 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)