数据库书店管理系统函SQL语句.docx
《数据库书店管理系统函SQL语句.docx》由会员分享,可在线阅读,更多相关《数据库书店管理系统函SQL语句.docx(19页珍藏版)》请在冰豆网上搜索。
数据库书店管理系统函SQL语句
工程概况ﻩ1
2。
1项目所用的时间1
2。
2项目负责人1
2。
3项目指导人1
正文2
3.1设计的目的和意义ﻩ2
3。
2目标和总体方案ﻩ3
3.3设计方法和内容ﻩ3
3.3.2软件环境ﻩ3
3.4设计流程图及数据库ﻩ3
查询存储过程10
存储功能插入功能的验证13
存储功能删除功能的验证14
存储功能更新功能的验证ﻩ14
触发器功能的验证ﻩ14
3.5。
1设计的特点15
3.5.2设计的难点ﻩ17
3。
6结论ﻩ17
3.6.1存在的问题ﻩ17
3。
6.2解决方案ﻩ18
参考文献18
前言
计算机技术作为现代科学技术的基础和核心,已经而且将继续对人类文明社会的进步与发展产生深刻影响。
在我们生活的21世纪里计算机技术已经在各行各业中发挥着不可替代的作用。
当前越来越多的商业、企事业单位已经将计算机技术应用于日常的管理工作。
科学的运用计算机技术进行管理工作不仅可以使管理工作规范化、系统化、自动化而且可以节省相当的人力、物力。
它能够使用户的管理工作走上良性运转轨道,从而为其快速发展奠定基础.因此各单位对与本行业相关管理软件的需求也十分迫切。
管理信息系统(MIS,ManagementInformationSystem)是一个由人和计算机等组成的能够提供信息以支持一个组织机构内部的作业,管理、分析和决策职能的系统。
进、销、存的管理是企业自身管理信息系统的重要组成部分。
工程概况
2.1项目所用的时间
从这个项目开始到结束总共历时2周.完成于2014年6月15日。
2。
2项目负责人
陈军辉计算机科学与技术16-5,学生.
2。
3项目指导人
陈纪龙,男,信息工程学院教师,讲师。
正文
目前市面上流行的进销存管理系统不少。
但是,对于书店图书的进销存系统来说,不需要大型的数据库系统。
只需要一个操作方便,功能实用,能同时满足进销存分析管理及需求的系统。
我们的目标就是在于开发一个功能实用、操作方便,简单明了的图书进销存管理系统.
该系统有售书管理模块、出库管理模块、库存管理模块、订书管理模块、入库管理模块和数据统计分析模块六部分组成,可以完成图书的进货、出货、查询等基本操作,完成阶段的销售情况、财务利润等信息。
通过对基本操作的查询,用户可以掌握图书受欢迎情况,并能够对图书情况进行统计,从而适应市场的需求进行规划决策。
3.1 设计的目的和意义
通过对现在流行的各种进销存软件的分析,我们发现市场上的软件过于繁琐,操作比较复杂,而其中软件的许多功能不被小型企业所采用,造成软件冗余量大。
图书进销存管理系统设计的总体目标是通过对销售、订单、库存的管理,及时准确了解销售、库存等综合情况,以便为管理者做出准确的判断提供依据。
并通过图书进销存数据的分析,为管理及决策人员提供库存资金占用情况、图书库存情况。
图书进销存管理系统的使用者要求系统具有良好的可靠性和可操作性,它的各种基本的操作容易为管理者所掌握,有较好的完全性,并要求系统具有高效率,易维护,可移植性较好等特点,我们据此展开分析。
3。
2目标和总体方案
现代社会是一个信息时代,计算机的进步对这个社会十分重要,然而,计算机的发展促使了我们最大限度地利用计算机和网络,把我们这个世界缩小。
因此我们必须开发各种聊天软件、形式多样的网页、各种论坛,方便网友使用,查找自己有用的资料、找其他网友进行聊天交流。
这一切都需要我们学好坚实的理论知识,为人类服务。
本次设计的目标在于将广告系统生动形象地在网页中再现和描述出来。
于是特制订了一个总体的方案。
由于时间只有七天天,故做了如下的计划安排,将这项工程分为两大部分:
程序的设计和程序的调试。
首先在程序的设计部分由分为以下几个步骤:
第一步:
查阅有关制作网页和相关资料,用半天的时间.
第二步:
设计这个项目的整体结构,并制定需要达到的目的,用一到两天的时间。
第三步:
用SQL建立表,完善,用三天左右的时间。
其次,进行数据库的增删改调试,用一天左右.
3.3 设计方法和内容
在这个项目的设计上,我们使用了SQL2008。
因为SQL2008具有丰富的表达能力以及代码的高效性,并且有着良好的兼容性。
设计者将这个项目整体使用了数据库设计,构成了这个项目的全部面貌。
3。
3.1硬件环境
微型计算机:
联想台式品牌机
中央处理器:
Pentuim4主频:
3.0GHz
主存容量:
512M
硬盘容量:
80G
3.3.2软件环境
WindowsXP操作系统
Microsoftoffice记事本程序
SQL2008
3。
4设计流程图及数据库
3..4.1设计流程图
使用了业务流程图来描述管理业务虽然形象的表达了信息的流动和存储状况,但是仍旧没有完全脱离一些物质要素,而只是仅仅得到了一个现行系统的物理模型。
为了用计算机对信息进行管理,必须舍去物质,抽象出信息流,详细调查数据及数据流程.
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合的反映出信息在系统中的流动、处理和存储情况.根据上面业务流程图的描述,从系统的科学性、管理的合理性、实际运行的可行性角度出发,自顶向下对系统进行分解,导出了图书管理系统的系统关联图、系统顶层图和系统分解图。
数据流程图有外部实体、处理(数据加工)、数据存储、数据流四个部分组成.他们的符号表示如下:
.3.4.2数据库的设计
—-建立数据库
createdatabase BookStore
--创建购书单表
createtableShopList
(BuyID char(9)primarykey,
Bknamechar(8)notnull,
Bknumint,
BuyDay DateTime,
BuyMoneyFloat
);
—-创建供应表
createtable Supply
(SupIDchar(8)primarykey,
BkIDchar(10),
SIDchar(10),
InTimeDateTime,
InNumint
);
—-创建图书表
createtableBook
(BkIDchar(8)primarykey,
Bknamechar(8)notnull,
SIDchar(10),
Bkwriterchar(12),
BkpriceFloat,
PublishDate DateTime
);
—-创建供应商表
createtableSupplier
(SIDchar(10)primary key,
Sname char(8),
Saddrchar(8),
Stelchar(12),
Spostchar(8)
);
——创建仓库管理员表
create tableAdm
(AdIDchar(8)primary key,
AdNamechar(5),
AdPaswd char(6)
);
——创建仓库表
create tableWareHouse
(WID char(3)primarykey,
Warea int,
AdIDchar(8)
);
--创建存储表
createtableStore
(WID char(3),
BkID char(8),
InTimeDateTime,
Snumint,
OutTime DateTime,
primarykey(WID,BkID),
foreignkey(WID)referencesWareHouse(WID),
foreignkey(BkID)referencesBook(BkID)
);
--创建退书单表
create tableReturnList
(retnIDchar(8)primarykey,
Bknamechar(8)notnull,
retnNumint
);
--创建退书表
createtableReturnBook
(retnID char(8),
BkIDchar(8),
Bknamechar(8),
retnNumint,
primarykey(retnID,BkID),
foreign key(retnID)references ReturnList(retnID),
foreignkey(BkID)references Book(BkID)
);
-—创建购书表
createtableBuyBook
(BuyID char(9),
BkIDchar(8),
Bknamechar(8),
Bknumint,
BuyMoneyFloat,
primary key(BuyID,BkID),
foreignkey(BuyID)referencesShopList(BuyID),
foreignkey(BkID)referencesBook(BkID)
);
--建立视图
——建立购书单视图
create viewShopList_view
as
select BuyID,Bkname,Bknum,BuyDay
fromShopList
--建立供顾客查询图书信息的视图
createview BuyBook_view
as
selectBkname,Bkwriter,Bkprice,SID
fromBook
--建立供管理者查询图书信息的视图
createviewAdmBook_view
as
selectBook.BkID,SID,Bkname,Bkwriter,Bkprice,WID
fromBook,Store
where Book.BkID=Store。
BkID
--建立查询供应商信息的视图
createviewAdmS_view
as
select SID,Sname,Saddr,Stel,Spost
fromSupplier
——建立查询仓库信息的视图
createview WareHos_view
as
select WID,Warea
fromWareHouse
——建立查询仓库管理员的视图
create viewAdm_view
as
selectWID,Adname
fromAdm,WareHouse
whereAdm。
AdID=WareHouse。
AdID
--建立查询库存情况的视图
create viewStore_view
as
select WID,InTime,Snum
fromStore
—-建立查询供应关系的视图
createviewSup_view
as
selectSID,InNum
fromSupply
——建立索引
createuniqueindexBookInfo1onBook(BkID);
create uniqueindexCBuyInfo1onShopList(BuyID);
createuniqueindexSupInfoon Supplier(SID);
createuniqueindexWareInfo1 onWareHouse(WID);
--create clustered indexCBuyInfo2 on ShopList(BkNum,BuyDay);
—-createclusteredindex WareBInfo2onStore(InTime,OutTime);
--createclusteredindexBuyInfoonSupply(InNum,InTime);
建立查询的存储过程
create procedurep1_query_Adm
@AdIDchar(8)
as
select*
fromAdm
whereAdID=@AdID
createprocedurep2_query_Book
@Bkwriter char(12)
as
select *
fromBook
where Bkwriter=@Bkwriter
createprocedurep3_query_ShopList
@BuyDaydatetime
as
select*
fromShopList
where BuyDay=@BuyDay
create procedure p4_query_Store
@InTimedatetime
as
select *
fromStore
where InTime=@InTime
——根据仓库管理员姓名查询仓库图书信息
createprocedurep5_query_Ad_Book
@AdNamechar(5)
as
selectAdName,Book.BkID,Book.Bkname,Bkwriter,Store.Snum
fromAdm,Book,Store,WareHouse
whereWareHouse.WID=Store。
WIDand Book。
BkID=Store.BkIDandAdName=@AdName
createprocedurep6_query_Supplier
@Bknamechar(8)
as
selectSupplier.SID,Sname,Saddr,Stel
fromSupplier,Book
whereBook.SID=Supplier。
SIDandBook。
Bkname=@Bkname
建立具有插入功能的存储过程
createprocedureShopList_insert
@BuyIDchar(9),
@Bknamechar(8),
@Bknum int,
@BuyDay DateTime,
@BuyMoneyFloat
as
insert intoShopList
values(@BuyID,@Bkname,@Bknum,@BuyDay,@BuyMoney);
createprocedure Supply_insert
@SupID char(8) ,
@BkIDchar(10),
@SIDchar(10),
@InTimeDateTime,
@InNumint
as
insertintoSupply
values(@SupID,@BkID,@SID,@InTime,@InNum);
建立具有删除功能的存储过程
create proceduredelete_Supplier
@Snamechar(8)
as
delete
fromSupplier
whereSname=@Sname
建立具有更新功能的存储过程
create procedureupdate_Adm
@AdID char(8),@AdNamechar(5)
as
updateAdm
setAdName=@AdName
whereAdID=@AdID
触发器的建立
进货后在库存表中更新记录的触发器
createtriggertr_supply_Store
onsupplyafter insert
as
declare@InNumint,@BkIDchar(8)
select@InNum=InNum,@BkID=BkID
frominserted
updateStore
set Snum=Snum+@InNum
whereBkId=@BkID
销售图书后在存储表中更新记录的触发器
Createtriggertr_ShopList_Store
on ShopListafterinsert
as
declare @Bknum int ,@Bknamechar(8),@BkID char(8)
select@Bknum=inserted.Bknum,@BkID=Book.BkID
frominserted,Book
whereBook。
Bkname=inserted.Bkname
updateStore
setSnum=Snum-@Bknum
查询存储过程
查询管理员信息
根据作者查询图书信息
根据日期查询销售信息
根据入库日期查询仓存储信息
根据仓库管理员姓名查询仓库图书信息
根据图书查询供应商信息
存储功能插入功能的验证
存储功能删除功能的验证
存储功能更新功能的验证
触发器功能的验证
进货时增加货物的库存量
销售货物时减少货物的库存量
3.5设计创新与关键技术
3.5。
1设计的特点
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码.
1。
将E-R模型转换为关系模型
转换原则:
一个1:
1联系可以转换为一个独立的关系,也可以与任意一段对应的关系模式合并。
如果转化为一个独立的关系模式,则与该联系相连的各个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一个实体对应的关系合并,则需要在该关系模式的属性中加入另一个关系的主码和联系本身的属性。
一个m:
n的联系可以转化为一个单独的关系模式,这个单独的关系模式的主码是两端实体的码,再加上联系的属性。
一个1:
n联系可以转化为一个独立的关系模式,也可以与n端的关系模式合并作如果与n端的关系模式合并,在n端的关系模式中加上另一端关系的码和联系属性。
根据以上规则,本系统的E-R模型向关系模型转换如下(其中关系的码用下划线标出):
购书单(购书单编号,图书名称,图书数量,购书日期,购书费用)
购书(购书单编号,图书编号,图书名称,购书数量,购书费用)
退书单(退书单编号,图书名称,图书数量)
退书(退书单编号,图书编号,图书名称,退书数量)
图书(图书编号,图书名称,供应商,单价,作者)
供应商(供应商号,供应商名称,地址,邮编,电话)
供应(供应商编号,图书编号,供应数量)
仓库管理员(仓库管理员编号,仓库管理员姓名,密码)
仓库(编号,面积)
存储(仓库编号,图书编号,入库日期,库存数量)
2.数据模型的优化
(1)原则:
一事一地;
(2)方法:
垂直分解法;
(3)步骤:
a 根据语义要求,观察各关系中的属性是否可分解,从而判断是否满足1NF;
b分析主属性对非主属性是否存在部分函数依赖,从而判断是否满足2NF;
c分析主属性对非主属性是否存在传递函数依赖,从而判断是否满足3NF;
d分析是否无损分解,是否保持函数依赖关系;
3.5。
2设计的难点
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统.为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的设计难点.
3.5.3软硬件调试及结果分析
在程序的编写和调试过程中,由于都是SQL代码,流程清晰,最后还是顺利完成了调试;在硬件方面由于该工程要求硬件环境较低,所以对于硬件的调试非常顺利,没有出现任何问题。
由于该程序的代码主要采用了比较常见的方法,无特殊或较难的超纲知识点,因此在编写整个程序的过程中比较顺利,代码也符合逻辑。
3.6结论
本次设计进展顺利,如期完成,并且达到了预先的设计要求,完全贯彻和执行了设计的总体方案。
然而,限于时间和水平,这个设计还有很多的不足之处。
3。
6。
1存在的问题
在这设计中没有前台,还不够美观,这还有待于改进;链接数据库不是很熟练,有待提高,这些在实际生活中是不可取的,有待于改进。
3.6.2解决方案
针对Java语言好好学习,可以到互联网上求助高手或自己到图书馆查阅相关的书籍.
针对运行界面,没有给用户满意的前台,让用户使用起来觉得不够方便,应该再加一些对本网站有说明的东西在里面,让用户用起来比较简单。
参考文献
[1]JSP动态网页设计教程/吴建玉主编.-杭州:
浙江大学出版社,2009.2P3-P259
[2]Web2。
0动态网站开发—JSP技术与应用/刘中兵,陈艳燕,程琳梅编著.—北京:
清华大学出版社,2009.2 P168—P197
[3]JSP课程设计案例精编/杨昭主编。
—北京:
中国水利水电出版社,2005P65-P105
[4]JSP宝典/邹竹彪编著。
—北京:
电子工业出版社,2007。
1P23—P198
[5]无师自通.Access2003入门与应用篇/华天科技编著。
-北京:
人民邮电出版社,2007.6
[6]Java6程序设计时间教程/刘万军等编著。
—北京:
清华大学出版社,2009。
5P96—P125
[7]Java程序设计/王志文,夏秦,李平均编著。
-西安:
西安交通大学出版社 P125—P165
[8]SQLServer数据库应用与开发/李德有,彭德林主编.北京:
中国水利水电出版社,2007
[9]JSP工程应用与项目实践/赛奎春主编。
—主编:
机械工业出版社,2005.1P12-P98