当前位置:文档之家› 书店进货销售管理系统

书店进货销售管理系统

数据库原理及应用课程设计设计报告题目:书店进货、销售管理系统学号:学生姓名: 指导教师:提交时间: 2015-1-5目录第1章需求分析 (3)需求调查 (3)系统功能分析 (3)第2章面向对象分析和设计 (4)第3章逻辑结构设计 (4)类和对象向关系模式转换 (4)第4章数据库物理结构设计 (5)存取方法设计 (5)存储结构设计 (5)物理设计 (5)第5章数据库完整性设计 (7)主键及唯一性索引 (7)参照完整性设计 (7)触发器设计 (8)第6章数据库视图设计 (9)第7章数据库存储过程设计 (10)总结 (10)参考文献: (10)第1章需求分析需求调查通过对各个用户的调查,该书店进货、销售管理系统有如下需求:1)?实现图书类别、出版社、图书、仓库信息的管理;2)?实现进货、入库管理;3)?实现销售、出库管理;4)?查询某段时间内各种图书的进货和销售情况;5)?查询各类图书的库存总数;6)?当图书入库时自动修改相应图书的总量和存放仓库中该图书的数量;7)?一单可以处理多种图书(比如销售设置销售单及其明细两个表);8)建立数据库相关表之间的参照完整性约束。

服务器配置:对它进行配置可以使得在其他电脑上也照常使用。

这样不必每次都到数据库中去更改。

9)帮助系统:帮助系统为用户指明方向。

系统功能分析图11.进货管理模块:书店的图书一直在更新,当货源不足、新书上映时都需要进货。

进货管理模块主要实现查询图书数量,当数量不足时进行图书订购,进货后进行图书入库操作,将图书数量进行更新。

2.图书类别管理模块:书店的管理对如此多的图书管理起来会很麻烦,进行图书进行分类管理会更方便、快捷。

管理员可以查看、添加、修改、删除类别。

3.销售管理模块:书店的收入都是来自图书销售,因此对图书销售管理是必不可少的。

管理员可以进行查看销售图书的数量、名称、价格、日期;添加订单。

高级管理员还可以修改。

4.库存管理模块:当图书数量不足时会影响到书店的信誉,数量过多时又会影响书店正常运营。

对书店库存管理也是重中之重。

管理员可以通过库存管理查询图书剩余数量。

面对用户需求分析在书店进货、销售管理系统中,最主要的功能就是对图书进货、销售、库存的管理以及查询功能。

因此,可以将书店进货、销售管理系统分为进货、销售、库存三个子系统。

而在所设计的书店进货、销售管理系统中,主要有两类类用户,即图书管理员、书店管理员。

各类用户在该系统中的需求不同,权限也不同。

因此,为了更明确,更系统的了解用户需求,我们还可以将管理系统再细分为图书管理系统,书店管理系统。

同样,将查询系统也按用户职能进行细分,即图书查询系统,书店查询系统。

这样细分后,看似把系统需求繁杂化了。

其实不然,细分后使各用户需求更加明确了,并且能更好的把握系统需求。

第2章面向对象分析和设计类和对象设计如下:Array Array图 2第3章逻辑结构设计局部E-R图图 3全局E-R图:图 4类和对象向系模式转换图书(图书号,图书名,作者,价格,类别号,数量,出版社)图书类别(类别名,类别号)供应商(供应商名称,供应图书号,图书价格)进货订单(订单号,图书号,图书数量,进货价格,进货日期)销售订单(订单号,图书号,图书数量,销售价格,销售日期)库存(图书号,图书数量,进货价格,进货日期,销售价格,销售日期,销售数量,进货数量)第4章数据库物理结构设计4.1存取方法设计数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。

对于系统来说,为了提高某些属性的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。

这样会大大提高查询速度。

因此,该系统中选择聚簇存取方法。

存储结构设计书店进货、销售管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(B/S),客户端/服务器(C/S)混合的应用体系结构来建设。

数据库管理系统采用Microsoft 公司推出的SQL Server 2008 或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。

物理设计实现该设计的环境为Windows XP Professional + MS SQL Server 2008 或以上版本。

1、建立书店进货销售数据库create database 书店进货销售2、建立图书信息表use 书店进货销售create table 图书信息表(图书号 int primary key,图书名 char(20),作者 char(20),价格 int,类别号 int,数量 int,出版社 char(20),备注 text,);3、建立图书类别表create table 图书类别(类别号 int primary key,类别名 char(16),);create table 进货订单(订单号 int primary key,图书号 int,图书数量 int,图书价格 int,进货日期 char(10),4、建立销售订单表create table 销售订单(订单号 int primary key,图书号 int,图书数量 int,图书价格 int,销售日期 char(10),);5、建立库存表create table 库存(图书号 int primary key,图书数量 int,进货价格 int,进货日期 char(10),进货数量 int,销售价格 int,销售日期 char(10),销售数量 int,);6、建立供应商表create table 供应商(供应商名称 char(20) ,供应图书号 int,图书价格 int,Primary key(供应商名称,供应图书号));第5章数据库完整性设计主键及唯一性索引图 55.2参照完整性设计1、图书信息表中将类别号设计为图书类别的外键alter table 图书信息表 foreign key (类别号) references 图书类别(类别号) 2、进货订单表中将属性图书号为图书信息表的外键foreign key (图书号) references 图书信息表(图书号)3、销售订单表中将属性图书号为图书信息表的外键foreign key (图书号) references 图书信息表(图书号)触发器设计Create Trigger入库On 进货订单FOR InsertAsdeclare @n intSelect @n=图书号 from inserteddeclare @num intSelect @num=图书数量 From insertedUpdate 图书信息表set 数量=数量+@numWhere 图书号=@nCreate Trigger 入库1On 进货订单FOR InsertAs beginupdate 库存set 库存.图书数量-=销售订单.图书数量from 库存,销售订单where 库存.图书号=销售订单.图书号; End;Create Trigger 出库On 销售订单FOR InsertAs beginupdate 库存set 库存.图书数量-=销售订单.图书数量from 库存,销售订单where 库存.图书号=销售订单.图书号;end;Create Trigger 出库1On 销售订单FOR InsertAs beginupdate 图书信息表set 库存.图书数量-=销售订单.图书数量from 图书信息表,销售订单where 图书信息表.图书号=销售订单.图书号; end;存储过程查询某段时间内各种图书的进货和销售情况ALTER procedure 图书进货销售情况as beginSELECT 进货订单.订单号,进货订单.图书数量,进货日期,销售订单.订单号,销售订单.图书数量,销售日期from 进货订单,销售订单where 销售日期 >= '2014-1-1' and 销售日期 <= '2014-12-31'and进货日期 >= '2014-1-1' and 进货日期 <= '2014-12-31'end;第6章数据库视图设计1、建立查询各个类别类别总数的视图Create view 图书库存SELECT SUM(数量) AS 总数, 类别号FROM dbo.图书信息表GROUP BY 类别号2、供应商对比Create view 图书库存Select s1.供应商名称、s1.供应图书号、s1.图书价格Form 供应商 s1,供应商 s2Where s1.供应图书号=s2.供应图书号;3、建立销售订单应付总金额create view 应付金额1asselect 图书数量*图书价格总数, 订单号from 销售订单;4、建立书店总销售create view 应付金额asselect sum(图书数量*图书价格) 总数from 销售订单;第7章数据库存储过程设计1、存储过程查询某段时间内各种图书的进货和销售情况ALTER procedure 图书进货销售情况as beginSELECT 进货订单.订单号,进货订单.图书数量,进货日期,销售订单.订单号,销售订单.图书数量,销售日期from 进货订单,销售订单where 销售日期 >= '2014-1-1' and 销售日期 <= '2014-12-31'and进货日期 >= '2014-1-1' and 进货日期 <= '2014-12-31'end;总结通过这次数据库课程设计,我深刻的体会到作为DBA要考虑到方方面面的问题。

刚开始我根本不知道从哪下手,本来打算直接用powerdesigner直接做出来但是由于结构不太清晰,又参考了网上的系统,分析好了要建哪些表,从SQL中慢慢建表。

刚开始用英文定义的,可是由于没有连续的时间,英文易混。

反反复复的建了好几次表,最后用中文定义的。

也从刚开始的直接建表变为了后来的代码建表。

后来的E_R图是用visio完成的,数据是由随机生成数据工具生成的。

视图建立过程中,除了规定的查询各类图书的库存总数,又建立了供应商对比(根据图书号查询不同供应商的价格差)、应付金额(书店进货应付的总金额)、应付金额1(每个订单号应付的金额,即顾客应付的金额)。

触发器设计中建立了销售、进货修改图书信息表与库存图书数量。

建立了存储过程查询某段时间内各种图书的进货和销售情况。

参考文献:1.王珊,萨师煊 .数据库系统概论[M]. 高等教育出版社,20052.郑阿奇等. SQLserver实用教程(第3版)[M] . 电子工业出版社,20093.赵乃真等. 信息系统设计与应用. 清华大学出版社,2005。

相关主题