• 394.50 KB
  • 2022-05-16 18:34:35 发布

仓库管理系统数据库设计实验

  • 21页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
课程设计报告课程设计题目:仓库管理系统数据库的设计与实现专业:电子商务班级:姓名:学号:指导教师:2011年11月25日21 目录1.时间与地点32.实验目的33.课程设计要求34.仓库管理设计要求45实验思路46E-R图57实验过程67.1创建仓库管理系统的数据库:67.2创建表:77.3查询:117.4货物出库结算:117.5添加数据储存过程:137.6视图:147.7索引:157.8规则:167.9备份与恢复:177.10用户权限:187.11触发器:188总结心得:1921 仓库管理系统数据库设计与实现一.实验时间、地点时间:第十三周(11月21日——25日)地点:软件楼305二.实验目的通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。三、课程设计要求:1.对各个系统进行系统功能需求分析2.数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3.21 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4.通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5.根据系统功能需求设计相应的查询视图6.要求根据系统功能需求建立存储过程7.根据功能需求建立相应的触发器以保证数据的一致性8.通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)四.仓库管理系统实验要求描述:设计一个仓库管理系统,实现下列功能:零件信息登记(包括种类,名称和库存数量等信息);零件进库登记(包括种类,名称和库存数量等信息);零件出库登记(包括种类,名称和库存数量等信息);五.实现思路1.关系模式零件信息表(零件编号,零件名,材质,数量,零件类型号,单价,生产商号)入库登记表(零件编号,零件名,入库数量,零件类型,货主编号,入库时间,入库单价)出库登记表(零件编号,零件名,出库数量,出库时间,出库性质,出库单价)21 2.设计思路仓库管理系统设计了五个二维表,他们的设计表如下零件信息设计表入库登记设计表(4)出库登记设计表3.仓库管理系统全局E—R图21 零件信息单价数量零件编号零件类型号出库入库入库登记零件编号零件名入库数量入库时间出库时间生产厂家号零件类型生产厂家号零件名零件编号零件名出库数量出库登记六.实现过程1--创建仓库管理系统的数据库:createdatabase仓库管理系统on21 (name=仓库_dat,filename="G:仓库管理系统仓库管理系统.mdf",size=10,maxsize=150)logon(name=仓库_log,filename="G:仓库管理系统仓库管理系统.ldf",size=10,maxsize=80)2创建表--创建零件仓库信息表:createtable零件仓库信息表(零件编号char(10)primarykey,零件名char(10)notnull,材质char(8)constraint材质_Consnotnulldefault"铁",重量intnotnull,数量intnotnull,21 零件类型号char(10)notnull,单价intconstraint单价_Chkcheck(单价between1and100)notnull,生产商号char(6))--向零件仓库信息表插入数据:insertinto零件仓库信息表values("0001","螺丝","铁",2,1000,"小号",1,"A101")insertinto零件仓库信息表values("0002","螺丝","铁",4,1000,"中号",3,"A102")insertinto零件仓库信息表values("0003","螺丝","铁",6,1000,"大号",6,"A103")insertinto零件仓库信息表values("0004","齿轮","铁",2,1000,"标准",5,"B110")insertinto零件仓库信息表values("0005","螺帽","铁",7,1000,"标准",2,"B131")insertinto零件仓库信息表values("0006","螺栓","铁",5,1000,"标准",4,"B312")insertinto零件仓库信息表values("0007","钉子","铝",3,1000,"小号",9,"C440")insertinto零件仓库信息表values("0008","钉子","铝",5,1000,"中号",11,"C441")21 insertinto零件仓库信息表values("0009","钉子","铝",7,1000,"大号",14,"C442")--查看零件仓库信息表的数据:select*from零件仓库信息表--删除零件仓库信息表:droptable零件仓库信息表--创建入库登记表:createtable入库登记表(零件编号char(10)notnull,零件名char(10)notnull,入库数量intconstraint数量_Consnotnulldefault1000,货主编号char(8)notnull,入库时间datetimenotnull入库单价int,生产商号char(6),)--向入库登记表插入数据:insertinto零件仓库信息表values("0001","螺丝",1000,"2011-07-14",1,"A101")insertinto零件仓库信息表21 values("0002","螺丝",1000,"2011-07-20",3,"A102")insertinto零件仓库信息表values("0003","螺丝",1000,"20110-07-25",6,"A103")insertinto零件仓库信息表values("0004","齿轮",1000,"2011-08-20",5,"B110")insertinto零件仓库信息表values("0005","螺帽",1000,"2011-08-30",2,"B131")insertinto零件仓库信息表values("0006","螺栓",1000,"2011-09-10",4,"B312")insertinto零件仓库信息表values("0007","钉子",1000,"2011-10-10",9,"C440")insertinto零件仓库信息表values("0008","钉子",1000,"2011-10-11",11,"C441")insertinto零件仓库信息表values("0009","钉子",1000,"2011-11-12",14,"C442")--查看入库登记表数据:select*from入库登记表--创建出库登记表:createtable出库登记表(零件编号char(10)notnull,21 零件名char(10)notnull,出库数量intnotnull,出库性质char(8)constraint出库性质_Chkcheck(出库性质in("售出","借出")),提货人员char(12)notnull,出库时间datetimenotnull,出库单价int,)--向出库登记表中插入数据:insertinto出库登记表values("0001","螺丝",500,"售出","张力","2011-11-25",3)insertinto出库登记表values("0002","螺丝",300,"借出","刘柳","2011-11-22",5)--查看出库登记表中的数据:select*from出库登记表select*from出库登记表select*from入库登记表select*21 from零件仓库信息表-3查询-查询零件名为“螺丝”的信息:select零件仓库信息表.零件编号,零件仓库信息表.零件名,材质,重量,数量,零件类型号,单价,零件仓库信息表.生产商号,入库单价,入库数量,货主编号,入库时间from零件仓库信息表,入库登记表where(零件仓库信息表.零件编号=入库登记表.零件编号and零件仓库信息表.零件名="螺丝")4货物出库的结算--创建插出库结账的存储过程createprocedureCheck_Out_Proc(@零件编号char(10),@出库数量int,21 @出库性质char(10),@提货人员char(10),@出库时间datetime)asbeginupdate出库登记表set出库数量=@出库数量,出库时间=@出库时间,出库性质=@出库性质,提货人员=@提货人员where零件编号=@零件编号update入库登记表set数量=数量-@出库数量where零件编号=@零件编号select出库登记表.零件编号,出库登记表.零件名,材质,重量,零件类型号,入库登记表.生产商号,货主编号,@提货人员as提货人员,@出库性质as出库性质,入库时间,@出库时间,datediff(dd,入库时间,@出库时间)as库存时间,数量,@出库数量as出库数量,单价,出库单价,出库单价*@出库数量as售价from出库登记表,入库登记表,零件仓库信息表where出库登记表.零件编号=入库登记表.零件编号and出库登记表.零件编号=零件仓库信息表.零件编号and出库登记表.零件编号=@零件编号21 end执行插出库结账的存储过程:declare@adatetimeset@a=getdate()execCheck_Out_Proc"0004",200,"售出","赵三",@a--删除插出库结账的存储过程dropprocedureCheck_Out_Proc5创建向表中添加信息的存储过程:createprocedureinsert_零件信息(@零件编号char(10),@零件名char(10),@材质char(8),@重量char(6),@数量int,@零件类型号char(10),@单价int,@生产商号char(6))21 asinsertinto零件仓库信息表values(@零件编号,@零件名,@材质,@重量,@数量,@零件类型号,@单价,@生产商号)--执行向表中添加信息的存储过程:execinsert_零件信息@零件编号="0016",@零件名="齿轮",@材质="钢",@重量="2",@数量="237",@零件类型号="标准",@单价=5,@生产商号="N010"--查询零件仓库信息表的数据:select*from零件仓库信息表--删除存储过程:dropprocedureinsert_零件信息6视图创建零件仓库信息表视图:createview零件仓库信息表_Sas21 select*from零件仓库信息表看零件仓库信息表视图:select*from零件仓库信息表_S--删除零件仓库信息表视图:dropview零件仓库信息表_S--创建入库登记表视图:createview入库登记表_Sasselect*from入库登记表--删除入库登记表视图:dropview入库登记表_S--创建出库登记表视图:createview出库登记表_Sasselect*from出库登记表--删除出库登记表视图:dropview出库登记表_S7索引21 --创建并查询零件信息表索引:createuniqueindex零件信息_indexon零件仓库信息表(零件编号)--查看零件信息表索引:execSp_helpindex零件仓库信息表--创建并查询入库登记表索引:createindex入库登记表_indexon入库登记表(零件编号)--查看入库登记表索引:execSp_helpindex入库登记表--创建出库登记表索引:createindex出库登记表_index1on出库登记表(零件编号)createindex出库登记表_index2on出库登记表(出库数量)createindex出库登记表_index3on出库登记表(出库时间)8规则--创建数量在50—2000之间的规则,并绑定规则:createrule数量_ruleas@数量>=50and@数量<=2000--数量在50—2000之间的规则,查看默认:execsp_helptext"数量_rule"--数量在50—2000之间的规则,绑定规则:execsp_bindrule"数量_rule","零件仓库信息表.数量"--数量在50—2000之间的规则,解除规则:21 execsp_unbindrule"零件仓库信息表.数量"--数量在50—2000之间的规则,删除规则:droprule数量_rule9对仓库管理系统的数据库的备份与恢复--建立备份设备:execsp_addumpdevice"disk","仓库数据库系统_Device","C:DocumentsandSettingsAdministrator桌面数据库备份仓库数据库系统.bak"--删除备份设备:execsp_dropdevice"仓库数据库系统_Device"--数据库备份操作:(仓库数据库系统是一个数据库)backupdatabase仓库数据库系统todisk="C:DocumentsandSettingsAdministrator桌面数据库备份仓库数据库系统.MDF"--数据库恢复操作:(仓库数据库系统是一个数据库)restoredatabase仓库数据库系统fromdisk="C:DocumentsandSettingsAdministrator桌面数据库备份仓库数据库系统.MDF"--备份到备份设备上:backupdatabase仓库数据库系统to仓库数据库系统_Device--从备份设备上恢复:restoredatabase仓库数据库系统from仓库数据库系统_Device10系统权限授予grantcreatetableto管理员21 grantselect,updateon零件仓库信息表todb_ownerwithgrantoption11触发器--创建触发器并向利用触发器向表内添加信息:createtriggerChangDisplayon零件仓库信息表forinsertasselect*from零件仓库信息表--执行触发器并向利用触发器向表内添加信息:insertinto零件仓库信息表values("0018","键盘","黑色",3,80,"中号",14,"N010")--删除触发器并向利用触发器向表内添加信息:droptriggerChangDisplay--创建删除相关数据触发器:createtriggerDelete_Information_Triggeron出库登记表21 fordeleteasbegindeletefrom零件仓库信息表where零件编号=any(select零件编号fromdeleted)deletefrom入库登记表where零件编号=any(select零件编号fromdeleted)end--执行删除相关数据触发器:deletefrom出库登记表where零件编号="0001"--删除删除相关数据触发器:droptriggerDelete_Information_Trigger--恢复已经删除的数据:insertinto零件仓库信息表values("0001","螺丝","铁",2,1000,"小号",1,"A101")insertinto入库登记表values("0001","螺丝",1000,"2011-07-14",1,"A101")insertinto出库登记表values("0001","螺丝",500,"售出","张力","2011-11-25",3)21 七.实验总结此系统主要完成对零件仓库的一系列管理,包括入库、出库、库存以及供应商信息管理。本系统采用数据库SQL来完成整个系统的设计。在零件入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关SQL的许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解SQL的强大功能,而且还存在着许多不足之处。如:受开发条件和开发时间的限制,本系统能存储的数据量也有一定限制,并没有发挥出SQL在数据库方面的优势;报表打印功能尚不够全面完善,不能实现动态报表,在一些数据输入时没有及时的进行数据格式校验,不能保证数据输入的绝对正确性。由于时间关系,系统功能实现不够完善,使用不是很方便,比如,没有实现多条记录的连锁删除和添加以及数据的导入功能。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。21