数据库原理及应用课程设计
设计报告
题 目:音响店DVD零售\\出租管理系统 学 号: 131007140 学生姓名: 指导教师: 提交时间: 2015-01-05
目录
第1章 需求分析 ........................................................................................................................... 1
1.1 需求调查 ......................................................................................................................... 1 1.2 系统功能分析 ................................................................................................................... 1 第2章 概念结构设计 ................................................................................................................... 2
2.1局部E-R图: .................................................................................................................... 2 2.2 全局E-R图 ....................................................................................................................... 4 第3章 逻辑结构设计 ................................................................................................................... 5
3.1 E-R图向关系模式转换 .................................................................................................. 5 3.2 建立关系模式 ................................................................................................................. 5 3.3 关系模式逻辑结构定义 ................................................................................................... 6 第4章 数据库物理结构设计 ....................................................................................................... 9
4.1 存取方法设计 ........................................................................................................... 9 4.2 存储结构设计 ................................................................................................................. 9 4.3 物理设计 ......................................................................................................................... 9 第5章 数据库完整性设计 ......................................................................................................... 12
5.1 主键 ................................................................................................................................. 12 5.2 参照完整性设计 ..................................................................................................... 13 5.3 Check约束 .................................................................................................................... 13 5.4触发器设计 ...................................................................................................................... 13 第6章 数据库视图设计 ............................................................................................................... 15 第7章 数据库存储过程设计 ....................................................................................................... 16 总结................................................................................................................................................. 16 参考文献: ..................................................................................................................................... 17
数据库原理及应用课程设计报告
第1章 需求分析
1.1 需求调查
通过对各个用户的调查,该DVD零售租赁管理系统有如下需求:
1) 系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码, 数据
备份,数据还原,数据清除等功能。
2) 数据管理:实现管理人员对系统的管理,包括DVD的入库、借还、零售等功能。 3) 基本信息:实现显示客户和DVD的基本信息(包括客户信息及其租赁或购买的DVD
信息,DVD的类型、库存等基本信息)。
4) 查询:查询客户租赁或购买状况,某段时间内各DVD的零售、借还数量,已租赁但
未还的DVD信息及客户信息,现有的DVD的库存情况等。 5) 帮助系统:帮助系统为用户指明方向。
1.2 系统功能分析
图1 系统功能图
1) 会员管理:用于增加会员,删除会员,会员基本信息的修改,会员缴费、退押金、退
租金等。
2) 业务操作:实现DVD的出租、返还、销售、退售、退租、添租功能。 3) DVD管理:新添光盘入库,原有光盘进货,DVD光盘信息修改,光盘注销。 4) 查询:已出租、销售DVD查询,即将缺货的DVD查询,某一DVD的出租、销售情
1
数据库原理及应用课程设计报告
况查询,会员租赁或购买的情况查询。
5) 系统设置:操作员及其权限的设置,影片类型、会员类型的设置,非会员、会员的影
片收费标准。
6) 账务管理:添加、修改、删除账户,账户收支,所有资金及其明细等。
第2章 概念结构设计
2.1局部E-R图:
图2 用户信息图
图3 会员卡信息图
图4 租赁信息图
2
数据库原理及应用课程设计报告
图5 零售信息图
图6 DVD归还
图7 DVD信息
图8 DVD退购
3
数据库原理及应用课程设计报告
图9 DVD入库
2.2 全局E-R图
4
数据库原理及应用课程设计报告
第3章 逻辑结构设计
3.1 E-R图向关系模式转换
逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQL Server或Oracel或MySql)。由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化系模式转换
3.2 建立关系模式
DVD信息(DVD编号,DVD名称,导演,主演,类型,年份,进货商,现货,库存,租赁价格,出售价格,被租次数)
用户信息(用户编号,用户类型,会员卡号,姓名,性别,联系方式,现住址,当前租赁,当前购买,历史租赁,历史购买)
会员卡信息(会员卡号,用户编号,会员类型,状态,卡内余额,累计出租,登记日期) DVD租赁(租赁单号,DVD编号,DVD名称,租赁用户编号,应付押金,租赁日期,到期时间)
DVD归还(归还单号,DVD编号,DVD名称,归还用户编号,归还日期,逾期天数,应付金额,损坏情况,应退押金)
DVD零售(零售单号,DVD编号,DVD名称,购买用户编号,出售日期,出售数量,应付金额)
DVD退购(退购单号, DVD编号,DVD名称,退购用户编号,退购日期,退购数量,有无损坏,应退金额)
DVD入库(DVD编号,DVD名称,入库日期,入库数量)
5
数据库原理及应用课程设计报告
3.3 关系模式逻辑结构定义
1.用户详细信息
字段名 用户编号 用户类型 会员卡号 姓名 性别 联系方式 现住址 当前租赁 当前购买 历史租赁 历史购买 数据类型 varchar varchar varchar varchar char varchar varchar int int int int 12 10 20 10 2 20 100 长度 主键 会员、非会员 可为空 不为空 男或女 不为空 不为空 可为空 可为空 可为空 可为空 约束
2.会员卡详细信息
字段名 会员卡号 用户编号 姓名 会员类型 状态 卡内余额 累计出租 登记日期
6
数据类型 varchar varchar varchar varchar varchar float int date 20 12 10 20 10 长度 主键
外键
不为空 普通、白金会员等
激活、未激活
可为空
可为空
不为空
约束 数据库原理及应用课程设计报告
3.DVD详细信息
字段名 DVD编号 DVD名称 导演 主演 类型 年份 进货商 现货 库存 租赁价格 出售价格 被租次数
4.DVD入库信息
字段名 DVD编号 DVD名称 入库日期 入库数量 5.DVD租赁信息
字段名 租赁单号 DVD编号 DVD名称 租赁用户编号 应付押金 租赁日期 到期时间
7
数据类型 varchar varchar varchar varchar varchar varchar varchar int int float float int 10 20 10 20 10 5 20 长度 主键 约束 不为空 不为空 不为空 可为空 不为空 不为空 不小于0 不小于0 不为空 不为空 可为空
数据类型 varchar varchar date int 10 20 长度 约束 主键、外键 不为空 不为空 不为空
数据类型 varchar varchar varchar varchar float date date 12 10 20 12 长度 主键 外键 约束 不为空 外键 不为空 不为空 不为空 数据库原理及应用课程设计报告
6.DVD归还信息
字段名 归还单号 DVD编号 DVD名称 归还用户编号 归还日期 逾期天数 应付金额 损坏状况 应退押金 7.DVD零售信息
字段名 零售单号 DVD编号 DVD名称 购买用户编号 出售日期 出售数量 应付金额 8.DVD退购信息
字段名 退购单号 DVD编号 DVD名称 退购用户编号 退购日期 退购数量 有无损坏 应退金额
8
数据类型 varchar varchar varchar varchar date int float char float 12 10 20 12 4 2 长度 主键 外键 约束 不为空 外键 不为空 可为空 不为空 有、无 不为空
数据类型 varchar varchar varchar varchar date int float 12 10 20 12 长度 主键 外键 约束 不为空 外键 不为空 不为空 不为空 数据类型 varchar varchar varchar varchar date int char float 12 10 20 12 2 长度 主键 外键 约束 不为空 外键 不为空 不为空 有、无 不为空 数据库原理及应用课程设计报告
第4章 数据库物理结构设计
4.1 存取方法设计
数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。对于DVD零售出租管理系统来说,为了提高某些属性(如:DVD的现货、库存、出租、零售记录等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。这样在查询某一类DVD或同一主演、导演出租零售数量时就会大大提高查询速度。因此,该系统中选择聚簇存取方法。
4.2 存储结构设计
DVD零售出租管理系统是一个复杂的计算机网络信息系统,采用基于客户端/服务器(C/S)应用体系结构来建设DVD零售出租管理系统。数据库管理系统采用Microsoft 公司推出的SQL Server 2000 或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。
4.3 物理设计
实现该设计的环境为Windows XP Professional + MS SQL Server 2008 或以上版本。 1、 建立数据库
create database 音响店DVD零售出租管理系统数据库 on
( name ='音响店DVD零售出租管理系统数据文件',
filename ='E:\\SJKKCSJ\\音响店DVD零售出租管理系统数据文件.mdf', size =15MB, maxsize = 50MB, filegrowth =5% ) log on
( name ='音响店DVD零售出租管理系统日志文件',
filename = 'E:\\SJKKCSJ\\音响店DVD零售出租管理系统日志文件.ldf', size = 2MB, maxsize = 5MB, filegrowth = 1MB )
2、 建立用户信息表
create table 用户信息表 (
用户编号 varchar(12) not null primary key,
用户类型 varchar(10) not null check(用户类型 in('会员''非会员')),
9
数据库原理及应用课程设计报告
会员卡号 varchar(20), 姓名 varchar(10) not null,
性别 char(2) not null check(性别 in('男''女')), 联系方式 varchar(20) not null, 现住址 varchar(100) not null, 当前租赁 int , 当前购买 int, 历史租赁 int, 历史购买 int )
3、 建立会员卡信息表
create table 会员卡信息表 (
会员卡号 varchar(20) not null primary key, 用户编号 varchar(12) not null, 姓名 varchar(10) not null,
会员类型 varchar(20) not null check(会员类型 in('普通会员''白金会员' '黄金会员''钻石会员')),
状态 varchar(10) not null check(状态 in('激活''未激活')), 卡内余额 float , 累计租赁 int,
登记日期 date not null,
foreign key(用户编号) references 用户信息表(用户编号) )
4、 建立DVD信息表
create table DVD信息表 (
DVD编号 varchar(10) primary key, DVD名称 varchar(20) not null, 导演 varchar(10) not null, 主演 varchar(20) not null, 类型 varchar(10),
年份 varchar(5) not null, 进货商 varchar(20) not null, 现货 int check(现货>=0 ), 库存 int check(库存>=0 ), 租赁价格 float not null, 出售价格 float not null, 被租次数 int )
5、 建立DVD租赁信息表
create table DVD租赁信息表 (
10
数据库原理及应用课程设计报告
租赁单号 varchar(12) not null primary key, DVD编号 varchar(10) not null, DVD名称 varchar(20) not null, 租赁用户编号 varchar(12) not null, 应付押金 float not null, 租赁日期 date not null, 到期时间 date not null,
foreign key(DVD编号) references DVD信息表(DVD编号), foreign key(租赁用户编号) references 用户信息表(用户编号) )
6、 建立DVD归还信息表
create table DVD归还信息表 (
归还单号 varchar(12) not null primary key, DVD编号 varchar(10) not null, DVD名称 varchar(20) not null, 归还用户编号 varchar(12) not null, 归还日期 date not null, 逾期天数 int,
应付金额 float not null,
损坏状况 char(2) not null check(损坏状况 in ('有''无')), 应退押金 float not null,
foreign key(DVD编号) references DVD信息表(DVD编号), foreign key(归还用户编号) references 用户信息表(用户编号) )
7、 建立DVD零售信息表
create table DVD零售信息表 (
零售单号 varchar(12) not null primary key, DVD编号 varchar(10) not null, DVD名称 varchar(20) not null, 购买用户编号 varchar(12) not null, 出售日期 date not null, 出售数量 int,
应付金额 float not null,
foreign key(DVD编号) references DVD信息表(DVD编号), foreign key(购买用户编号) references 用户信息表(用户编号)
)
8、 建立DVD退购信息表
create table DVD退购信息表
11
数据库原理及应用课程设计报告
(
退购单号 varchar(12) not null primary key, DVD编号 varchar(10) not null, DVD名称 varchar(20) not null, 退购用户编号 varchar(12) not null, 退购日期 date not null, 退购数量 int not null,
有无损坏 char(2) not null check(有无损坏 in ('有''无')), 应退金额 float not null,
foreign key(DVD编号) references DVD信息表(DVD编号), foreign key(退购用户编号) references 用户信息表(用户编号) )
9、 建立DVD入库信息表
create table DVD入库信息表 (
DVD编号 varchar(10) not null primary key, DVD名称 varchar(20) not null, 入库日期 date not null, 入库数量 int not null,
foreign key(DVD编号) references DVD信息表(DVD编号) )
第5章 数据库完整性设计
5.1 主键
表名 DVD信息表 用户信息表 会员卡信息表 DVD租赁信息表 DVD归还信息表 DVD零售信息表 DVD退购信息表 DVD入库信息表 主键 (DVD编号) (用户编号) (会员卡号) (租赁编号) (归还编号) (零售编号) (退购编号) (DVD编号) 12
数据库原理及应用课程设计报告
5.2 参照完整性设计
表名 DVD租赁表 DVD归还表 DVD零售表 DVD退购表 DVD入库表
外键 (DVD编号,租赁用户编号) (DVD编号,归还用户编号) (DVD编号,购买用户编号) (DVD编号,退购用户编号) (DVD编号) 参照 DVD信息表.DVD编号 用户信息表.用户编号 DVD信息表.DVD编号 用户信息表.用户编号 DVD信息表.DVD编号 用户信息表.用户编号 VD信息表.DVD编号 用户信息表.用户编号 DVD信息表.DVD编号 5.3 Check约束
1、会员卡信息表中将会员类型、状态进行check约束:
check(会员类型 in('普通会员''白金会员''黄金会员''钻石会员'))
check(状态 in('激活''未激活'))
2、用户信息表中用户类型、性别进行check约束:
check (用户类型in ('会员''非会员')) ,check (性别in ('男''女')) 3、 DVD归还表中将损坏状况进行check约束:
check (损坏状况in ('有''无'))
4、DVD退购表中将有无损坏进行check约束:
check (有无损坏in ('有''无'))
5、DVD信息表中对现货、库存进行check约束:
check(现货>=0 ),check(库存>=0 )
5.4触发器设计
1.实现出租时自动修改DVD现货及客户的当前租赁数量
create trigger _rent on DVD租赁信息表--租赁触发器 for insert as begin
update DVD信息表 set 现货=现货-1 from DVD信息表,inserted
where DVD信息表.DVD编号=inserted.DVD编号 update 用户信息表 set 当前租赁=当前租赁+1 from 用户信息表,inserted
where 用户信息表.用户编号=inserted.租赁用户编号
13
数据库原理及应用课程设计报告
end
2.实现归还时自动修改DVD现货及客户的当前租赁数量和历史租赁数量
create trigger _return on DVD归还信息表--归还触发器 for insert as begin
update DVD信息表 set 现货=现货+1 from DVD信息表,inserted
where DVD信息表.DVD编号=inserted.DVD编号 update 用户信息表 set 当前租赁=当前租赁-1 from 用户信息表,inserted
where 用户信息表.用户编号=inserted.归还用户编号 update 用户信息表 set 历史租赁=历史租赁+1 from 用户信息表,inserted
where 用户信息表.用户编号=inserted.归还用户编号
update DVD归还信息表 set DVD编号=DVD租赁信息表.DVD编号,DVD名称=DVD租赁信息表.DVD名称,
归还用户编号=DVD租赁信息表.租赁用户编号 from DVD租赁信息表,DVD归还信息表,inserted where DVD租赁信息表.租赁单号=inserted.归还单号 end
3.实现入库时自动修改DVD库存
create trigger _buy on DVD入库信息表--入库触发器 for insert as
update DVD信息表 set 库存=库存+inserted.入库数量 from DVD信息表,inserted
where DVD信息表.DVD编号=inserted.DVD编号
4.实现零售时自动修改DVD库存及用户当前购买和历史购买
create trigger _sale on DVD零售信息表--零售触发器 for insert as begin
update 用户信息表 set 历史购买=当前购买 from 用户信息表,inserted
where 用户信息表.用户编号=inserted.购买用户编号
update 用户信息表 set 当前购买=当前购买+inserted.出售数量 from 用户信息表,inserted
where 用户信息表.用户编号=inserted.购买用户编号 update DVD信息表 set 库存=库存-inserted.出售数量 from DVD信息表,inserted
where DVD信息表.DVD编号=inserted.DVD编号 end
14
数据库原理及应用课程设计报告
5.实现退购时自动修改DVD库存及用户当前购买
create trigger _off on DVD退购信息表--零售触发器 for insert as begin
update 用户信息表 set 当前购买=当前购买-inserted.退购数量 from 用户信息表,inserted
where 用户信息表.用户编号=inserted.退购用户编号 update DVD信息表 set 库存=库存+inserted.退购数量 from DVD信息表,inserted
where DVD信息表.DVD编号=inserted.DVD编号
update DVD退购信息表 set DVD编号=DVD零售信息表.DVD编号,DVD名称=DVD零售信息表.DVD名称,
退购用户编号=DVD零售信息表.购买用户编号 from DVD零售信息表,DVD退购信息表,inserted where DVD零售信息表.零售单号=inserted.退购单号 end
第6章 数据库视图设计
1.创建视图查询DVD的现货、库存
create view number as
select DVD编号,DVD名称,现货,库存 from DVD信息表
2.创建视图查询用户的租赁,购买状况
create view user_number as
select 当前购买,历史购买,当前租赁,历史租赁 from 用户信息表
3.创建视图查看会员情况
create view vip as
select 会员卡信息表.会员卡号,会员卡信息表.姓名,性别,会员类型,状态,联系方式,现住址,卡内余额,登记日期
from 会员卡信息表,用户信息表
where 会员卡信息表.会员卡号=用户信息表.会员卡号
4.创建视图查看影片是否缺货
create view out_of_stock as
select DVD名称,导演,主演,类型 from DVD信息表
where DVD信息表.库存=0
15
数据库原理及应用课程设计报告
第7章 数据库存储过程设计
创建存储过程统计某段时间内各DVD的销售、借还数量
as
declare @leixing char(6) set @leixing=@type begin
if @leixing='零售'
select @begintime as 起始日期,@endtime as 截至日期,DVD编号,SUM(出售数量) as 销售量
from DVD零售信息表
where 出售日期>=@begintime and 出售日期<=@endtime group by DVD编号
else if @leixing='出租'
select @begintime as 起始日期,@endtime as 截至日期, DVD编号,count(DVD编号) as 出租量
from DVD租赁信息表
where 租赁日期>=@begintime and 租赁日期<=@endtime group by DVD编号
else if @leixing='归还'
select @begintime as 起始日期,@endtime as 截至日期,DVD编号,count(DVD编号) as 归还量
from DVD归还信息表
where 归还日期>=@begintime and 归还日期<=@endtime group by DVD编号
else print '请输入正确的查询类型' end
create procedure tongji @begintime date,@endtime date,@type char(6)
总结
在做本次课程设计的过程中,我发现有很多已经学过的东西没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。而在这个过程中,我深刻理解所学知识,同时也学到不少很实用的东西。
我做的是DVD出租零售管理系统,在做需求分析的时候,我发现有很多方面需要考虑,而且在后面建立表,建立视图等时候,发现前面思考的还是不够全面,后面还需要不断的改进,这需要耐心、细心,有的时候,会有感到抓狂。
16
数据库原理及应用课程设计报告
参考文献:
1. 王珊,萨师煊 .数据库系统概论[M]. 高等教育出版社,2005
2. 郑阿奇等. SQLserver实用教程(第3版)[M] . 电子工业出版社,2009 3. 赵乃真等. 信息系统设计与应用. 清华大学出版社,2005
17
数据库原理及应用课程设计报告
《数据库原理及应用课程设计》报告评分标准
选题合理,功能简单 (D) 选题及功能设计 有一定的工作量和实用价值 (C) 功能设计丰富,有一定的难度系数 (B) 功能设计合理全面,能体现数据库的存储和整理数据的功能 (A) 具备基本的数据表,数据量较少,但能够实现系统基本需要 (D) 具备基本的数据表,数据量适中,实现了一定的数据完整性 (C) 有多个数据表,数据量适中,有完善的数据完整性(B) 有多个数据表,数据量充足,具有较强的数据安全性和数据完整性 (A) 具备基本的数据表,有主外键约束 (D) 数据库对象 创建了若干种的数据库对象,并加以利用 (C) 在实际应用中合理利用了各类数据库对象 (B) 具有身份验证、数据备份等较复杂的数据管理功能(A) 利用存储过程实现了各种查询功能 (D) 除查询功能,还实现了各种数据操作功能 (C) 功能实现 在上一条基础上,还实现了数据统计汇总功能 (B) 合理利用函数、存储过程、触发器实现各种数据查询、操作、管理功能 (A) 完成设计报告,阐述了系统功能,结构较完整 (D) 开题报告反映设计思路,结构完整,格式较规范 (C) 设计报告 报告内容完整,图表使用准确,格式清晰,功能描述详尽 (B) 报告内容完整,图表使用准确,描述详细,代码阐述清楚,反映系统执行流程 (A) 总评成绩: 18
数据表和数据量 教师签字:
因篇幅问题不能全部显示,请点此查看更多更全内容