收藏 分销(赏)

数据库书店管理系统(函SQL语句).doc

上传人:精*** 文档编号:2227333 上传时间:2024-05-23 格式:DOC 页数:20 大小:229.50KB 下载积分:10 金币
下载 相关 举报
数据库书店管理系统(函SQL语句).doc_第1页
第1页 / 共20页
数据库书店管理系统(函SQL语句).doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
。 目录 工程概况 1 2.1 项目所用的时间 1 2.2项目负责人 1 2.3项目指导人 1 正文 2 3.1 设计的目的和意义 2 3.2 目标和总体方案 3 3.3 设计方法和内容 3 3.3.1 硬件环境 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, Management Information System)是一个由人和计算机等组成的能够提供信息以支持一个组织机构内部的作业,管理、分析和决策职能的系统。进、销、存的管理是企业自身管理信息系统的重要组成部分。 工程概况 2.1 项目所用的时间 从这个项目开始到结束总共历时2周。完成于2014年6月15日。 2.2项目负责人 陈军辉 计算机科学与技术16-5,学生。 2.3项目指导人 陈纪龙,男,信息工程学院教师,讲师。 正文 目前市面上流行的进销存管理系统不少。但是,对于书店图书的进销存系统来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能同时满足进销存分析管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的图书进销存管理系统。 该系统有售书管理模块、出库管理模块、库存管理模块、订书管理模块、入库管理模块和数据统计分析模块六部分组成,可以完成图书的进货、出货、查询等基本操作,完成阶段的销售情况、财务利润等信息。通过对基本操作的查询,用户可以掌握图书受欢迎情况,并能够对图书情况进行统计,从而适应市场的需求进行规划决策。 3.1 设计的目的和意义 通过对现在流行的各种进销存软件的分析,我们发现市场上的软件过于繁琐,操作比较复杂,而其中软件的许多功能不被小型企业所采用,造成软件冗余量大。图书进销存管理系统设计的总体目标是通过对销售、订单、库存的管理,及时准确了解销售、库存等综合情况,以便为管理者做出准确的判断提供依据。并通过图书进销存数据的分析,为管理及决策人员提供库存资金占用情况、图书库存情况。 图书进销存管理系统的使用者要求系统具有良好的可靠性和可操作性,它的各种基本的操作容易为管理者所掌握,有较好的完全性,并要求系统具有高效率,易维护,可移植性较好等特点,我们据此展开分析。 3.2 目标和总体方案 现代社会是一个信息时代,计算机的进步对这个社会十分重要,然而,计算机的发展促使了我们最大限度地利用计算机和网络,把我们这个世界缩小。因此我们必须开发各种聊天软件、形式多样的网页、各种论坛,方便网友使用,查找自己有用的资料、找其他网友进行聊天交流。这一切都需要我们学好坚实的理论知识,为人类服务。 本次设计的目标在于将广告系统生动形象地在网页中再现和描述出来。于是特制订了一个总体的方案。 由于时间只有七天天,故做了如下的计划安排,将这项工程分为两大部分:程序的设计和程序的调试。 首先在程序的设计部分由分为以下几个步骤: 第一步:查阅有关制作网页和相关资料,用半天的时间。 第二步:设计这个项目的整体结构,并制定需要达到的目的,用一到两天的时间。 第三步:用SQL建立表,完善,用三天左右的时间。 其次,进行数据库的增删改调试,用一天左右。 3.3 设计方法和内容 在这个项目的设计上,我们使用了SQL2008。因为SQL2008具有丰富的表达能力以及代码的高效性,并且有着良好的兼容性。 设计者将这个项目整体使用了数据库设计,构成了这个项目的全部面貌。 3.3.1 硬件环境 微型计算机:联想台式品牌机 中央处理器:Pentuim 4 主频:3.0GHz 主存容量: 512M 硬盘容量: 80G 3.3.2软件环境 Windows XP 操作系统 Microsoft office 记事本程序 SQL2008 3.4设计流程图及数据库 3..4.1设计流程图 使用了业务流程图来描述管理业务虽然形象的表达了信息的流动和存储状况,但是仍旧没有完全脱离一些物质要素,而只是仅仅得到了一个现行系统的物理模型。为了用计算机对信息进行管理,必须舍去物质,抽象出信息流,详细调查数据及数据流程。 数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合的反映出信息在系统中的流动、处理和存储情况。根据上面业务流程图的描述,从系统的科学性、管理的合理性、实际运行的可行性角度出发,自顶向下对系统进行分解,导出了图书管理系统的系统关联图、系统顶层图和系统分解图。 数据流程图有外部实体、处理(数据加工)、数据存储、数据流四个部分组成。他们的符号表示如下: .3.4.2数据库的设计 --建立数据库 create database BookStore --创建购书单表 create table ShopList (BuyID char(9) primary key, Bkname char(8) not null, Bknum int, BuyDay DateTime, BuyMoney Float ); --创建供应表 create table Supply (SupID char(8) primary key, BkID char(10), SID char(10), InTime DateTime, InNum int ); --创建图书表 create table Book (BkID char(8) primary key, Bkname char(8) not null, SID char(10), Bkwriter char(12), Bkprice Float, PublishDate DateTime ); --创建供应商表 create table Supplier (SID char(10) primary key, Sname char(8), Saddr char(8), Stel char(12), Spost char(8) ); --创建仓库管理员表 create table Adm (AdID char(8) primary key, AdName char(5), AdPaswd char(6) ); --创建仓库表 create table WareHouse (WID char(3) primary key, Warea int, AdID char(8) ); --创建存储表 create table Store (WID char(3), BkID char(8), InTime DateTime, Snum int, OutTime DateTime, primary key(WID,BkID), foreign key(WID)references WareHouse(WID), foreign key(BkID)references Book(BkID) ); --创建退书单表 create table ReturnList (retnID char(8) primary key, Bkname char(8) not null, retnNum int ); --创建退书表 create table ReturnBook (retnID char(8), BkID char(8), Bkname char(8), retnNum int, primary key(retnID,BkID), foreign key(retnID)references ReturnList(retnID), foreign key(BkID)references Book(BkID) ); --创建购书表 create table BuyBook (BuyID char(9), BkID char(8), Bkname char(8), Bknum int, BuyMoney Float, primary key(BuyID,BkID), foreign key(BuyID)references ShopList(BuyID), foreign key(BkID)references Book(BkID) ); --建立视图 --建立购书单视图 create view ShopList_view as select BuyID,Bkname,Bknum,BuyDay from ShopList --建立供顾客查询图书信息的视图 create view BuyBook_view as select Bkname,Bkwriter,Bkprice,SID from Book --建立供管理者查询图书信息的视图 create view AdmBook_view as select Book.BkID,SID,Bkname,Bkwriter,Bkprice,WID from Book,Store where Book.BkID=Store.BkID --建立查询供应商信息的视图 create view AdmS_view as select SID,Sname,Saddr,Stel,Spost from Supplier --建立查询仓库信息的视图 create view WareHos_view as select WID,Warea from WareHouse --建立查询仓库管理员的视图 create view Adm_view as select WID,Adname from Adm,WareHouse where Adm.AdID=WareHouse.AdID --建立查询库存情况的视图 create view Store_view as select WID,InTime,Snum from Store --建立查询供应关系的视图 create view Sup_view as select SID,InNum from Supply --建立索引 create unique index BookInfo1 on Book(BkID); create unique index CBuyInfo1 on ShopList(BuyID); create unique index SupInfo on Supplier(SID); create unique index WareInfo1 on WareHouse(WID); --create clustered index CBuyInfo2 on ShopList(BkNum,BuyDay); --create clustered index WareBInfo2 on Store(InTime,OutTime); --create clustered index BuyInfo on Supply(InNum,InTime); 建立查询的存储过程 create procedure p1_query_Adm @AdID char(8) as select * from Adm where AdID=@AdID create procedure p2_query_Book @Bkwriter char(12) as select * from Book where Bkwriter=@Bkwriter create procedure p3_query_ShopList @BuyDay datetime as select * from ShopList where BuyDay=@BuyDay create procedure p4_query_Store @InTime datetime as select * from Store where InTime=@InTime --根据仓库管理员姓名查询仓库图书信息 create procedure p5_query_Ad_Book @AdName char(5) as select AdName,Book.BkID,Book.Bkname,Bkwriter,Store.Snum from Adm,Book,Store,WareHouse where WareHouse.WID=Store.WID and Book.BkID=Store.BkID and AdName=@AdName create procedure p6_query_Supplier @Bkname char(8) as select Supplier.SID,Sname,Saddr,Stel from Supplier,Book where Book.SID=Supplier.SID and Book.Bkname=@Bkname 建立具有插入功能的存储过程 create procedure ShopList_insert @BuyID char(9), @Bkname char(8), @Bknum int, @BuyDay DateTime, @BuyMoney Float as insert into ShopList values(@BuyID,@Bkname,@Bknum,@BuyDay,@BuyMoney); create procedure Supply_insert @SupID char(8) , @BkID char(10), @SID char(10), @InTime DateTime, @InNum int as insert into Supply values(@SupID,@BkID,@SID,@InTime,@InNum); 建立具有删除功能的存储过程 create procedure delete_Supplier @Sname char(8) as delete from Supplier where Sname=@Sname 建立具有更新功能的存储过程 create procedure update_Adm @AdID char(8),@AdName char(5) as update Adm set AdName=@AdName where AdID=@AdID 触发器的建立 进货后在库存表中更新记录的触发器 create trigger tr_supply_Store on supply after insert as declare @InNum int,@BkID char(8) select @InNum=InNum,@BkID=BkID from inserted update Store set Snum=Snum+@InNum where BkId=@BkID 销售图书后在存储表中更新记录的触发器 Create trigger tr_ShopList_Store on ShopList after insert as declare @Bknum int ,@Bkname char(8),@BkID char(8) select @Bknum=inserted.Bknum ,@BkID=Book.BkID from inserted,Book where Book.Bkname=inserted.Bkname update Store set Snum=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.2 P3-P259 [2]Web2.0动态网站开发—JSP技术与应用/刘中兵,陈艳燕,程琳梅编著。—北京:清华大学出版社,2009.2 P168-P197 [3]JSP课程设计案例精编/杨昭主编。—北京:中国水利水电出版社,2005 P65-P105 [4]JSP宝典/邹竹彪编著。—北京:电子工业出版社,2007.1 P23-P198 [5]无师自通.Access2003入门与应用篇/华天科技编著.—北京:人民邮电出版社,2007.6 [6]Java 6 程序设计时间教程/刘万军等编著.—北京:清华大学出版社,2009.5 P96-P125 [7]Java程序设计/王志文,夏秦,李平均编著.—西安:西安交通大学出版社 P125-P165 [8]SQL Server数据库应用与开发/李德有,彭德林主编.北京:中国水利水电出版社,2007 [9]JSP工程应用与项目实践/赛奎春主编.—主编:机械工业出版社,2005.1 P12-P98 THANKS !!! 致力为企业和个人提供合同协议,策划案计划书,学习课件等等 打造全网一站式需求 欢迎您的下载,资料仅供参考 -可编辑修改-
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服