《数据库原理》音像租借管理系统.docx
- 文档编号:24330553
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:23
- 大小:384.87KB
《数据库原理》音像租借管理系统.docx
《《数据库原理》音像租借管理系统.docx》由会员分享,可在线阅读,更多相关《《数据库原理》音像租借管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
《数据库原理》音像租借管理系统
《数据库原理》课程设计报告
设计题目:
音像租借管理系统
专业:
信息管理与信息系统
计算机与数据科学学院
2019年1月5日
第1章概述
1.1选题的背景与意义
随着人民的生活水平不断提高,而对文化生活的需求也不断提高。
图书、音像行业得到了迅猛的发展,消费持续增长。
就音像系统而言,它具有种类繁多,难于管理等特点,而且,音像管理人员在租借音像制品时,要经历登记、查找、统计等枯燥的手工工作,这种操作即烦琐又不精确,许多记录不便长期保留,这就迫切需要标准的,高效率的管理方式引导音像租借行业的发展。
因此,为了满足人民日益增长的文化需求,为了适应音像行业的迅猛发展,提高工作效率,便于管理者统一管理,我们要开发一套音像租借系统来满足音像租借者和学生的需要。
1.2相关技术分析
SQL语言是结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;SQL 语句用于取回和更新数据库中的数据。
SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。
存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
SQL Server用于操作数据库的编程语言,简称T-SQL。
T-SQL与PL/SQL不同,并没有固定的程序结构。
第2章系统功能设计
2.1系统总体结构设计图
2.2系统功能模块
2.2.1模块一:
会员管理
用于增加会员,删除会员,会员基本信息的修改,会员缴费、退押金、退租金等。
2.2.2模块二:
业务操作
实现DVD的出租、返还、销售、退售、退租、添租功能。
2.2.3模块三:
DVD管理
新添光盘入库,原有光盘进货,DVD光盘信息修改,光盘注销。
2.2.4模块四:
查询
已出租、销售DVD查询,即将缺货的DVD查询,某一DVD的出租、销售情况查询,会员租赁或购买的情况查询。
2.2.5模块五:
系统设置
操作员及其权限的设置,影片类型、会员类型的设置,非会员、会员的影片收费标准。
2.2.6模块六:
账务管理
添加、修改、删除账户,账户收支,所有资金及其明细等。
第3章数据库设计
3.1需求分析
3.1.1总体数据流图:
图3-1总体数据流图
3.1.2顶层数据流图:
图3-2顶层数据流图
3.1.3用户借还流图:
图3-3用户借还流图
3.1.4涉及数据项(数据字典)
表3-1涉及数据项
数据项编号
数据项名
数据项含义
存储结构
别名
DVD-1
用户编号
用户的编号
Varchar(12)
用户号
DVD-2
用户类型
是否是会员
Varchar(10)
是否会员
DVD-3
会员卡号
会员卡号
Varchar(20)
DVD-4
姓名
用户姓名
Varchar(10)
DVD-5
性别
用户性别
Char
(2)
DVD-6
联系方式
电话号码
Varchar(20)
电话号
DVD-7
现住址
现在的住址
Varchar(100)
现住址
DVD-8
当前租赁
现在租的
Int
现在租的
DVD-9
当前购买
现在买的
Int
现在买的
DVD-10
历史租赁
以前租的
Int
以前租的
DVD-11
历史购买
以前买的
int
以前买的
DVD-12
DVD编号
DVD编号
Varchar(10)
DVD-13
DVD名称
DVD名称
Varchar(20)
DVD-14
租赁单号
租赁单号
Varchar(12)
DVD-15
应付押金
应该交的押金
float
DVD-16
租赁日期
租的时间
date
DVD-17
到期时间
应还书日期
date
DVD-18
归还单号
归还单号
Varchar(12)
DVD-19
归还用户编号
谁还的书
Varchar(12)
DVD-20
归还日期
还书的时间
date
DVD-21
逾期天数
超到期时间几天
int
DVD-22
应付金额
应交多少钱
float
DVD-23
应退押金
应退多少钱
float
3.1.5数据结构(数据字典)
表3-2数据结构
数据结构编号
数据结构名
数据结构含义
数据结构组成
DV-1
用户信息
用户的信息
DVD-1到DVD-11
DV-2
DVD租赁
DVD租赁的信息
DVD-12到DVD-17
DV-3
DVD归还
归还DVD的信息
DVD-13到DVD-23
3.2概念结构设计
局部E-R图
图3-4用户信息图
合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图如下所示:
图3-12总体E-R图
3.3逻辑结构设计
3.3.1E-R图向关系模式转换
逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQLServer或Oracel或MySql)。
由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化系模式转换
3.3.2范式的判定
第一范式:
如果关系模式R所有的属性均为原子属性,即每个属性都是不可再分的,则称R属于第一范式;
第二范式:
如果关系模式R属于1NF,且每个非主属性都完全依赖于R的主码,则称R属于第二范式;
第三范式:
如果关系模式R属于2NF,且每个非主属性都不传递函数依赖于R的主码,则称R属于第三范式。
根据范式的定义得所有的关系模式都是满足第三范式。
3.3.3子模式的设计
1.创建视图查询DVD的现货、库存
createviewnumber
as
selectDVD编号,DVD名称,现货,库存
fromDVD信息表
2.创建视图查询用户的租赁,购买状况
createviewuser_number
as
select当前购买,历史购买,当前租赁,历史租赁
from用户信息表
3.创建视图查看会员情况
createviewvip
as
select会员卡信息表.会员卡号,会员卡信息表.姓名,性别,会员类型,状态,联系方式,现住址,卡内余额,登记日期
from会员卡信息表,用户信息表
where会员卡信息表.会员卡号=用户信息表.会员卡号
4.创建视图查看影片是否缺货
createviewout_of_stock
as
selectDVD名称,导演,主演,类型
fromDVD信息表
whereDVD信息表.库存=0
3.4物理结构设计
3.4.1存取方法设计
数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。
对于DVD零售出租管理系统来说,为了提高某些属性(如:
DVD的现货、库存、出租、零售记录等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。
这样在查询某一类DVD或同一主演、导演出租零售数量时就会大大提高查询速度。
因此,该系统中选择聚簇存取方法。
3.4.2存储结构设计
DVD零售出租管理系统是一个复杂的计算机网络信息系统,采用基于客户端/服务器(C/S)应用体系结构来建设DVD零售出租管理系统。
数据库管理系统采用Microsoft公司推出的SQLServer2000或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。
3.4.3索引的建立
CREATECLUSTEREDTNDEXQAQONDVD入库信息表(DVD名称);
CREATECLUSTEREDTNDEXQAQONDVD信息表(DVD名称);
CREATECLUSTEREDTNDEXQAQON用户信息表(姓名);
CREATECLUSTEREDTNDEXQAQON会员卡信息表(姓名);
CREATECLUSTEREDTNDEXQAQONDVD退购信息表(DVD名称);
CREATECLUSTEREDTNDEXQAQONDVD零售信息表(DVD名称);
CREATECLUSTEREDTNDEXQAQONDVD租赁信息表(DVD名称);
CREATECLUSTEREDTNDEXQAQONDVD归还信息表(DVD名称);
3.5数据库实施
建立数据库
createdatabase音响店DVD零售出租管理系统数据库
on
(name='音响店DVD零售出租管理系统数据文件',
filename='E:
\SJKKCSJ\音响店DVD零售出租管理系统数据文件.mdf',
size=15MB,
maxsize=50MB,
filegrowth=5%
)
logon
(name='音响店DVD零售出租管理系统日志文件',
filename='E:
\SJKKCSJ\音响店DVD零售出租管理系统日志文件.ldf',
size=2MB,
maxsize=5MB,
filegrowth=1MB
)
建立用户信息表
createtable用户信息表
(
用户编号varchar(12)notnullprimarykey,
用户类型varchar(10)notnullcheck(用户类型in('会员''非会员')),
会员卡号varchar(20),
姓名varchar(10)notnull,
性别char
(2)notnullcheck(性别in('男''女')),
联系方式varchar(20)notnull,
现住址varchar(100)notnull,
当前租赁int,
当前购买int,
历史租赁int,
历史购买int
)
图3-13同户信息表截图
建立会员卡信息表
createtable会员卡信息表
(
会员卡号varchar(20)notnullprimarykey,
用户编号varchar(12)notnull,
姓名varchar(10)notnull,
会员类型varchar(20)notnullcheck(会员类型in('普通会员''白金会员''黄金会员''钻石会员')),
状态varchar(10)notnullcheck(状态in('激活''未激活')),
卡内余额float,
累计租赁int,
登记日期datenotnull,
foreignkey(用户编号)references用户信息表(用户编号)
)
图3-14会员卡信息表截图
建立DVD信息表
createtableDVD信息表
(
DVD编号varchar(10)primarykey,
DVD名称varchar(20)notnull,
导演varchar(10)notnull,
主演varchar(20)notnull,
类型varchar(10),
年份varchar(5)notnull,
进货商varchar(20)notnull,
现货intcheck(现货>=0),
库存intcheck(库存>=0),
租赁价格floatnotnull,
出售价格floatnotnull,
被租次数int
)
图3-15DVD信息表截图
建立DVD租赁信息表
createtableDVD租赁信息表
(
租赁单号varchar(12)notnullprimarykey,
DVD编号varchar(10)notnull,
DVD名称varchar(20)notnull,
租赁用户编号varchar(12)notnull,
应付押金floatnotnull,
租赁日期datenotnull,
到期时间datenotnull,
foreignkey(DVD编号)referencesDVD信息表(DVD编号),
foreignkey(租赁用户编号)references用户信息表(用户编号)
)
图3-16DVD租赁信息表截图
建立DVD归还信息表
createtableDVD归还信息表
(
归还单号varchar(12)notnullprimarykey,
DVD编号varchar(10)notnull,
DVD名称varchar(20)notnull,
归还用户编号varchar(12)notnull,
归还日期datenotnull,
逾期天数int,
应付金额floatnotnull,
损坏状况char
(2)notnullcheck(损坏状况in('有''无')),
应退押金floatnotnull,
foreignkey(DVD编号)referencesDVD信息表(DVD编号),
foreignkey(归还用户编号)references用户信息表(用户编号)
)
图3-17DVD归还信息表截图
建立DVD零售信息表
createtableDVD零售信息表
(
零售单号varchar(12)notnullprimarykey,
DVD编号varchar(10)notnull,
DVD名称varchar(20)notnull,
购买用户编号varchar(12)notnull,
出售日期datenotnull,
出售数量int,
应付金额floatnotnull,
foreignkey(DVD编号)referencesDVD信息表(DVD编号),
foreignkey(购买用户编号)references用户信息表(用户编号)
)
图3-18DVD零售信息表截图
建立DVD退购信息表
createtableDVD退购信息表
(
退购单号varchar(12)notnullprimarykey,
DVD编号varchar(10)notnull,
DVD名称varchar(20)notnull,
退购用户编号varchar(12)notnull,
退购日期datenotnull,
退购数量intnotnull,
有无损坏char
(2)notnullcheck(有无损坏in('有''无')),
应退金额floatnotnull,
foreignkey(DVD编号)referencesDVD信息表(DVD编号),
foreignkey(退购用户编号)references用户信息表(用户编号)
)
图3-19DVD退购信息表截图
建立DVD入库信息表
createtableDVD入库信息表
(
DVD编号varchar(10)notnullprimarykey,
DVD名称varchar(20)notnull,
入库日期datenotnull,
入库数量intnotnull,
foreignkey(DVD编号)referencesDVD信息表(DVD编号)
)
图3-20DVD入库信息表截图
3.5.1创建存储过程统计某段时间内各DVD的销售、借还数量
createproceduretongji@begintimedate,@endtimedate,@typechar(6)
as
declare@leixingchar(6)
set@leixing=@type
begin
if@leixing='零售'
select@begintimeas起始日期,@endtimeas截至日期,DVD编号,SUM(出售数量)as销售量
fromDVD零售信息表
where出售日期>=@begintimeand出售日期<=@endtime
groupbyDVD编号
elseif@leixing='出租'
select@begintimeas起始日期,@endtimeas截至日期,DVD编号,count(DVD编号)as出租量
fromDVD租赁信息表
where租赁日期>=@begintimeand租赁日期<=@endtime
groupbyDVD编号
elseif@leixing='归还'
select@begintimeas起始日期,@endtimeas截至日期,DVD编号,count(DVD编号)as归还量
fromDVD归还信息表
where归还日期>=@begintimeand归还日期<=@endtime
groupbyDVD编号
elseprint'请输入正确的查询类型'
end
3.5.2触发器
1.实现出租时自动修改DVD现货及客户的当前租赁数量
createtrigger_rentonDVD租赁信息表--租赁触发器
forinsert
as
begin
updateDVD信息表set现货=现货-1
fromDVD信息表,inserted
whereDVD信息表.DVD编号=inserted.DVD编号
update用户信息表set当前租赁=当前租赁+1
from用户信息表,inserted
where用户信息表.用户编号=inserted.租赁用户编号
end
2.实现归还时自动修改DVD现货及客户的当前租赁数量和历史租赁数量
createtrigger_returnonDVD归还信息表--归还触发器
forinsert
as
begin
updateDVD信息表set现货=现货+1
fromDVD信息表,inserted
whereDVD信息表.DVD编号=inserted.DVD编号
update用户信息表set当前租赁=当前租赁-1
from用户信息表,inserted
where用户信息表.用户编号=inserted.归还用户编号
update用户信息表set历史租赁=历史租赁+1
from用户信息表,inserted
where用户信息表.用户编号=inserted.归还用户编号
updateDVD归还信息表setDVD编号=DVD租赁信息表.DVD编号,DVD名称=DVD租赁信息表.DVD名称,
归还用户编号=DVD租赁信息表.租赁用户编号
fromDVD租赁信息表,DVD归还信息表,inserted
whereDVD租赁信息表.租赁单号=inserted.归还单号
end
3.实现入库时自动修改DVD库存
createtrigger_buyonDVD入库信息表--入库触发器
forinsert
as
updateDVD信息表set库存=库存+inserted.入库数量
fromDVD信息表,inserted
whereDVD信息表.DVD编号=inserted.DVD编号
4.实现零售时自动修改DVD库存及用户当前购买和历史购买
createtrigger_saleonDVD零售信息表--零售触发器
forinsert
as
begin
update用户信息表set历史购买=当前购买
from用户信息表,inserted
where用户信息表.用户编号=inserted.购买用户编号
update用户信息表set当前购买=当前购买+inserted.出售数量
from用户信息表,inserted
where用户信息表.用户编号=inserted.购买用户编号
updateDVD信息表set库存=库存-inserted.出售数量
fromDVD信息表,inserted
whereDVD信息表.DVD编号=inserted.DVD编号
end
3.6数据库运行与维护
backupdatabase音响店DVD零售出租管理系统数据库todisk='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\音响店DVD零售出租管理系统数据库.bak'
restoredatabase音响店DVD零售出租管理系统数据库fromdisk='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\音响店DVD零售出租管理系统数据库.bak'
withreplace
第4章结束语
在做本次课程设计的过程中,我发现有很多已经学过的东西没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
而在这个过程中,我深刻理解所学知识,同时也学到不少很实用的东西。
我做的是音像租借管理系统,在做需求分析的时候,我发现有很多方面需要考虑,而且在后面建立表,建立视图等时候,发现前面思考的还是不够全面,后面还需要不断的改进,这需要耐心、细心,有的时候,会有感到抓狂。
还有值得肯定的一点是,课程设计使我们的自学习能力加强了,当我们遇到一些不会的问题时,首先是自己思考,然后大家很多时候都积极的探讨,有时会借鉴其他同学会而自己不会的地方将其变为自己脑袋里的知识。
这些都让我们意识到,只要我们努力,只要我们付出,就会得到收获和回报。
参考文献
[1]王珊,萨师煊.数据库系统概论[M].高等教育出版社,2005
[2]郑阿奇等.SQLserver实用教程(第3版)[M].电子工业出版社,2009
[3]赵乃真等.信息系统设计与应用.清华大学出版社,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理 数据库 原理 音像 租借 管理 系统