某书店图书进货管理销售系统实验.docx
《某书店图书进货管理销售系统实验.docx》由会员分享,可在线阅读,更多相关《某书店图书进货管理销售系统实验.docx(22页珍藏版)》请在冰豆网上搜索。
某书店图书进货管理销售系统实验
数据库原理课程设计报告
设计题目:
某书店图书进货、销售管理系统
专业班级软件工程
学号
学生姓名
摘要
随着书店规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。
在这种情况作为一个大型书店如何制作一个图书进货、销售管理系统,以适应时代发展和业务需要,已成为其盈利重要因素之一,正是基于上述情况必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
所以开发了本系统,从而模拟书店对图书信息、客户信息、供应商信息、进货信息、销售信息等的管理,本系统基于SQLServer2000数据库服务器,主要是提高图书管理工作效率,降低管理成本,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。
7.1建立数据库、数据表、视图、索引…………………………………………16
1.问题描述
1.1背景
21世纪是网络的时代、信息的时代,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
另一方面,随着书店规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。
在这种情况作为一个大型书店如何制作一个图书进货、销售管理系统,以适应时代发展和业务需要,已成为其盈利重要因素之一,正是基于上述情况必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
所以开发了本系统,从而模拟书店对图书信息、客户信息、供应商信息、进货信息、销售信息等的管理,本系统基于SQLServer2000数据库服务器,主要是提高图书管理工作效率,降低管理成本,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。
1.2系统需求分析
通过调查对书店的信息要求、处理要求、完整性与安全性需求的了解,根据具体的数据库管理系统,开发令书店满意的图书管理系统。
调查的重点是“数据”和“处理”,通过调查、收集与分析。
获得书店对数据库开发的需求如下:
●信息要求:
对书店工作流程进行调查,了解书店当前的组织结构、管理模式和具体的工作职能及业务流程。
以便书店从数据库中获得信息的内容与性质。
由信息要求可以导出数据要求,即在数据库中需要存储那些数据。
●处理要求:
明确书店管理系统的目标与功能,以及处理方式。
●安全性与完整性要求:
防止数据库中存在不符合语义的数据进入数据库,以及非法用户和非法操作数据库
●在完整的需求分析之后确定新系统的功能,然后根据数据库设计的具体步骤,完成具体的数据库设计。
最终完成一个符合用户需要、科学合理的书店管理系统。
管理系统分析如下图:
图1—1管理系统分析图
1.3功能需求
1.3.1书店管理信息系统功能分析:
1.书店进货管理模块:
一个书店的成立首要是购进不同种类的书籍,以便满足城市不同阶层的需要,更有利于书店的销售盈利,所以了解需求图书的种类、用户消费的一般水平、社会的关注动向都是进货时要求分析到的方面。
2.图书类别管理模块:
不同的阶层对书籍需求不同,不同的年龄段所买的书籍也有所不同,从而要非常仔细、深入的了解。
3.销售管理模块:
该模块对书店所销货物进行实时的管理,以便及时进行查询,以为以后的进货管理提供实际的依据。
4.库存管理模块:
本模块实现了对单位库存情况的快速统计,以方便对货物的即时查询,以便是否进行对货物的及时补充。
1.3.2书店管理系统功能模块图
图1—2书店管理系统功能模块图
2需求分析
2.1业务流程图
2.1.1书店进货、销售管理的工作流程
#产品购进
确定图书名称,型号,数量---发货订货通知---签订合同---汇出预付款---接收图书---图书入库
#产品售出
接受买主购货通知---签订合约---接受预收款---通知发货---产品出库
#营销人员工作
工作范围---客户信息收集---产品介绍---签订合同---售后工作---取得回款---领取提成
2.1.2书店进货、销售管理的业务流程图
图2—1书店进货、销售管理的业务流程图
﹒2.2数据流程图
书店管理员通过管理系统了解书店图书信息,适当的对书店存在的书籍存在与否、销售情况等进行分析,从而完成以后的进货方向。
(1)书店进货销售顶层数据流程图
图2—2顶层数据流程图
(2)销售管理子系统第一层数据流图
图2—3子系统数据流图
﹒2.3数据字典
·数据项
数据项编号
数据项名
数据项含义
存储长度
DI-1
BookID
图书编号
Char(10)
DI-2
BookName
图书名
Char(20)
DI-3
Bookwriter
图书作者
Char(10)
DI-4
Bookpublish
图书出版社
Char(10)
DI-5
Bookprice
图书单价
Int(4)
DI-6
Bookddate
图书出版日期
Date
DI-7
Bookclass
图书类别
Char(20)
DI-8
Bookstate
图书是否卖出
Char(10)
DI-9
Purchaseaddress
供书商地址
Char(30)
DI-10
Purchasemobile
供书商电话
Char(15)
DI-11
Booksumtotal
应付总金额
Float(4,2)
DI-12
Payway
付款方式
Char(15)
DI-13
Buyinvoice
是否要发票
Boolean
DI-14
Bill
收据
Char(20)
DI-15
Mid
管理员编号
Char(10)
DI-16
Mname
管理员姓名
Char(10)
DI-16
Msex
管理员性别
Char
(2)
DI-17
Mauth
管理员权限级别
Char(4)
DI-18
MTTeleph
管理员电话
Char(15)
DI-19
Maddre
管理员地址
Char(30)
DI-20
Roomnum
图书数目
INT(4)
DI-21
Roomaddre
图书地址
Char(20)
3.概念结构设计
·3.1概念结构概述
概念模型设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,是各种数据模型的共同基础。
用户的需求具体体现在各种信息的提供、保存、更新和查询,这要求数据库能充分满足各种信息的输入和输出。
概念结构的主要特点是:
(1)能真实充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。
是对现实世界的一个真实模拟。
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
(4)易于向关系、网状、层次等各种数据模型转换。
通过上述系统功能的分析,针对书店进书、销售系统的需求,总结出以下需求信息:
1)每一书店可以在多个供书商处购买,每供书商可供给多个书店。
2)每一仓库可以放置多种类别的书,一种类别只放在一个仓库。
3)每种图书类别下可以有多种图书。
3.2E-R图
有上述关系分析,则可以把书店销售管理系统设计以下实体:
图书类别实体、图书实体、供书商实体、订单实体、仓库实体、管理员实体。
则各实体之间关系的E-R图3-1所示:
图3-1实体之间关系的E-R图
3.2.1图书类别实体E-R图:
图3-2图书类别实体E-R图
3.2.2图书信息实体E-R图:
图3-2图书读者信息实体E-R图
3.2.3订单信息实体E-R图:
图3-3订单信息实体E-R图
3.2.4供书商信息实体E-R图:
图3-4供书商信息实体E-R图
3.2.5仓库信息实体E-R图:
图3-5仓库信息实体E-R图
3.2.6管理员信息实体E-R图:
图3-6管理员信息实体E-R图
3.2.7顾客信息实体E-R图:
图3-7顾客信息实体E-R图
根据书店管理处理需求,对应数据表的设计及功能如下:
﹒图书类别基本信息表:
涉及书店提供的各类书籍信息。
﹒图书基本信息表:
存放书店所售图书的基本信息。
﹒订购单基本信息表:
存放与供书商相关的订单的基本信息。
﹒供书商基本信息表:
存放供书商的基本信息表。
﹒管理员基本信息表:
存放书店管理员一些基本信息表。
﹒仓库基本信息表:
存放书店书籍放置的基本信息表。
·顾客基本信息表:
存放书店购书信息。
4.逻辑结构设计
概念结构是独立于任何一种数据模型的信息结构。
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
对某一种数据模型,各个机器系统又有许多不同的限制,提供不同环境与工具。
所以设计逻辑结构时一般要分3步进行:
1)将概念结构转换为一般的关系、网状、层次模型;
2)将转换来的关系模型向特定DBMS支持下的数据模型转换;
3)对数据模型进行优化。
·4.1E-R图向关系模型的转换
关系模型的逻辑结构是一组关系模式的组合。
E-R图则是由实体型、实体的属性和实体型之间的联系3个要素组成的。
所以将E-R转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,把1:
1、1:
N、N:
M关系转换为一些独立的关系模式或者把之间联系相互合并。
由图3-1实体E-R图转化的关系模型如下:
图书类别:
booktype(typeID,typeName,ISdelete)。
图书:
book(bookID,bookname,bookauthor,bookprice,publisher,publishdate,typeID,bookcount)。
订单:
order(orderID,ordercount,buyeradress,buyertelephone,ordersum,buyername,)。
供书商:
purchase(purchaseID,purchaseadress,ship,purchasetelephone)。
仓库:
store(storeID,count,putdate,adminisID)。
管理员:
adminis(adminiID,adminissex,adminisname,administele,admniosage)。
顾客:
customer(buydate,customername,customersex,customeradress,customerage)
统计:
statistics(bookID,adminisID,counts)。
存放:
load(bookID,storeID,loaddate)。
购买:
Buy(bookID,orderID,buycount)。
销售:
Sell(bookID,customername,sellcount)。
(1)图书类别基本信息表-booktype
字段名
数据类型
长度
描述
键引用
typeID
Char
10
类型标识
主键
typeName
Char
50
类型名称
ISdelete
CHAR
2
是否删除
表4-1图书类别基本信息表
(2)图书基本信息表-book
字段名
数据类型
长度
描述
键引用
bookID
Char
10
图书编号
主键
bookname
Char
50
书名
bookauthor
Char
20
作者
publisher
Char
50
出版社
publishdate
Char
8
出版日期
typeID
Char
10
类型编号
外键
bookcount
Int
数量
bookprice
Numeric
6
价格
表4-2图书基本信息表
(3)订单基本信息表-order
字段名
数据类型
长度
描述
键引用
orderID
Char
10
订单号
主键
ordercount
Int
订单量
buyeradress
Char
50
收货人地址
buyertelephone
char
15
收货人电话
ordersum
Numeric
9
订单总和
buyername
Char
20
收货人
表4-3订单基本信息表
(4)供书商基本信息表-purchase
字段名
数据类型
长度
描述
键引用
purchaseID
Char
10
供书商编号
主键
purchaseadress
Char
50
供书商地址
ship
Char
20
平邮
purchasetelephone
Char
15
电话
表4-4供书商基本信息表
(5)仓库基本信息表-store
字段名
数据类型
长度
描述
键引用
storeID
Char
10
仓库号
主键
count
Int
存放数量
putdate
Char
8
入库时间
adminisID
Char
10
管理员号
外键
表4-5仓库基本信息表
(6)管理员基本信息表-adminis
字段名
数据类型
长度
描述
键引用
adminiID
Char
10
管理员编号
主键
adminissex
Char
10
性别
adminisname
Char
20
姓名
administele
Char
15
电话
admniosage
Char
8
年龄
表4-6管理员基本信息表
(7)顾客基本信息表-customer
字段名
数据类型
长度
描述
键引用
customername
Char
20
顾客姓名
主键
buydate
Char
8
购买日期
customersex
Char
8
顾客性别
customeradress
Char
50
顾客地址
customerage
Char
8
顾客年龄
表4-7顾客基本信息表
(8)统计基本信息表-statistics
字段名
数据类型
长度
描述
键引用
bookID
Char
10
图书编号
主键(外键)
adminisID
Char
10
管理员编号
主键(外键)
counts
Int
数量
表4-8统计基本信息表
(9)存放基本信息表-load
字段名
数据类型
长度
描述
键引用
bookID
Char
10
图书编号
主键(外键)
storeID
Char
10
仓库号
主键(外键)
loaddate
Char
20
入库日期
表4-9存放基本信息表
(10)购买基本信息表-Buy
字段名
数据类型
长度
描述
键引用
bookID
Char
10
图书编号
主键(外键)
orderID
Char
10
订单号
主键(外键)
buycount
Int
购书量
表4-10购买基本信息表
(11)销售基本信息表-Sell
字段名
数据类型
长度
描述
键引用
bookID
Char
10
图书编号
主键(外键)
customername
Char
10
顾客姓名
主键(外键)
sellcount
Int
销售量
表4-11销售基本信息表
5.物理结构设计
数据库的物理设计就是为逻辑数据模型选取一个最适合应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构。
(2)对物理结构进行评价,评价的重点是时间和空间效率。
为数据库中各基本表建立的索引如下”
(1)由于图书基本表BOOK的主码,BOOKID经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一索引。
(2)由于基本表BOOKTYPE的属性TYPENAME,经常在查询条件中出现,并在两个属性上建立聚簇索引。
(3)订单信息表ORDER的属性ORDERID和ORDERSUM,经常在查询条件中出现,并考虑在其上建立聚簇索引。
(4)仓库信息表STORE的一属性STOREID,经常在查询条件中出现,并考虑在其上建立聚簇索引。
6.角色与触发器设计
定义BEFORE行级触发器,为仓库表STORE定义完整性规则“存放量不低于1000本,如果低于1000本,自动改为1000本”。
CREATETRIGGERINSERT_OR_UPDATE_STORE
BEFOREINSERTORUPDATEONSTORE
FOREACHROW
ASBEGIN
IF(NEW.COUNT<1000)THEN
NEW.COUNT:
=1000;
ENDIF;
END;
7.数据库的实施和维护
·7.1建立数据库、数据表、视图、索引
7.11建立数据库
CREATEDATABASESALEBOOK
7.12建立数据表
(1)图书信息表的建立
CREATETABLEBOOK
(BOOKIDCHAR(10)PRIMARYKEY,
Booknamechar(50)notnull,
Bookauthorchar(20),
Publisherchar(50),
Publishdatechar(8),
typeIDchar(10)notnull,
bookcountint,
bookpricenumeric(6),
FOREIGNKEYTYPEIDREFERENCESBOOKTYPE(TYPEID));
(2)图书类别信息表建立
CREATETABLEBOOKTYPE
(TYPEIDCHAR(10)PRIMARYKEY,
TYPENAMECHAR(50),
ISDELETECHAR
(2));
(3)订单信息表
CREATETABLEORDER
(ORDERIDCHAR(10)NOTNULL,
ORDERCOUNTINT,
BUYERADRESSCHAR(50),
BUYERTELEPHONECHAR(15),
ORDERSUMNUMERIC(9),
BUYERNAMECHAR(20),
PRIMARYKEY(ORDERID));
(4)供书商信息表
(5)仓库信息表
(6)管理员信息表
(7)顾客信息表
(8)统计信息表
(9)存放信息表
(10)购买信息表
(11)销售信息表
均同上
(1)
(2)(3)如此建表。
7.13建立视图
(1)查询图书基本信息的视图
CREATEVIEWBOOK_VIEW(图书号,书名,作者,价格,出版社,出版时间)
AS
SELECTBOOKID,BOOKNAME,BOOKAUTHOR,BOOKPRICE,
PUBLISHER,PUBLISHDATE
FROMBOOK
(2)查询仓库基本信息的视图
CREATEVIEWSTORE_VIEW(仓库号,存放数量,入库时间,管理员号)
AS
SELECTSTOREID,COUNT,PUTDATE,ADMINIS
FROMSTORE
(3)查询存放基本信息的视图
CREATEVIEWLOAD_VIEW(图书编号,仓库号,入库日期)
AS
SELECTBOOKID,STOREID,LOADDATE
FROMLOAD
7.14建立索引
CREATECLUSTEREDINDEXPURCHASESHIPONPURCHASE(SHIP);
CREATEUNIQUEINDEXBKIDONBOOK(BOOKID);
8.结束语
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。
虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。