书店销售管理系统数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计课程名称《数据库系统原理》课程设计
题目书店销售管理系统
专业
班级
姓名
成绩
指导老师
2019 年 12 月 30 日至 2019 年 1月 3日
一、课程设计目的与任务
《数据库系统原理课程设计》是针对计算机专业基础课《数据库系统原理》开设的课程设计,目的是使学生通过本课程设计之后,对数据库设计的基本概念、基本原理和优化技术有较全面的了解和领会,并能操作当前流行的DBMS,了解数据库在计算机应用系统的作用,独立地开发实现一个小型的基于DBMS上的应用系统。
结合具体的开发案例,理解并初步掌握数据库系统需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用功能设计(视图,索引,游标,存储过程,触发器等)数据录入及测试等系统设计与系统实施及维护管理的主要环节和步骤以及软件文档的制作能力。
二、课程设计的题目与基本要求
1.设计题目:
书店销售管理系统数据库设计
2.基本要求:
(1)图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出版社等),自动计算库存。
(2)图书查询统计:按图书分类,出版社、书名、作者等条件查询图书的详细信息。
(3)销售管理:销售过的图书都记录
在销售列表中,方便统计收入。
图书销售后,实时记录图书库存,按每天统计销售额、按每个月或季度统计销售额,并能根据销售数量统计生成畅销书名单。
(4)设计报告内容包括:基本原理、设计方案的选择与确定,详细的设计过程及结果做出评价,分析存在的问题,提出改进意见并写出心得体会。
四、课程设计考核及评分标准
1.设计报告要求
课程设计报告要求逻辑清晰、层次分明、书写整洁。
格式包括标题、提要、正文(包括①设计项目要求与说明。
②数据模型分析。
③软件流程分析。
④调试分析。
⑤实验数据分析。
⑥答辩。
⑦成绩评定。
)附录(图纸、程序清单或软盘)。
设计报告须每人一份,独立完成。
2.图纸要求
系统结构框图、概念模型图等。
注:成绩等级:优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
目录
1. 引言 (1)
2. 需求阶段分析 (1)
2.1需求分析 (1)
2.2数据分析 (1)
2.3功能分析 (1)
2.3.1书籍管理功能 (2)
2.3.2订单管理功能 (2)
2.3.3顾客管理功能 (2)
2.3.4库存管理功能 (2)
2.4安全性和完整性要求 (2)
3 .结构设计 (3)
3.1总体功能模块图 (3)
3.2书籍信息模块图 (4)
3.3订单信息模块图 (4)
3.4顾客信息模块图 (5)
3.5数据字典 (5)
3.6 ER图设计 (6)
4 逻辑结构设计 (9)
4.1 关系模型 (9)
4.2 函数依赖 (9)
5.物理结构设计 (9)
5.1创建图书表 (9)
5.2 创建顾客表 (10)
5.3创建库存表 (10)
5.4创建订单表 (10)
6 数据库的实施 (11)
6.1 给各个表添加数据 (11)
6.2创建存储过程 (12)
6.2.1图书的存储过程 (12)
6.2.2顾客的存储过程 (13)
6.2.3 订单的存储过程 (14)
6.3 创建触发器 (15)
6.4 建立视图 (15)
6.4.1建立视图 (15)
6.5 调试运行 (16)
6.5.1查询姓张的顾客的购买记录 (16)
6.5.2 添加一条图书信息后图书表以及库存表的显示 (17)
6.5.3 查询销售量在10本以上的书,以此为畅销书 (18)
6.5.4查询某一天的销售额 (18)
7 .总结 (19)
1.引言
Internet的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Internet所起到的重大作用随着书店规模的不断扩大,员工人数的不断增多,使得书店管理的手工操作管理模式的局限性越发突出.本书店管理系统应用了科学的管理模式对员工.书籍.订单信息进行管理和维护,并且还提供了给类报表的打印,使原本非常复杂的手工管理变得简洁明了。
计算机信息管理技术的应用,除了能在相当大的程度.上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门]技术的单位带来了巨大的可见或不可见的利益与效益。
2.需求阶段分析
2.1需求分析
书店管理系统是适应时代发展的需要,提高管理的效率而开发设计的。
通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为书店管理人员提供全面、准确的各种数据。
实现了书店管理的简单化和规划化,提高了书店的工作效率,从而使书店能够以少的投入获得更好的社会效益与经济效益。
2.2数据分析
顾客表:应包含顾客号,顾客姓名以及顾客联系方式
订单表:应包含订单号,销售图书号,销售数量,金额以及日期
图书表:应包含图书编号,图书名,作者,单价,类别和出版社
库存表:应包含图书编号,总量和余量
2.3功能分析
数据库应实现的功能有:
(1)图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出
版社等),自动计算库存。
(2)按图书分类,出版社、书名、作者等条件查询图书的详细信息。
(3)销售过的图书都记录,并且能显示每种图书的销售量,将销售量高的图书定为热销书,能够查询出某一天到某一天的销售额以及订单消息
2.3.1书籍管理功能
系统设置包括图书名称设置、书籍编号、书籍出版社、书籍价格、书籍类别。
基本信息管理模块可以实现添加和重置书籍信息功能。
2.3.2订单管理功能
系统设置包括顾客姓名设置、订单日期设置、订单编号设置、订单数量设置、订单金额设置。
基本信息管理模块可以实现对订单的查询。
2.3.3顾客管理功能
系统设置包括顾客编号设置、顾客姓名设置、顾客联系方式设置。
基本信息管理模块可以实现对顾客的查询。
2.3.4库存管理功能
系统设置包括图书编号、图书总量、图书余量设置。
基本信息管理模块可以实现对图书数量的查询
2.4安全性和完整性要求
(1)安全性要求:系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
(2)完整性要求:系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
3 .结构设计
3.1总体功能模块图
图3.1
图3.2 3.3订单信息模块图
图3.3
图3.4 3.5数据字典
3.6 ER图设计
3.6..1顾客ER图
3.6.2 图书ER图
图3.6.3
图3.6.4
图3.6.5
4 逻辑结构设计
4.1 关系模型
顾客与订单是1:m类型订单与库存是1:1类型库存与图书是1:m类型关系模型如下:顾客表(顾客号、姓名、联系方式)
订单表(订单号、购买图书号、购买数量、金额、日期、顾客号
...)
图书表(编号、书名、作者、价格、类别、出版社)
库存表(编号、总量、余量)
(——代表主键,...代表外码)
4.2 函数依赖
在顾客表中,顾客号是主码,其它属性完全依赖于顾客号
在订单表中,订单号是主码,顾客号是外码,其余属性完全依赖于订单号
在图书表中,编号是主码,其余属性完全依赖于编号
在库存表中,编号是主码,其余属性完全依赖于编号
5.物理结构设计
5.1创建图书表
use books /*创建图书表*/
create table book
(
Bno char (7) primary key,
Bname nchar (20) not null,
Bwirter nchar (20) not null,
Bjiage int not null,
Bleibie nchar (20) not null,
Bcbs nchar (20) not null,
)
5.2 创建顾客表
use books /* 创建顾客表*/ create table guke
(
Gno char(7) primary key,
Gname nchar (20) not null,
Gnumber char(20),
)
5.3创建库存表
use books /*创建库存表*/
Create table kucun
(
Bno char(7) primary key,
Kzong int not null,
Kyu int,
)
5.4创建订单表
use books /*创建订单表*/
Create table Dingdan
(
Dno char(7) primary key,
Bno char(7) primary key,
Dshul int not null,
Dmoney int not null,
Dtime smalldatetime not null, Gno char(10) not null,
)
6 数据库的实施
6.1 给各个表添加数据
例use books /*给图书表添加一行数据*/
insert into book
values('101','白夜行','东野圭吾','30','侦探','天空出版社') 使用语句添加完数据的表如下:
6.1.1图书表
6.1.2订单表
6.1.3 顾客表
6.1.4库存表
6.2创建存储过程
6.2.1图书的存储过程
create proc tushu
@Bno char(7),@Bname nchar(20),@Bwirter nchar(20),@Bjiage int, @Bleibie nchar(20),@Bcbs nchar(20),@MM INT
as
if not exists (select * from book
where Bno=@Bno)
BEGIN
insert into book
values (@Bno,@Bname,@Bwirter,@Bjiage,@Bleibie,@Bcbs) INSERT INTO Kucun
VALUES (@Bno,@MM,@MM)
END
ELSE
BEGIN
UPDATE Kucun
SET Kzong=KZONG+@MM
WHERE BNO=@BNO
UPDATE Kucun
SET KYU=KYU+@MM
WHERE BNO=@BNO
END
图5.2.1
6.2.2顾客的存储过程
create proc gukecun
@Gno char(7),@gname nchar(10),@gnumber nchar(20)
as
insert into guke
values (@Gno,@gname,@gnumber )
图5.2.2
6.2.3 订单的存储过程
create proc dingdan
@dno char(10),@Bno char(10),@Dshul int,@Dtime smalldatetime, @Gno char(10) as
declare @Dmoney int
select @Dmoney=@Dshul*Bjiage
from book,Dingdan
insert into Dingdan
values (@dno,@Bno,@Dshul,@Dmoney,@Dtime,@Gno)
图5.2.3
6.3 创建触发器
针对图书信息表创建一个触发器,当向表book插入一条信息时,自动显示表中book中的记录create trigger 插入显示
on book
for insert
as
Select * from book
Insert into book values('115','幻想之城','中此撒','30','悬疑','飒飒我出版社')
6.4 建立视图
6.4.1建立视图
建立一个图书类别为侦探的视图,包括图书编号,图书名,作者,单价以及图书总量和余量create view v_leibie
as
select book.Bno ,bname,bwirter,bjiage,kzong,kyu
from book,Kucun
where book.Bno =Kucun.Bno and Bleibie ='侦探'
图6.4.1
图6.4.2 6.5 调试运行
6.5.1查询姓张的顾客的购买记录
select * from Dingdan
where Gno in (select Gno from guke
where Gname like '张%')
图6.5.1
6.5.2 添加一条图书信息后图书表以及库存表的显示
exec tushu
'115','幻想之城','中此撒','30','悬疑','飒飒我出版社','60'
图6.5.2
图6.5.3
6.5.3 查询销售量在10本以上的书,以此为畅销书
select SUM(dshul),bno
from Dingdan
group by Bno
having SUM(Dshul)>10
图6.5.4
6.5.4查询某一天的销售额
select sum (Dmoney )总金额 from Dingdan
where Dtime between '2019-11-01 'and '2019-11-02'
图6.5.5
7.设计体会
一个个星期的时间非常快就过去了,这一个星期不敢说自己有多大的进步。
获得了多少如识,但起码是了解了项目开发的部分过程。
虽说上过数据库的课程,但是没有亲身经历过相关的设计工作细节。
这次课程设计刚好提供了一个很好的机会。
通过这次课程设计发现这其中需要的很多知识我们都接触过,去图书馆查资料的时侯发现我们前边所学到的仅仅是皮毛还有很多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
本次课程设计即将结束,我完成了自己所选的课题。
通过完成这次课程设计,我加深了对相关知识的理解,加强了知识之间的联吊,促进了知识的迁移和应用。
从需求分析、概念结构设计、逻辑结构设计、物理结构设计。
亲身体验了一回系统的设计开发过程。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己-开始的设计有问题,然后又回去翻工在各种反复中不断完善自己的想法。
致谢
在这次数据库的课程设计过程中,我选择了书店销售管理系统的设计与实现。
该系统能够顺利的完成,得益于老师的悉心指导和同学的帮助。
更重要的是老师帮我们解决了许多技术的难题,以至于我们能够将书店销售管理系统的功能做得尽可能的完善。
在这过程中,我周围的同学给了我许多启发,让我把书店销售管理系统设计的更加完善,老师渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪,使我不仅了解到许多新知识、开阔了视野,更提高了自身的数据库设计能力。
另外,感谢老师给我们提供这样-一个课程设计的机会,使我们在学得专业知识的基础上能够自己动手并独立地完成数据库的设计与开发,使我们能够更多的学习-些实践应用知识,增强实际操作和动手应用能力。
最后,我再一次感谢在整个课程设计期间,在各个方面给予我们帮助的老师和同学,正是因为有了你们的帮助,才使我们的课程设计得以顺利完成。
参考文献
[1]李彦,韩光林,李玉波. SQL SERVE完全自学手册[M].北京:电子工业出版社,2007
[2]萨师煊,王珊.数据库系统概论.北京:高等教育出版社.2005
[3]Y.Daniel Liang.Java.万波. JAVA语言程序设计[M].第六版.北京:机械工业出版社,2008
[4]《数据库原理及应用》,钱雪忠主编,北京邮电大学出版社,2007,第二版
[5]《SQL server 2000数据仓库与Analysis Services》,Bain T著,中国电力出版社,2003
[6]《数据库技术与联机分析处理》王珊主编,北京科学出版社,1998
课程设计成绩评定表。