数据库课程设计---库存物资管理系统后台数据库25740.docx
大型数据库课程设计报告大型数据据库课程程设计设计报告告题 目:库存物物资管理理系统后后台数据据库学 号:学生姓名名: 指导教师师:提交时间间: 220133-111-222目录库存物资资管理系系统后台台数据库库1第1章 进行需需求分析析,编写写数据字字典11.1系系统功能能要求设设计:111.2模模块设计计11.3数数据字典典2第2章 面向向对象分分析和设设计4第3章 逻辑辑结构设设计53.1类类和对象象向关系系模式转转换6第4章 数据据库物理理结构设设计74.1存存取方法法设计774.2存存储结构构设计774.3物物理设计计7第5章 数据完完整性设设计1115.1主主键及索索引111表名1115.2完完整性约约束的说说明1115.3 cheeck约约束1225.4 Deffaullt默认认值1225.5 触发器器设计112第6章 数据库库视图的的设计116第7章 存储储过程设设计199总结288参考文献献:288 大型数据库课程设计报告库存物资资管理系系统后台台数据库库第1章 进行需需求分析析,编写写数据字字典1.1系系统功能能要求设设计:(1)数数据表以以及数据据量 11)有一一个存放放商品的的仓库,每每天都有有商品出出库和入入库。 22)商品品有10000多多种,每每种商品品都有名名称、生生产厂家家、型号号、规格格等。 33)出入入库时必必须填写写出入库库单据,单单据包括括商品名名称、生生产厂家家、型号号、规格格、数量量、日期期、时间间、入库库单位(或或出库单单位)名名称、送送货(或或提货)人人姓名。(2)设设计要求求:1) 进进行需求求分析,编编写数据据字典。2) 设设计E-R图。3) 设设计出入入库单据据的录入入。4) 实实现按商商品名称称、出入入库日期期的查询询。5) 实实现分别别按日、月月和年对对出入库商商品数量量的统计计。(3)主主要功能能: 11)商品品管理:增加商商品、修修改商品品、删除除商品、浏浏览商品品 22)库存存管理:通过触发发器实现现商品的的入库,同同时完成成对库存存表的更更新通过触发发器实现现商品的的出库,同同时完成成对库存存表的更更新 实现现按商品品名称查查询库存存数量、入入库数量量和出库库数量 实现现按入库日日期查询询入库数数量、出出库数量量实现分别别按日、月月和年对对入库商商品数量量的统计计实现分别别按日、月月和年对对入库商商品数量量的统计计1.2模模块设计计库存物资资管理大大体可以以分为33大块,如如下图所所示:首首先是商商品入库库模块,该该模块主主要是描描述把采采购回来来的商品品,分类类别的放放置到指指定的仓仓库中去去,然后后是商品品出库模模块,该该模块主主要描述述从指定定的仓库库中拿出出商品,最最后是商商品库存存模块,0这个模块块主要是是记录商商品的库库存数量量。 库存物资管理商品入库模块商品库存模块商品出库模块1.3数数据字典典表商品表仓库表库存表入库表出库表商品表字段名数据类型型是否可以以为空Is PPKIs FFK商品编号号Charr(5)not nulllyesno商品名称称Varccharr(500)not nulllnono生产厂家家Varccharr(500)not nulllnono型号Varccharr(500)not nulllnono规格Varccharr(200)not nulllnono仓库表字段名数据类型型是否可以以为空Is PPKIs FFK仓库号Charr(100)not nulllyesno仓库名称称Varccharr(500)not nulllnono库存表字段名数据类型型是否可以以为空Is PPKIs FFK商品编号号Charr(5)not nulllyesyes仓库号charr(100)not nulllyesyes库存数量量intnot nulllnono入库表字段名数据类型型是否可以以为空Is PPKIs FFK入库号Charr(100)not nulllyesno商品编号号charr(5)not nulllnoyes仓库号Charr(100)not nulllnoyes入库数量量intnot nulllnono入库日期期smallldaatettimeenot nulllnono入库单位位名称Varccharr(500)nulllnono送货人姓姓名varccharr(500)not nulllnono性别charr(2)nulllnono出库表字段名数据类型型是否可以以为空Is PPKIs FFK出库号Charr(100)not nulllyesno商品编号号charr(5)not nulllnoyes仓库号Charr(100)not nulllnoyes出库数量量intnot nulllnono出库日期期smallldaatettimeenot nulllnono出库单位位名称Varccharr(500)nulllnono提货人姓姓名varccharr(500)not nulllnono性别charr(2) nulllnono第2章 面向向对象分分析和设设计 类和对对象设计计如下:商品商品编号号:chaar商品名称称:varrchaar生产厂家家: vaarchhar规格:vvarccharr型号:vvarccharr添加()删除()查询()修改()仓库仓库号:chaar仓库名称称:vaarchhar添加()修改()删除()查询()库存商品编号号:商品仓库号:仓库库存数量量:intt查询()修改()添加()删除() 出库出库号:intt仓库号:仓库商品编号号: 商品品商品名称称:商品品出库数量量:innt出库日期期:smmallldattetiime出库单位位名称:单位送货人姓姓名:人人性别:ccharr添加()修改()删除()查询()入库入库号:intt仓库号:仓库商品编号号: 商品品商品名称称:商品品入库数量量:innt入库日期期:smmallldattetiime入库单位位名称:单位送货人姓姓名:人人性别:ccharr添加()删除()查询()修改()第3章 逻辑辑结构设设计生产厂家商品名称商品编号分E-RR图: 商品 规格 型号 仓库仓库名称仓库号库存关系系:库存 商品 仓库 n mm入库入库关系系: 商品 仓库 n mm出库出库关系系: 商品 仓库 nn m商品名称商品编号总E-RR图:生产厂家 规格 商品 型号入库号出库号库存数量 n nn n出库数量入库入库入库数量出库出库日期入库日期提货人姓名送货人姓名 m mm m 性别出库单位名称入库单位名称 仓库 性别仓库名称仓库号3.1类类和对象象向关系系模式转转换关系模式式如下:商品(商商品编号号,商品品名称,生生产厂家家,型号号,规格格) 商品编编号为主主键仓库(仓仓库号,仓仓库名称称) 仓仓库号为为主键库存(商商品编号号,仓库库号,库库存数量量) (商品品编号,仓仓库号)为为主键,同同时也分分别为外外键入库(入入库号,商商品编号号,仓库库号,入入库数量量,入库库日期,入入库时间间,入库库单位名名称,送送货人姓姓名,性性别) (入入库号)为为主键,(商商品编号号,仓库库号)为为外键。出库(出出库号,商商品编号号,仓库库号,出出库数量量,出库库日期,出出库时间间,出库库单位名名称,提提货人姓姓名,性性别) (出出库号)为为主键,(商商品编号号,仓库库号)为为外键。第4章 数据据库物理理结构设设计4.1存存取方法法设计对于库存存物资管管理系统统来说,为为了提高高某些属属性(如如:商品品编号,仓库号号、入库库号,入库日日期,入库数数量等)的查询询速度,可可以选择择聚簇存存取的方方法,即即把这些些属性上上具有相相同值的的元组集集中放在在连续的的物理块块上。这这样在查查询某种种商品就就会大大大提高查查询速度度。因此此,该系系统中选选择聚簇簇存取方方法。4.2存存储结构构设计库存物资资管理系系统是一一个大型型复杂的的计算机机网络信信息系统统,采用用基于浏浏览器/服务器器(B/S),客客户端/服务器器(C/S)混混合的应应用体系系结构来来建设库库存物资资管理系系统。数数据库管管理系统统采用MMicrrosooft 公司推推出的SSQL Serrverr 20005 或或以上版版本,并并用SQQL进行行数据库库的建立立和数据据库中数数据的维维护和查查询。4.3物物理设计计实现该设设计的环环境为WWinddowss XPP Prrofeessiionaal + MSS SQQL SServver 20005 或或以上版版本。1、创建建Matteriial数数据库creaateddataabasseMaaterriallonprrimaary(namee=Matteriial,fileenamme='C:PrrogrraFiilessMiicroosofftSQQLSeerveerMMSSQQL.22MSSSQLLDAATAMatteriial.mdff',sizee=3MBB,maxssizee=UNLLIMIITEDD,fileegroowthh=1MBB)logoon(namee=Matteriial_LOGG,fileenamme='C:PrrogrramFFileesMMicrrosooftSSQLSServverMSSSQL.2MMSSQQLDDATAAMaaterriall_LOOG.lldf'',sizee=1MBB,fileegroowthh=10%)2、创建建商品表表creaatettablle商品品表(商品编编号chhar(5)nottnulllprrimaarykkey,商品名称称varrchaar(50)nottnulll,生产厂家家varrchaar(50)nottnulll,型号vaarchhar(20)nottnulll,规格vaarchhar(20)nottnulll)3、创建建仓库表表creaatettablle 仓仓库表(仓库号号chaar(10)nottnulllprrimaarykkey,仓库名称称varrchaar(50)nottnulll,)4、创建建库存表表creaatettablle库存存表(商品编编号chhar(5)nottnulll,仓库号 chhar(10)nottnulll,库存数量量inttnottnulll,primmaryykeyy(商品编编号,仓库号号),foreeignnkeyy(商品编编号)reffereencees商品品表(商品编编号),foreeignnkeyy(仓库号号)reffereencees仓库库表(仓库号号)5、创建建入库表表creaatettablle入库表(入库号号chaar(10)nottnulllprrimaarykkey,商品编号号chaar(5)nottnulll,仓库号ccharr(10)nottnulll,foreeignnkeyy(商品编编号)reffereencees 商商品表(商品编编号),foreeignnkeyy(仓库号号)reffereencees 仓仓库表(仓库号号),入库数量量inttnottnulll,入库日期期smaallddateetimmenootnuull,入库单位位名称vvarccharr(50)nulll,送货人姓姓名vaarchhar(10)nottnulll,性别chhar(2)deffaullt('男'')cheeck(性别inn('男'''女'')6、创建建出库表表creaatettablle出库库表(出库号号chaar(10)nottnulllprrimaarykkey,商品编号号chaar(5)nottnulll,仓库号ccharr(10)nottnulll,foreeignnkeyy(商品编编号)reffereencees商品品表(商品编编号),foreeignnkeyy(仓库号号)reffereencees 仓仓库表(仓库号号),出库数量量inttnottnulll,出库日期期smaallddateetimmenootnuull,出库单位位名称vvarccharr(50)nulll,提货人姓姓名vaarchhar(10)nottnulll,性别chhar(2)deffaullt('男'')cheeck(性别inn('男'''女'')第5章 数据完完整性设设计5.1主主键及索索引表名主键建立索引引商品表(商品编编号)creaatecclussterrediindeex商品品表on商品品表(商品编编号) 仓库表表(仓库号号)creaatecclussterrediindeex仓库库表on仓库库表(仓库号号)入库表(入库号号)creaatecclussterrediindeex入库库表on入库库表(入库号) 出库表表(出库号号)creaatecclussterrediindeex 出出库表on 出出库表(出库号)5.2完完整性约约束的说说明1、商品品表的商商品编号号100001110000之之间(便便于查询询的使用用),商商品名称称不能取取空;该仓库的的商品型型号统一一为DAA00001DDA10000格格式。1)USSE MMateeriaal/*定义商商品表唯唯一性的的约束*/GOalteertaablee 商品品表adddunniquue(商品名名称,生产厂厂家,型号,规格)2)USSE MMateeriaal/*定义义型号的的完整性性约束条条件:商商品型号号统一为为DA000011-DAA10000格式式*/GOalteertaablee 商品品表addcconsstraaintt CCS1 cheeck(型号liike''DA0-10-9900-90-9'')5.3 cheeck约约束在商品表表中将型型号进行行cheeck约约束:cchecck(型号liike''DA0-10-9900-90-9'')在入库表表和出库库表中将将性别进进行chheckk约束:cheeck(性别inn('男'''女'')5.4 Deffaullt默认认值在入库表表和出库库表中性性别默认认值设为为:男。default('男')5.5 触发器器设计1、 通过触发发器实现现商品的的入库,同同时完成成对库存存表的更更新(1) 入库use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='ruukuiinseert'')droppproocedduree ruukuiinseertgocreaatepprocceduure rukkuinnserrt rukkuhaao ccharr(10),shhanggpinnbiaanhaao ccharr(5),ccanggkuhhao chaar(10),ruukusshullianng iint,ruukurriqii smmallldattetiime,ruukuddanwwei varrchaar(50),soonghhuorrennnamee vaarchhar(50),seex ccharr(2)asif(eexissts(sellectt*froom 入入库表wwherre 入入库号=ruukuhhao)prinnt('该商商品已经经存在,不不能再次次插入'')elseebegiininseertiintoo 入库库表valuues( rrukuuhaoo ,shhanggpinnbiaanhaao,caangkkuhaao,ruukusshullianng,ruukurriqii ,ruukuddanwwei,soonghhuorrennnamee ,seex )prinnt('插入入成功'')end(2) 更新USE MatteriialGOcreaatettrigggerr rkkb_iintoo oon入库库表afteer uupdaateasbegiindecllaree aa chhar(5),bb chhar(10),d inntseleect a=商品编编号frrom insserttedseleect b=仓库号号froom iinseerteedseleect d=入库数数量frrom inssertted updaate 库存表表set 库存数数量=库存数数量+dwherre 商商品编号号= aa aand 仓库库号=bEnd2、 通过触发发器实现现商品的的出库,同同时完成成对库存存表的更更新(1) 出库use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='chhukuuinssertt')droppproocedduree chhukuuinsserttgocreaatepprocceduure chuukuiinseert chhukuuhaoo chhar(10),shhanggpinnbiaanhaao ccharr(5),ccanggkuhhao chaar(10),chhukuushuuliaang intt,chhukuuriqqi ssmallldaatettimee,chhukuudannweii vaarchhar(50),tiihuoorennnamme vvarccharr(50),seex ccharr(2)asif(eexissts(sellectt*froom 出出库表wwherre 出出库号=chhukuuhaoo)prinnt('该商商品已经经存在,不不能再次次插入'')elseebegiininseertiintoo 出库库表valuues( cchukkuhaao ,shhanggpinnbiaanhaao,caangkkuhaao,chhukuushuuliaang,chhukuuriqqi ,chhukuudannweii,tiihuoorennnamme ,seex )prinnt('插入入成功'')end(2)更更新USE MatteriialGOcreaatettrigggerr ckkb_iintoo oon 出出库表afteer uupdaateasbegiindecllaree aaa ccharr(10),bbb chhar(5), dd inntseleect aaa=仓库号号froom ddeleeteddseleect bbb=商品编编号frrom delleteedseleect ddd=出库数数量frrom inssertted updaate 库存表表set 库存数数量=库存数数量-dddwherre 商商品编号号=bbb annd 仓库号号=aaaEnd第6章 数据库库视图的的设计1、建立立商品表表视图USE MatteriialGOcreaatevvieww 商品品表视图图asseleect*fromm 商品品表2、创建建商品库库存视图图来浏览览库存中中相同编编号商品品的信息息,其中中包括:商品编编号、商商品名称称和库存存数量。USE MatteriialGOcreaatevvieww 商品品库存视视图(商品编编号,商品名名称,库存数数量)asseleect 库存存表.商品编编号,商品表表.商品名名称,summ(库存表表.库存数数量)fromm 商品品表,库存表表wherre 商商品表.商品编编号=库存表表.商品编编号grouupbyy库存表表.商品编编号,商品表表.商品名名称3、创建建商品入入库视图图USE MatteriialGOcreaatevvieww商品入入库视图图asseleect商商品表.商品编编号,商品名名称,生产厂厂家,型号,规格,入库号号,仓库号号,入库数数量,入库日日期fromm商品表表, 入库库表wherre 商商品表.商品编编号=入库表表.商品编编号4、创建建商品出出库视图图USE MatteriialGOcreaatevvieww 商品品出库视视图asseleect 商品表表.商品编编号,商品名名称,生产厂厂家,型号,规格,出库号号,仓库号号,出库数数量,出库日日期fromm商品表表, 出库库表wherre 商商品表.商品编编号=出库表表.商品编编号5、创建建商品入入库仓库库视图USE MatteriialGOcreaatevvieww 商品品入库仓仓库视图图asseleect 商品表表.商品编编号,商品名名称,入库表表.仓库号号,仓库名名称fromm商品表表, 入库库表,仓库表表wherre商品品表.商品编编号=入库表表.商品编编号annd 入库表表.仓库号号=仓库表表.仓库号号6、创建建商品出出库仓库库视图USE MatteriialGOcreaatevvieww商品出出库仓库库视图asseleect 商品表表.商品编编号,商品名名称,出库表表.仓库号号,仓库名名称fromm 商品品表, 出库库表,仓库表表wherre 商商品表.商品编编号=出库表表.商品编编号annd 出库表表.仓库号号=仓库表表.仓库号号第7章 存储储过程设设计1、 实现商品品表的插插入use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='shhanggpinninssertt ')droppproocedduree shhanggpinninssertt gocreaatepprocceduure shaangppiniinseert biianhhao chaar(5),nnamee vaarchhar(50),chhanggjiaa vaarchhar(50),xiinghhao varrchaar(50),guuigee vaarchhar(20)asif(eexissts(sellectt*froom商品品表whheree 商品品编号=biianhhao)prinnt('该商商品已经经存在,不不能再次次插入'')elseebegiinInseertiintoo 商品品表valuues( bbiannhaoo,naame,chhanggjiaa,xiinghhao,guuigee)prinnt('插入入成功'')Endexecc shhanggpinninssertt '1111111','毛巾巾','纺织织有限公公司','DAA01111','300*700cm''2、 实现商品品表的删删除use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='shhanggpinndelletee')droppproocedduree shhanggpinndelleteegocreaatepprocceduure shaangppinddeleete biianhhao chaar(5)asif(eexissts(sellectt 商商品编号号froom 商商品表wwherre 商商品编号号=biianhhao)begiindeleetefromm 商品品表wherre 商品编编号=biianhhaoprinnt('删除除成功,该该商品已已被删除除')endelseepriint('该商商品不存存在,不不能删除除')execc shhanggpinndelletee '1122000'3、按商商品名称称查询库库存数量量use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='shhanggpinn_innfo11')droppproocedduree shhanggpinn_innfo11gocreaatepprocceduure shaangppin_inffo1 shhanggpinnnamme vvarccharr(50)asseleect a.商品编编号,商品名名称,b.库存数数量fromm商品表表a joiin库存存表bon aa.商品编编号=b.商品编编号wherre 商商品名称称=shhanggpinnnamme execc shhanggpinn_innfo11 'LLG冰箱箱'4、按商商品名称称查询入入库数量量use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='ruuku_inffo100')droppproocedduree ruuku_inffo100gocreaatepprocceduure ruuku_inffo100 sshanngpiinnaame varrchaar(50)asseleect商商品表.商品编编号,商品名名称,入库数数量fromm 商品品表jooin 入库库表on 商商品表.商品编编号=入库表表.商品编编号wherre 商商品名称称=shhanggpinnnammeexecc ruuku_inffo100 'aacerr宏基笔笔记本电电脑'5、按商商品名称称查询出出库数量量use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='chhukuu_innfo111')droppproocedduree chhukuu_innfo111gocreaatepprocceduure chhukuu_innfo111 shaangppinnnamee vaarchhar(50)asseleect 商品表表.商品编编号,商品名名称,出库数数量fromm 商品品表jooin 出库库表on商品品表.商品编编号=出库表表.商品编编号wherre商品品名称=shhanggpinnnammeexecc chhukuu_innfo111'mmsi微微星电脑脑主板''6、按入入库日期期查询入入库数量量use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='ruuku_inffo2'')droppproocedduree ruuku_inffo2gocreaatepprocceduure ruuku_inffo2 ruukuddatee smmallldattetiimeasseleect商商品表.商品编编号,商品名名称,入库日日期,入库数数量fromm 商品品表jooin 入库表表on商品品表.商品编编号=入库表表.商品编编号wherre 入入库日期期=ruukuddateeexecc ruuku_inffo2 '20012-3-55 0:00''7、按出出库日期期查询出出库数量量use Matteriialgoifexxistts(sellectt*froom ssysoobjeectss whhereenamme='chhukuu_innfo33')droppproocedduree chhukuu_innfo33gocreaatepprocceduure chhukuu_innfo33 cchukkudaate smaallddateetimmeasseleect商商品表.商品编编号,商品名名称,出库日日期,出库数数量fromm商品表表joiin 出出库表on商品品表.商品编编号=出库表表.商品编编号wherre出库库日期=chhukuudatteexecc chhukuu_innfo33'20010/2/116 00:000:000'8、按年年对入库库商品数数量的统统计use Matteriial/*按年年对入库库商品数数量的统统计*/goifexxistts(sellectt*froom ssysoobjeectss whhereenamme='ruuku_inffo4'')droppproocedduree ruuku_inffo4gocreaatepprocceduure ruuku_inffo4 sttartt_daate smaallddateetimme,ennd_ddatee smmallldattetiimeasseleect 商品名名称,summ(入库数数量)as'总总入库数数量'fromm商品表表joiin 入入库表on 商商品表.商品编编号=入库表表.商品编编号wherre入库库日期bbetwweenn sstarrt_ddatee annd endd_daategrouupbyy商品名名称execc ruuku_inffo4 '20010-1-11','20010-12-31''9、按年年对出库商品品数量的的统计use Matteriial/*按年年对出库库商品数数量的统统计*/goifexxistts(sellectt*froom ssysoobjeectss whhereenamme='chhukuu_innfo55')droppproocedduree chhukuu_innfo55gocreaatepprocceduure chhukuu_innfo55 sstarrt_ddatee smmallldattetiime,ennd_ddatee smmallldattetiimeasseleect商商品名称称,summ(出库数数量)as'出出总库数数量'fromm 商品品表jooin 出库表表on商品品表.商品编编号=出库表表.商品编编号wherre出库库日期bbet