华拓科技网
您的当前位置:首页光盘出租管理系统

光盘出租管理系统

来源:华拓科技网
光盘出租管理系统

一.需求分析................................................................................................................ 2

1.课题背景及意义................................................................................................. 2 2.业务需求............................................................................................................. 2 3.数据流程图......................................................................................................... 2 4. 数据需求........................................................................................................... 3 二、概念结构设计........................................................................................................ 3

1.光盘信息E-R图................................................................................................. 3 2.顾客信息............................................................................................................. 4 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(光盘出租管理系统)的建立

create database CDmanagesystem on primary

(name=CDmanagementsystem ,

filename='D:\\CDmanagementsystem.mdf', size=10MB,

maxsize=20MB, filegrowth=2MB ) log on (

name='CDmanage',

filename='D:\\CDsystem.ldf', size=6MB, maxsize=20MB, filegrowth=20MB ) go

2.创建基本表

(1)管理员employee信息

(2)光盘CD信息

(3)顾客customer信息

alter table customer add Ccount int not null

添加语句:

alter table customer add Ccount int not null

(4)租借rental信息

(5)归还信息:

3.数据初始化

(1)将管理员信息加入表中:

(2)将光盘信息加入表中:

(3)将顾客信息添加到表中

(4)将租借信息插入表中:

insert into rental

values('26574','387659','2013569',30,'2013/07/08' ,3.0); insert into rental

values('26575','268495','2013578',45,'2013-06-25' ,4.5); insert into rental

values('26576','387658','2013601',35,'2013/06/24' ,3.5); insert into rental

values('26577','387657','2013602',40,'2013/06/29 ',4.0); insert into rental

values('26578','387656','2013603',45,'2013/06/25',4.5); insert into rental

values('26579','387655','2013604',20,'2013/07/25',2.0);

4.单表查询

(1)在employee表中查询:

select * from employee

(2)在customer表中查询:

select * from customer

(3)在CD表中查询:

select * from CD

(4)在rental表中查询:

select * from rental

(5)在Creturn中查询:

select * from creturn

(6)查询罚款金额大于0的顾客信息:

select *

from customer where finest>0

(7)查询顾客一借光盘的天数 :

以2013/8/2为当前日期,则语句为:

select c1.customerId,customername,

datediff( day,rentaldate,'2013/8/2') as borrowdays from customer c1,rental r1

where c1.customerid=r1.customerid

5.数据查询,更新及触发器,存储过程的创建 (1)创建触发器

在表中建立一个插入触发器(returnCD),功能:当还光盘操作时,要在rental记录中添加一条记录,同时删除相应光盘的租借记录。

(2)在Creturn表中再建立一个插入触发器(returnCD2),功能:当

还光盘操作时,同时对相应表CD做相应的改动,inventory的属性:库存量加1,借出量减1,lending的属性:已借书数减1。 SQL语句为:

create trigger returnCD2 on Creturn

after insert as

update CD

set inventory=inventory+1,lending=lending-1 where CD.CDId in (select CD.CDId from CD,Creturn

where CD.CDId=Creturn.CDId and CD.lending>0) update customer set Ccount=Ccount-1

where customer.customerid in (select customer.customerid from customer,Creturn

where customer.customerid=creturn.customerid and customer.Ccount>0)

假设归还光盘编号为‘2013578’和‘2013569’代码

insert into Creturn

values('2013569','387659','2013/8/7'); insert into Creturn

values('2013578','268495','2013-08-9');

CD中的数据:

Customer中的数据:

Rental中的数据:

(3)在rental表中建立一个插入触发器(rental1),当借光盘操作时,要改变customer表的部分属性,已借书数加 1,账户余额减去相应的租借费用。

create trigger rentalCD on rental after insert as

update customer

set Ccount=Ccount+1,

accountbalance=accountbalance-1 (select rental.rentalfee from rental,Creturn

where Creturn.CDid=rental.CDid)

假设光盘编号为‘2013569’代码

执行前customer中的数据为

执行后customer的数据为

(4)在rental表中建立一个插入触发器(rentalCD2),当借光盘操作

时,要改变CD表的部分属性,库存量减 1,借出量加 1。

create trigger rentalCD2 on rental after insert as

update CD

set inventory=inventory-1,lending=lending+1 where CD.CDid in (select CD.CDid from CD,rental

where CD.CDid=rental.CDid)

6.创建存储过程

(1)创建一个按照光盘类型查找该类型光盘的所有信息的存储过程

create procedure sort @类别 char(10) as

select * from CD

where sort=@类别

执行存储过程查询歌曲光盘信息

(2)创建一个存储过程根据顾客编号,查询出顾客借光盘信息

create procedure customerid @顾客编号char(10) as

select customer.customerid 顾客编号,customername 顾客姓名, Ccount 已借光盘, accountbalance 账户余额,CD.CDid 光盘编号,

CDname 光盘名字,rentaldate 租借日期,rentaldays 租借天数,rentalfee 租借费用 from rental,CD,customer where rental.CDid=CD.cdid

and rental.customerid=customer.customerid and customer.customerid=@顾客编号

查找顾客编号为‘387655’代码

触发器:

7.超期处理

(1)对已借光盘的顾客进行查询借光盘是否超期(说明:当前的日期为2013年9月1日计算

select customer.customerid 顾客编号,customer.customername 顾客姓名, CD.CDId 光盘编号,CDname 光盘名字,rentaldate 租借日期,

datediff(day,rentaldate,2013/9/1)-rentaldays 超出天数 from CD,customer,rental

where rental.CDid=CD.CDid and rental.customerid=customer.customerid and datediff(day,rentaldate,2013/9/1)>=rentaldays

对照rental表:

(2)对超过天数的租借者进行罚款,将信息插入到customer表,按照一天0.2元的比例来罚款

select rental.customerid ,rental.CDid,rentaldate, 0.2*datediff(day,rentaldate,2013/9/1)-rentaldays from rental

(2)where datediff(day,rentaldate,2013/9/1) >= rentaldays

六.课程设计小结

这次的课程设计真的做起来困难重重,深刻体会到做一个软件,里面需要的

很多知识我们没有接触过,去图书馆找书的时候发现,我们学的仅仅是皮毛,还有很多东西需要我们去发掘,就算是借一本书看完它,我们还是会发现还有很多知识没有吃透,这需要我们不断的实践,不断地自学习,不断地发现问题去思考问题。从需求分析阶段不断地搜索资料,想充分了解自己所做的课题在客户或者公司中的需求,由于画数据流图等等软件设计流程做起来很生疏,翻阅课本和网上查资料,总算整了一个像样点的需求分析,但是也不知道是不是正确,根据数据流图,不断修改需求。根据设计的大概模式,展开一步步的模块构造。经过不断地测试,不断地改进,其中还是发现了不少问题,第一次做这些工作,没有任何经验,甚至无从下手,还是很谢谢老师和同学的帮忙,从中也学到了一些代码的写法,为什么要这样写,通过和同学的讨论,找到一些书本上没有的方法,如何数据绑定等等,这些东西虽然小,但是可以体现整个数据库水平,其实并不需要建多少数据库的表,写多少复杂的存储过程,是不是用了数据库函数,触发器等等,但是至少要弄明白这些东西如果操作,清晰思路才能将功能分清晰。经过一段时间的学习与实践,使该系统具备了:添加、修改、删除、浏览、查询、输出信息,实现了根据用户需求查看等功能。作为一个光盘出租管理系统,本系统所提供的功能的确太少了一些,仅仅只实现了一些基本的功能,有很多地方还有待扩展和改良。人如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,从学习这个专业,到以后做这方面的工作都需要不断地去学习去实践,这次实践可以给我们敲一个警钟,在困难面前要勇于尝试,这是这次课程设计给我的最大感想。

数据库系统原理课程设计

课题名称:姓 名:班 级:学 号:指导老师:

2013年 光盘出租管理系统 刘欣茹 信管1101 311109030106 刘小燕 12 月 30 日

因篇幅问题不能全部显示,请点此查看更多更全内容