您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库课程设计实验报告8
课程设计报告课程设计题目:仓库管理系统数据库的设计与实现专业:软件工程专业班级:10211302姓名:江凌学号:1021130211指导教师:游胜玉2011年12月3日仓库管理系统数据库设计与实现一.实验时间、地点时间:11月28日——12月1日地点:软件楼502二.实验目的通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。三、课程设计要求:1.对各个系统进行系统功能需求分析2.数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3.设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4.通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5.根据系统功能需求设计相应的查询视图6.要求根据系统功能需求建立存储过程7.根据功能需求建立相应的触发器以保证数据的一致性8.通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)四.仓库管理系统实验要求描述:设计一个仓库管理系统,实现下列功能:1.零件信息登记(包括种类,名称和库存数量等信息);2.零件进库登记(包括种类,名称和库存数量等信息);3.零件出库登记(包括种类,名称和库存数量等信息);五.实现思路主要功能实现;我做的是仓库管理系统。建立了入库和出库的存储过程。入库存储过程中,通过输入的信息判断该产品是否存在在仓库中,若存在,则在产品数量上进行增加。如果不存在,则添加该条记录,并把该条记录插入到入库信息表中。出库存储过程中,通过输入的信息判断该产品是否存在在仓库中,若存在,则在产品数量上进行减少。如果不存在,输出您调用的产品不存在。建立了触发器在零件信息表上,当该表有所更新,列出该表,从而更清楚的查看更新的内容。1.关系模式PIMF(PSPCE,PNAME,PNOUMBER,PNO)GONGSI(PNO,GONGSINAME,GONGSIAGE,)LIANXI(GONGSINAME,TEL,QQ)INPUTTABLE(PSPCE,PNAME,PNOUMBER,PNO)OUTTABLE(PSPCE,PNAME,PNOUMBER,PNO)3.仓库管理系统全局E—R图零件数量零件编号零件类型出库入库入库登记零件类型零件名入库数量零件编号出库数量零件类型零件名零件编号零件名出库数量出库登记六.实现过程createtablepimf(pspacechar(18),pnamechar(18),pnumbernumeric(10),生产公司公司名公司地址公司年龄电话qq联系方式pnochar(18))createrulepnumberruleas@pnumber=0and@pnumber=200execsp_bindrule'pnumberrule','pimf.pnumber'insertintopimfvalues('book','english',12,'a1')--创建规则并绑定到零件信息表上的零件数量字段上createtableGONGSI(GONGSINAMEchar(10),GONGSIAGEchar(10),PNOCHAR(10))--创建公司信息表createtableLIANXI(GONGSINAMEchar(18),GONGSIAGEchar(18),lefttestchar(12))--创建联系方式表createtableinputtable(pspacechar(8),pnamechar(8),pnumberint,pnochar(18),)--创建入库信息表createtableoutputtable(pspacechar(8),pnamechar(8),pnumberint,pnochar(18))--创建出库信息Createprocessureinputimf(@pspacechar(18),@pnamechar(18),@pnumberint,@pnochar(18))asprint'入库产品'insertintoinputtablevalues(@pspace,@pname,@pnumber,@pno)select*frominputtableif@pnoin(selectpnofrompimf)beginupdatepimfsetpnumber=pnumber+@pnumberwhere(@pnoin(selectpnofrompimf))endelseinsertintopimfvalues(@pspace,@pname,@pnumber,@pno)--创建入库存储过程execinputimf@pspace='book',@pname='eig',@pnumber=19,@pno='a2'--调用存储过程createprocedureoutputimf(@pspacechar(8),@pnamechar(8),@pnumberint,@pnochar(18))asprint'出库产品'insertintooutputtablevalues(@pspace,@pname,@pnumber,@pno)select*fromoutputtableif@pnoin(selectpnofrompimf)updatepimfsetpnumber=pnumber-@pnumberwhere(@pnoin(selectpnofrompimf))elseprint'您调取的货物暂无存货'--创建出库存储过程execoutputimf@pspace='book',@pname='eig',@pnumber=19,@pno='a2'--调用存储过程createviewinputview(pspace,pname,pnumber,gongsi.gongsiname,tel)asselectpspace,pname,gongsiname,telfrompimf,lianxi,gongsionpimf.pno=gongsi.pnoandgongsi.gongsiname=lianxi.tel--创建视图createindexkconpimfview(pnumberdesc)--创建索引createtriggeroutonpimfafterupdateasselect*frompimfview七.实验总结通过这次课程设计,我更加熟悉了SQL中触发器和存储过程的使用。通过创建触发器和存储过程,可以实现信息的一致性。但是游标那一块总会出现问题,所以后来就用了判断输入PNO是否在pimf中得pno中。Sql的功能很强大,我也会进一步学习掌握有关知识。
本文标题:数据库课程设计实验报告8
链接地址:https://www.777doc.com/doc-7265297 .html