碟片出租后台数据库设计.docx
- 文档编号:27922643
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:12
- 大小:45.93KB
碟片出租后台数据库设计.docx
《碟片出租后台数据库设计.docx》由会员分享,可在线阅读,更多相关《碟片出租后台数据库设计.docx(12页珍藏版)》请在冰豆网上搜索。
碟片出租后台数据库设计
综合性、设计性实验报告
实验课程名称碟片出租系统的后台数据库设计
专业计算机科学与技术班级03
学号姓名马普原
指导教师及职称_王华_
开课学期2015至2016学年第二学期
设计时间6月12日-6月24日
设计题目
碟片出租系统的后台数据库设计
1.实验目的:
本课程设计的目的是为了让学生能够全面了解数据库应用系统的整个开发过程,逐步掌握系统开发的以下相关技术:
(1)巩固数据库理论知识,熟悉一种具体的数据库管理系统(例如:
SQLServer)的使用方法。
(2)掌握针对特定应用环境数据库的设计。
(3)综合使用SQLServer中数据库、表、视图、索引、触发器、存储过程的创建使用方法。
(4)体会运用软件工程的设计思想进行软件系统开发的过程与方法。
2.软硬件环境:
软件环境:
Visualstudio2010,SQLServerManagement2005
系统环境:
Windows7及以上版本操作系统
硬件环境:
硬盘:
50G,内存:
2GCPU:
2.5GHZ;
3.实验设计简述:
3.1研究内容
碟片出租管理系统将碟片的整个采购、租借、归还的全过程记录在数据库中,根据真实音像店的具体应用情况来进行该系统的设计。
1.提供对音像店业务和光盘信息管理的支持,包括:
采购光盘、光盘租借及归还、光盘信息统计管理等等。
2.为租借者和员工全面、准确得介绍音像店相关信息、光盘剩余信息、光盘归还信息及各类光盘更新情况。
3.2研究目的
1.实现光盘的借还管理。
入库登记时自动修改现货和库存,借、还时自动修改现货数量;
2.实现光盘类型及信息的管理,实现光盘的入库管理;
3.建立音像店员工外借数据库,方便员工对租借者的有效管理;
4.实现音像店对新光盘入库,不可使用光盘注销的简单处理。
4.系统需求分析与功能设计
4.1需求分析
根据不同租借者音响店光盘租借管理系统的使用情况及需求不同,分别从租借者、音像店管理员、采购员、系统维护员和店长的角度对该数据库进行需求分析,具体内容如下:
(1)租借者
租借者在音像店使用到音响店光盘租借管理系统的情况大致分四种,第一,查询所需要的光盘资料,以方便找到光盘存放位置;第二,查询自己的租借记录,以知道自己当前所借光盘,及光盘的租借情况,如是否在租借期内或已逾期须及时归还;第三,租借光盘,输入光盘编号及副本编号后可进行光盘租借;第四,归还或续借已借光盘,归还光盘时,系统相应消除该租借者的当前租借信息中的该条记录,若逾期返还,应做出相应处理,如扣除逾期罚款,满足续借要求的光盘可以续借,根据租借者类别光盘应还日期做相应延期处理。
对于第一需求,租借者登录后进入光盘查询界面查询光盘信息,当租借者输入所需查询光盘的名称或编号后,系统显示出符合查询条件的所有的光盘的信息,包括光盘名称、光盘编号、导演、光盘类别、可借数量、购入日期等。
对于第二需求,租借者登录租借查询界面后可查询自己的租借情况,系统显示出该租借者当前租借数量,逾期租借数量,并逐条列出每个租借光盘的名称、租借时间及应归还时间,及光盘当前租借状态,如正常租借、续期租借、逾期租借。
对于第三需求,租借者登录后进入光盘租借界面,输入光盘的编号及副本编号,在系统确定该光盘可租借后方可租借,租借日期为当日日期,应还日期根据租借者类别不同在租借日期上加上可租借天数方可得到,须注意,只有系统标明“可借”的光盘才可租借;租借成功后,相应租借明细添加到当前租借信息中,相应副本的光盘状态根据光盘租借情况做相应变化,光盘的可借数量减1,相应租借者的当前租借数量和历史租借数量分别加1。
对于第四需求,租借者登陆后可归还光盘,输入光盘编号及副本编号后对光盘的归还进行处理,处理完毕后,系统显示光盘编号、光盘名称、光盘租借日期、光盘归还如期及光盘归还结果,光盘归还结果主要有正常归还及逾期归还两种,当逾期归还时,系统根据逾期期限对租借者扣除相应罚款并记录至逾期归还次数中。
光盘归还后,系统自动将该个光盘的租借信息从该租借者的当前租借信息中删除,并加入系统的历史租借信息中。
对于第五需求,租借者登录后进入租借者个人信息界面,可查询到自己的租借者编号、租借者姓名、联系电话及租借数量相关信息,进入修改密码界面后,在输入旧密码及新密码,且重复输入新密码确认无误后可修改密码。
(2)音像店管理员
音像店管理员主要对音像店的光盘进行光盘副本状况查询、光盘信息修改、清点、下架、销毁等工作。
因而音像店管理员在租借者权限的基础上还可通过系统查询全馆光盘每个副本的情况,包括光盘所有基个信息及每个外借副本的租借者及该租借者的相关信息;当有光盘信息例如库存数量和可借数量与实际情况不符的时候,可对系统中的光盘信息进行相应修改;当有光盘不可使用不再接受租借时,可将光盘下架,下架后虽然可以查找到光盘信息但不可租借浏览;当仓库中已下架光盘无须再保留时,可对光盘进行销毁操作,销毁后在光盘查询系统中无法再查到该光盘的信息,但可在已销毁表中查找到该光盘的基个信息和销毁数量、销毁时间、销毁人员。
(3)采购人员
采购人员主要负责光盘的采购和新光盘上架工作,当采购员购买到指定数量某光盘后,该光盘的采购工作完成,采购员可对该光盘进行上架操作,采购员负责将光盘基个信息录入系统,系统根据录入信息对光盘副本进行编号,并根据上架时可租借数量对光盘的光盘状况进行可借和不可借标注。
(4)系统维护人员
系统维护人员主要负责光盘租借系统的租借者维护工作,即负责租借者的增删及信息修改,进行密码初始化操作。
(5)店长
店长拥有整个系统的最大权限,可对所有信息进行查询,并可修改采购员的采购单,增删查改管理员信息,增删查改租借者类别信息。
4.2系统功能结构分析
系统功能结构图如下图4-1所示:
图4-1系统功能结构图
5.概念模型设计(按数据库设计方法和规范化理论,从实践概括抽象出ER模型)
5.1实体与属性分析
根据上述光盘租借系统需求分析,我认为该数据库主要涉及的实体有租借者、光盘、副本、管理员,各实体具体属性如下:
租借者:
租借者编号、租借者姓名、性别、联系电话、客户类型、居住地址;
光盘类别:
类别编号,类别名称,类别描述;
光盘:
光盘编号、光盘名称、导演、语种、光盘价格、光盘类别、可借数量,内容简介;
管理人员:
姓名、员工编号、登录密码、联系电话、管理类别。
光盘租借系统数据库各实体间联系如下:
一个租借者可以租借多个光盘,一个光盘可以被多个租借者借阅,一个采购员可以采购多个光盘,一个光盘也可以被多个采购员采购。
管理员与租借者及光盘间并无具体联系,为方便系统操作因而单设一个实体记录管理员信息。
5.2系统总体E-R图设计
系统总体E-R图如下图5-1所示:
图5-1系统功能结构图
6.逻辑模型设计(按数据库设计方法和规范化理论得出符合3NF的逻辑模型,ER图设计,ER图转化为相应的关系模式,设计数据库的逻辑模型)
关系模式设计如下:
(其中下划线是主码,粗体是外键)
员工(职工号,姓名,性别,操作密码,职务,婚姻状况,入职日期)
光盘类别(类别编号,类别名称,类别描述)
光盘(编号,名称,导演,语种,单价,类别,可借数量,剧情简介)
采购(员工号,光盘编号,采购数量,采购日期,供应商)
租借(客户号,光盘编号,租借数量,租借日期,押金)
归还(客户号,光盘编号,归还日期,总费用)
优化后的关系模式如下:
员工(职工号,姓名,性别,操作密码,职务,婚姻状况,入职日期)
光盘类别(类别编号,类别名称,类别描述)
光盘(编号,名称,导演,语种,单价,类别,可借数量,剧情简介)
采购(序号,员工号,光盘编号,采购数量,采购日期,供应商)
租借(借阅号,客户号,光盘编号,租借数量,租借日期,押金)
归还(借阅号,归还日期,总费用,备注信息)
6.物理模型设计(存储记录结构设计,物理文件的安排和建立索引)
1)员工表结构
2)光盘类别表结构
3)光盘表结构
4)客户表结构
、
5)采购表
6)借阅表
7.实现(数据库结构设计的程序代码,基本操作的程序代码)
7.1数据库表设计
ifexists(select*fromsysobjectswherename='光盘租借管理系统')
dropDataBase光盘租借管理系统
GO
CreateDataBase光盘租借管理系统
go
Use光盘租借管理系统
go
ifexists(select*fromsysobjectswherename='类别表')
droptable类别表
GO
Createtable类别表(
类别编号varchar(10)notnull,
类别名称nvarchar(20)notnull,
类别描述nvarchar(100),
primarykey(类别编号)
)
ifexists(select*fromsysobjectswherename='光盘表')
droptable光盘表
GO
Createtable光盘表(
编号varchar(20)notnull,
名称varchar(50)notnull,
导演varchar(20),
语种varchar(50),
单价floatcheck(单价>0),
类别varchar(10)notnull,
可借数量smallintcheck(可借数量>=0),
剧情描述nvarchar(200),
primarykey(编号),
Foreignkey(类别)references类别表(类别编号)
)
ifexists(select*fromsysobjectswherename='员工表')
droptable员工表
go
Createtable员工表(
职工号varchar(15)notnull,
姓名varchar(20)notnull,
性别char
(2)check(性别in('男','女')),
职务varchar(15),
操作密码varchar(30)notnull,
婚姻状况char(4)check(婚姻状况in('未婚','已婚','离异')),
入职时间smalldatetime,
primarykey(职工号)
)
ifexists(select*fromsysobjectswherename='客户表')
droptable客户表
go
Createtable客户表(
客户号varchar(18)notnull,
客户姓名varchar(20)notnull,
性别char
(2)notnullcheck(性别in('男','女')),
电话varchar(15),--联系电话
类型varchar(20),--客户类型
居住地址nvarchar(100),
Primarykey(客户号)
)
ifexists(select*fromsysobjectswherename='采购记录')
droptable采购记录
go
Createtable采购记录(
序号intidentitynotnull,
光盘编号varchar(20)notnull,
员工号varchar(15)notnull,
采购数量intnotnull,
采购日期smallDatetime,
供应商nvarchar(50),
primarykey(序号),
Foreignkey(光盘编号)references光盘表(编号)ondeletecascade,
Foreignkey(员工号)references员工表(职工号)ondeletecascade
)
ifexists(select*fromsysobjectswherename='借阅表')
droptable借阅表
go
Createtable借阅表(
借阅号intidentity(150001,1)notnull,
光盘编号varchar(20)notnull,
客户号varchar(18)notnull,
借阅数量intnotnull,
借阅日期datetimedefaultgetDate(),
押金数float,
归还char
(2)check(归还in('是','否'))default'否',
备注信息nvarchar(50)
primarykey(借阅号),
Foreignkey(光盘编号)references光盘表(编号)ondeletecascade,
Foreignkey(客户号)references客户表(客户号)ondeletecascade
)
Createtable归还表(
借阅号intnotnull,
归还日期datetimedefaultgetDate(),
总费用float,
备注信息nvarchar(50)
primarykey(借阅号),
Foreignkey(借阅号)references借阅表(借阅号)ondeletecascade
)
7.2视图设计
--创建采购信息视图
ifexists(select*fromsysobjectswherename='采购记录信息')
dropView采购记录信息
go
Createview采购记录信息
as
Select序号,光盘编号,名称,员工号,采购数量,采购日期,供应商
from光盘表,采购记录
Where光盘表.编号=采购记录.光盘编号
--创建交易记录视图
ifexists(select*fromsysobjectswherename='交易记录')
dropview交易记录
go
CreateView交易记录
as
Select归还表.借阅号,光盘编号,客户号,借阅数量,总费用,借阅日期,归还日期from归还表,借阅表
where归还表.借阅号=借阅表.借阅号
--创建光盘信息视图
Createview光盘信息
as
Select编号,名称,导演,语种,单价,类别名称,可借数量,剧情简介
from类别表,光盘表
Where类别=类别编号
7.2触发器设计
--当采购成购后,自动修改光盘库存数量
ifexists(select*fromsysobjectswherename='Tri1')
droptriggerTri1
go
CreatetriggerTri1
on采购记录
AfterInsert
as
declare@IDvarchar(20);
declare@countint;
Select@ID=光盘编号,@count=采购数量frominserted;
Update光盘表Set可借数量=可借数量+@countWhere编号=@ID
7.3存储过程设计
ifexists(select*fromsysobjectswherename='BorrowRecord')
dropprocBorrowRecord
go
CreateprocBorrowRecord(
@cidvarchar(18)
)
as
Select借阅号,名称as光盘名称,客户姓名,借阅数量,借阅日期,押金数,备注信息
from借阅表,光盘表,客户表
Where归还='否'and借阅表.客户号=@Cid
and借阅表.光盘编号=光盘表.编号and借阅表.客户号=客户表.客户号
9.实验总结
(主要对本实验开发过程进行归纳和总结,还应包括在设计过程中所遇到的技术难点及解决方法,尚存在的问题以及进一步开发的见解与建议。
)
(1)完成情况:
除数据库不完整外,其他基本完美的做好了,不足之处就是数据库不够完善,功能不够强大,比如说用户权限表,用户角色表。
同时这个设计也是参照了一部分图书馆借阅系统的实现,图书馆借阅没有入库和出库,我们自己完善了这部分的设计。
(2)心得体会:
数据库真是一门有用的学问,通过这次大作业,我学习到了很多东西,仿佛触碰到了高级企业的门槛。
初步了解了很多平时生活中看似简单的操作,其实背后蕴藏着多么大的艰辛。
这也不是我们随便想学就能学好的功课,需要付出大量的时间与汗水。
但我会慢慢坚持我相信我能够做的好的。
经过这次课程设计,引发了我的很多思考和兴趣,首先是做课程设计要勤,手勤、口勤、眼勤、心勤、脑勤:
其次要有韧性,不怕麻烦,不怕失败,反复修改,反复动手,越挫越勇,这样才能打开思路,找到最佳的系统规划和设计。
数据库的课程设计让我学会了把课本上的科学理论知识转化为实践的过程,学会了如何利用所学知识自己创建一个现实生活中可用的数据库管理信息系统,学生成绩数据库设计的流程通过背景分析、需求分析、数据库概念模型设计、数据逻辑结构设计、物理结构设计和数据库实施等流程设计而成,规范的设计流程从而让我们对以后的设计有重要的参考。
(3)技术难点:
在关系表的设计上,不知道如何对应,而且在设计触发器的时候,设计了几次才真正实现,按照课本上的脚本来实现总是容易出错的,原来课本上的也只是理论部分而已,需要我们自己不断去实践和发现,才能真正解决。
10.参考文献
1.《数据库技术与联机分析处理》王珊主编北京科学出版社1998
2.《SQLserver2000数据仓库与AnalysisServices》BainT着中国电力出版社2003
3.《数据库原理与应用教程》何玉洁等编着机械工业出版社2015,7第三版
指导老师评语及得分:
签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 碟片 出租 后台数据库 设计