数据库书店管理系统函SQL语句Word文件下载.docx
《数据库书店管理系统函SQL语句Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库书店管理系统函SQL语句Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
现代社会是一个信息时代,计算机的进步对这个社会十分重要,然而,计算机的发展促使了我们最大限度地利用计算机和网络,把我们这个世界缩小。
因此我们必须开发各种聊天软件、形式多样的网页、各种论坛,方便网友使用,查找自己有用的资料、找其他网友进行聊天交流。
这一切都需要我们学好坚实的理论知识,为人类服务。
本次设计的目标在于将广告系统生动形象地在网页中再现和描述出来。
于是特制订了一个总体的方案。
由于时间只有七天天,故做了如下的计划安排,将这项工程分为两大部分:
程序的设计和程序的调试。
首先在程序的设计部分由分为以下几个步骤:
第一步:
查阅有关制作网页和相关资料,用半天的时间。
第二步:
设计这个项目的整体结构,并制定需要达到的目的,用一到两天的时间。
第三步:
用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数据库的设计
--建立数据库
createdatabaseBookStore
--创建购书单表
createtableShopList
(BuyIDchar(9)primarykey,
Bknamechar(8)notnull,
Bknumint,
BuyDayDateTime,
BuyMoneyFloat
);
--创建供应表
createtableSupply
(SupIDchar(8)primarykey,
BkIDchar(10),
SIDchar(10),
InTimeDateTime,
InNumint
--创建图书表
createtableBook
(BkIDchar(8)primarykey,
Bkwriterchar(12),
BkpriceFloat,
PublishDateDateTime
--创建供应商表
createtableSupplier
(SIDchar(10)primarykey,
Snamechar(8),
Saddrchar(8),
Stelchar(12),
Spostchar(8)
--创建仓库管理员表
createtableAdm
(AdIDchar(8)primarykey,
AdNamechar(5),
AdPaswdchar(6)
--创建仓库表
createtableWareHouse
(WIDchar(3)primarykey,
Wareaint,
AdIDchar(8)
--创建存储表
createtableStore
(WIDchar(3),
BkIDchar(8),
Snumint,
OutTimeDateTime,
primarykey(WID,BkID),
foreignkey(WID)referencesWareHouse(WID),
foreignkey(BkID)referencesBook(BkID)
--创建退书单表
createtableReturnList
(retnIDchar(8)primarykey,
retnNumint
--创建退书表
createtableReturnBook
(retnIDchar(8),
Bknamechar(8),
retnNumint,
primarykey(retnID,BkID),
foreignkey(retnID)referencesReturnList(retnID),
--创建购书表
createtableBuyBook
(BuyIDchar(9),
BuyMoneyFloat,
primarykey(BuyID,BkID),
foreignkey(BuyID)referencesShopList(BuyID),
--建立视图
--建立购书单视图
createviewShopList_view
as
selectBuyID,Bkname,Bknum,BuyDay
fromShopList
--建立供顾客查询图书信息的视图
createviewBuyBook_view
selectBkname,Bkwriter,Bkprice,SID
fromBook
--建立供管理者查询图书信息的视图
createviewAdmBook_view
selectBook.BkID,SID,Bkname,Bkwriter,Bkprice,WID
fromBook,Store
whereBook.BkID=Store.BkID
--建立查询供应商信息的视图
createviewAdmS_view
selectSID,Sname,Saddr,Stel,Spost
fromSupplier
--建立查询仓库信息的视图
createviewWareHos_view
selectWID,Warea
fromWareHouse
--建立查询仓库管理员的视图
createviewAdm_view
selectWID,Adname
fromAdm,WareHouse
whereAdm.AdID=WareHouse.AdID
--建立查询库存情况的视图
createviewStore_view
selectWID,InTime,Snum
fromStore
--建立查询供应关系的视图
createviewSup_view
selectSID,InNum
fromSupply
--建立索引
createuniqueindexBookInfo1onBook(BkID);
createuniqueindexCBuyInfo1onShopList(BuyID);
createuniqueindexSupInfoonSupplier(SID);
createuniqueindexWareInfo1onWareHouse(WID);
--createclusteredindexCBuyInfo2onShopList(BkNum,BuyDay);
--createclusteredindexWareBInfo2onStore(InTime,OutTime);
--createclusteredindexBuyInfoonSupply(InNum,InTime);
建立查询的存储过程
createprocedurep1_query_Adm
@AdIDchar(8)
select*
fromAdm
whereAdID=@AdID
createprocedurep2_query_Book
@Bkwriterchar(12)
whereBkwriter=@Bkwriter
createprocedurep3_query_ShopList
@BuyDaydatetime
as
whereBuyDay=@BuyDay
createprocedurep4_query_Store
@InTimedatetime
whereInTime=@InTime
--根据仓库管理员姓名查询仓库图书信息
createprocedurep5_query_Ad_Book
@AdNamechar(5)
selectAdName,Book.BkID,Book.Bkname,Bkwriter,Store.Snum
fromAdm,Book,Store,WareHouse
whereWareHouse.WID=Store.WIDandBook.BkID=Store.BkIDandAdName=@AdName
createprocedurep6_query_Supplier
@Bknamechar(8)
selectSupplier.SID,Sname,Saddr,Stel
fromSupplier,Book
whereBook.SID=Supplier.SIDandBook.Bkname=@Bkname
建立具有插入功能的存储过程
createprocedureShopList_insert
@BuyIDchar(9),
@Bknamechar(8),
@Bknumint,
@BuyDayDateTime,
@BuyMoneyFloat
insertintoShopList
values(@BuyID,@Bkname,@Bknum,@BuyDay,@BuyMoney);
createprocedureSupply_insert
@SupIDchar(8),
@BkIDchar(10),
@SIDchar(10),
@InTimeDateTime,
@InNumint
insertintoSupply
values(@SupID,@BkID,@SID,@InTime,@InNum);
建立具有删除功能的存储过程
createproceduredelete_Supplier
@Snamechar(8)
delete
whereSname=@Sname
建立具有更新功能的存储过程
createprocedureupdate_Adm
@AdIDchar(8),@AdNamechar(5)
updateAdm
setAdName=@AdName
触发器的建立
进货后在库存表中更新记录的触发器
createtriggertr_supply_Store
onsupplyafterinsert
declare@InNumint,@BkIDchar(8)
select@InNum=InNum,@BkID=BkID
frominserted
updateStore
setSnum=Snum+@InNum
whereBkId=@BkID
销售图书后在存储表中更新记录的触发器
Createtriggertr_ShopList_Store
onShopListafterinsert
declare@Bknumint,@Bknamechar(8),@BkIDchar(8)
select@Bknum=inserted.Bknum,@BkID=Book.BkID
frominserted,Book
whereBook.Bkname=inserted.Bkname
setSnum=Snum-@Bknum
查询存储过程
查询管理员信息
根据作者查询图书信息
根据日期查询销售信息
根据入库日期查询仓存储信息
根据仓库管理员姓名查询仓库图书信息
根据图书查询供应商信息
存储功能插入功能的验证
存储功能删除功能的验证
存储功能更新功能的验证
触发器功能的验证
进货时增加货物的库存量
销售货物时减少货物的库存量
3.5设计创新与关键技术
3.5.1设计的特点
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
1.将E-R模型转换为关系模型
转换原则:
一个1:
1联系可以转换为一个独立的关系,也可以与任意一段对应的关系模式合并。
如果转化为一个独立的关系模式,则与该联系相连的各个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一个实体对应的关系合并,则需要在该关系模式的属性中加入另一个关系的主码和联系本身的属性。
一个m:
n的联系可以转化为一个单独的关系模式,这个单独的关系模式的主码是两端实体的码,再加上联系的属性。
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.2P168-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