《数据库课程设计总结报告37391.docx》由会员分享,可在线阅读,更多相关《数据库课程设计总结报告37391.docx(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、郑州轻工工业学院本本科数据库课程程设计总结结报告设计题目 设备管理理系统 学生姓名 关兴兴林 傅伟伟 学 号541100700102008 541000701102077系 别 计算机与与通信工程程学院 专 业 计算机机科学与技技术 班 级 100-02 指导教师 钱慎慎一 张张 旭 2012 年 112月 30 日日郑州轻工业业学院课 程 设设 计 任任 务 书书题 目 设 备 管 理 专业、班级级 计算机科科学与技术术1022 学号 540000701102088 姓名 关兴林林 学号 541000701102077 姓名 傅伟伟 主要内容:系统数据初初始化;员员工信息的的查询、修修改和添
2、加加;设备信信息的增删删改查;设设备的采购购信息;设设备的分配配信息;设设备的报修修;设备的的报废;设设备的返厂厂维修。其中会涉及及到一些实实体的属性性值。基本要求:立足于公司司中设备的的管理情况况,实现对对于设备的的管理信息息化,实现现对于数据据库的合理理设计以及及对于数据据的合理的的操作。主要参考资资料等:数据库系系统概论 作作者:王珊珊 萨师煊煊 高等教育育出版社SQL Servver20005中文文版关系数数据库基础础与实践教教程作者者:周峰 电子工业业出版社SQL Servver数据据库开发实实例精粹 作者者:徐国智智 汪孝孝宜 等 电子工业业出版社完 成 期 限: 两两周 指导教师
3、签签名: 课程负责人人签名: 2012年年 12月 30 日日目 录课 程 设设 计 任 务 书2一、需求分分析41、系统功功能分析4 22、系统功功能模块设设计.6二、数据库库设计71、ERR图72、数据字字典93、关系模模式.13 4、关关系表.144三、详细设设计151. 项目功能模模块152. 数据库建立立过程的一一些代码.253. web开发发的一些代代码.27四、项目需需求环境.41五、体会和和感想.42六、说明.422一、 需求分析设备管理是是针对于各各种公司或或者学校等等进行的一一个数据库库设计,针针对的是对对于其功用用的设备的的管理进行行的数据整整理操作等等。本设计中主主要是
4、设计计到设备的的状态比较较多。从设设备的进入入公司到设设备的分配配、报修、维维修、报废废、返厂维维修、设备备存放等做做一系列信信息的整理理。有设备备的买卖、分分配、维修修等操作的的出现,自自然的就设设计到一些些主体比如如供应商、厂厂家、部门门、员工、仓仓库。其中厂家主主要是负责责的设备的的返厂维修修,设计到到一些返厂厂相关的信信息,诸如如返厂维修修时间、维维修原因、维维修费用、维维修结果、是是否在保质质期等等;供应商是对对于设备的的购入而牵牵连来的,其其中包括的的一些属性性采购时间间、采购员员、采购价价格、采购购数量等等等;部门是公司司内部的分分设的子集集体,其中中会牵涉到到设备的分分配、报修
5、修、报废的的操作。在在分配中分分为两种状状态借出和和归还,属属性有借出出时间、归归还时间、负负责人以及及是否可借借等,在报报修的联系系中包含的的属性有报报修人、报报修时间、报报修原因、维维修时间、费费用和维修修结果,在在报废的联联系中主要要有一些报报废的负责责人、报废废的原因、报报废时间等等的属性;员工和部门门是有联系系的,设备备又是属于于员工管理理,属于员员工使用的的。作为辅辅助性的必必须具备有有员工实体体的存在。员员工的固有有属性比较较明显、还还有因为在在部门的上上岗而牵连连出来一些些联系属性性。此数据库的的数据量不不是很大,关关系可以借借助于后面面的数据图图观测。1. 系统功能分分析01
6、.管理理员的登录录02.浏览览所有的设设备查询所所有的设备备信息修改设设备的信息息删除设设备信息03.采购购查询采采购的设备备信息增加采采购设备信信息修改采采购设备信信息 004.设备备的返厂维维修查询返返厂的设备备信息修改返返厂设备的的状态 005.设备备的分配查询借借出的设备备信息及其其使用的部部门查询借借出时间 查询归还还的设备信信息及其对对应部门查询归归还时间修改设设备状态 006.设备备的报修查询要要报修的设设备信息修改设设备的信息息07.员工工信息的查查询及其修修改 查询员工工信息 修改员工工信息08设备备的报废 查询询要报废的的设备信息息 修改报废废的设备信信息登录模块普通用户2
7、. 系统功能模模块设计管理员登陆 查询员工信息设 备 管 理 系 统 修改添加查询设备信息修改删除采购管理添加维修管理查询修改分配管理查询报废管理内部报修查询修改修改查询设备分配修改二、 数据库设计计1. ER图01、员工工信息02、设备备03、供应应商04、部门门05、厂家家06、仓库库07、整个个设备管理理的ER图图2. 数据字典01、员工工表(员工编号号、姓名、性性别、年龄龄、工资、工工龄、员工工联系方式式、从属部部门编号,上上岗时间)数据项名字段类型长度取值范围备注员工编号EmpIDDchar10由十位数字字组成标识员工的的属性姓名EmpNaamestrinng10无性别EmpSeex
8、 striing4(男,女)年龄EmpAggeint4=18工资EmpSaalfloatt82000-100000工龄EmpYeearchar20员工联系方方式EmpTeelChar11由11位数数字组成从属部门编编号EmpDeepChar3部门表中的的编号数值值上岗时间EmpHiirdatettime8年月日02、设备备表(设备编号号、名称、类类别、生产产日期、价价格、使用用年限、供供应商、数数量、存放放仓库号、仓仓库负责人人编号、入入库时间、库库存量、出出库时间、报报废部门编编号、报废废负责人、报报废原因、报报废时间、是是否连带附附件)数据项名字段数据类型数据长度取值范围设备编号DevID
9、Dchar10由十位数字字组成名称DevNaameStrinng20类型DevTyypeStrinng20生产日期DevBiirDatettime8年月日价格DevPrriFloatt8使用年限DevDeeathInt2单位年存放仓库编编号DevSttoreIIDChar3仓库负责人人编号StoreeEmpIIdChar10入库时间StoreeDateeDatettime8年月日库存量CounttInt403、供应应商表(供应商编编号、供应应商名称、地地址、负责责人、供应应商联系方方式)数据项名字段数据类型数据长度取值范围供应商编号号SupIDDChar10有十位数字字组成供应商名称称SupN
10、aameStrinng30地址SupAdddrStrinng50负责人SupEmmpIdStrinng10供应商联系系方式SupTeelChar1104、部门门表(部门编号号、部门名名称、主管管人员)数据项名字段数据类型数据长度取值范围部门编号DepIddChar3部门名称DepNaameStrinng10主管人员编编号DepEmmpIDStrinng1005、厂家家表(厂家编号号、厂家名名称、厂家家地址、厂厂家联系方方式)数据项名字段数据类型数据长度取值范围厂家编号FacIDDChar15厂家名称FacAdddrStrinng50厂家地址FacAdddrStrinng50厂家联系方方式Fac
11、TeelChar1106、仓库库(仓库编号号、面积)数据项名字段数据类型数据长度取值范围仓库编号StoreeIdChar3面积StoreeAreaaFloatt807、采购购表(设备编号号、供应商商编号、采购时间、采采购员、购购买价格、采采购数量)数据项名字段数据类型数据长度取值范围设备编号DevIDDChar10供应商编号号SupIDDChar10采购时间PurDaateDatettime8采购员编号号PurEmmpIDChar10购买价格PurPrriceFloatt8采购数量PurCoountInt608、返厂厂维修表(设备编号号、厂家编编号、返厂厂时间、维维修原因、维维修结果、是是否在
12、保修修期、维修修费用)数据项名字段数据类型数据长度取值范围设备编号DevIDDChar10厂家编号FacIDDChar10返厂时间RetDaateDatettime8维修原因RetCaauseStrinng30维修结果RetReesulttStrinng20是否在保修修期IsFreeeChar2维修费用RetPrriceFloatt809、设备备分配表(设备编号号、部门编编号、借出出时间、归归还时间、类类型、负责责人、是否否可借)数据项名字段数据类型数据长度取值范围设备编号DevIDDChar10部门编号DepIDDChar3借出时间BorroowDattedatettime8年月日归还时间R
13、eturrnDattedatettime8年月日类型TypeStrinng4(借出、归归还)负责人编号号FenEmmpIDChar10是否可借IsBorrrowStrinng210、内部部报修表(设备编号号、部门编编号、报修修人编号、报报修时间、报报修原因、维维修时间、维维修结果、维维修费用)数据项名字段数据类型数据长度取值范围设备编号DevIDDChar10部门编号DepIDDChar3报修人编号号RepEmmpIDChar10报修时间RepDaateDatettime8报修原因RepCaauseStrinng20维修时间RepTiimeDatettime8维修费用RepPrriceFloa
14、tt8维修结果RepreesulttStrinng1011、报废废表(设备编号号、报废部部门编号、报报废时间、报废负责人编号、报废原因)数据项名字段数据类型数据长度取值范围设备编号DevIDDChar10报废部门编编号BrokeeDepIIDChar3报废负责人人编号BrokeeEmpIIDChar10报废时间BrokeeTimeeDatettime8报废原因BrokeeDateeStrinng503、 关系模式员工表(员员工编号,姓姓名,性别别,年龄,工工资,工龄龄,员工联联系方式,从从属部门编编号,上岗岗时间)设备表(设设备编号,名名称,类别别,生产日日期,价格格,使用年年限,存放放仓库号
15、,仓仓库负责人人编号,入入库时间,库库存量)供应商表(供应商编号,供应商名称,地址,负责人,供应商联系方式)部门表(部部门编号,部部门名称,主主管人员)厂家表(厂厂家编号,厂厂家名称,厂厂家地址,厂厂家联系方方式)仓库表(仓仓库编号,面面积)采购表(设设备编号,供供应商编号号,采购时时间,采购购员,购买买价格,采采购数量)返厂维修表表(设备编编号,厂家家编号,返返厂时间,维维修原因,维维修结果,是是否在保修修期,维修修费用)报废表(设设备编号、报报废部门编编号、报废废时间、报报废负责人人编号、报报废原因)4、 关系图三、 详细设计1. 项目功能模模块1.1用户户登录模块块用户登录模模块中,每每
16、个用户只只能以自己己的账号和和密码登录录到系统中中,登录的的时候可以以选择自己己要进行的的操作类型型,只是简简单的查询询操作的话话,在登录录界面中选选择的登录录类型就是是普通用户户型,选择择的是管理理员登录的的话,进入入的就是对对于系统所所有信息的的查询和操操作。给出出的实例:普通用户: 账户(登登录名) 0011 密码 0011管理员: 账户(登登录名) 0001 密密码 0001截图见下面面的所示:1.1.11普通用户户的操作界界面普通用户的的权限只是是对于员工工信息的查查询和设备备信息的查查询,执行行完操作之之后,用户户可以借助助于链接实实现退出操操作,退出出自己的登登录。1.1.22管
17、理员的的登录1.2员工工信息模块块员工信息的的模块中涉涉及到的是是对于员工工的信息的的查询修改改和添加,考考虑到本系系统是针对对的设备的的系统管理理,就忽略略了对于员员工信息的的添加的操操作功能。1.2.11员工信息息查询1.2.22查询部门门信息1.2.33员工信息息修改1.2.44增加员工工信息1.3设备备信息模块块设备信息模模块中实现现的是对于于设备的信信息增删改改查,其中中设备的添添加功能是是隶属于采采购模块中中的,这里里一并说明明。普通用用户查询的的时候,查查询到的是是信息的一一部分信息息,是通过过在数据库库中建立的的虚表,也也就是数据据库中的视视图,限制制了普通用用户的一些些查询信
18、息息。二管理理员的权限限比较的大大,所以可可以直接通通过基本表表实现对于于数据的增增删改查操操作。1.3.11设备信息息查询1.3.22设备信息息修改 1.3.3删除设设备信息1.4采购购管理模块块采购模块主主要是考虑虑到了是对对于数据库库中设备信信息的添加加,所以在在前端开发发的时候只只是对于设设备的添加加操作进行行的,当然然这个模块块的权限是是隶属于管管理员的,普普通用户没没有此权限限。1.4.11添加采购购设备信息息1.5维修修管理模块块维修管理模模块实现的的是对于需需要进行返返厂维修的的设备的信信息处理操操作,这里里只是给出出了一些基基本的查询询和修改页页面。后期期的开发中中可以添加加
19、对于设备备维修的增增加的操作作。1.5.11查询返厂厂维修设备备信息1.5.22修改返厂厂维修设备备的信息1.6分配配管理模块块分配管理模模块实现的的是对于设设备的分配配处理操作作。1.6.11查询分配配的设备信信息1.6.22修改分配配的设备信信息 1.6.33设备分配配管理信息息1.7内部部报修模块块内部报修是是对于损坏坏了的设备备信息进行行的操作。1.7.11设备内部部报修查询询1.7.22修改报修修设备的信信息1.8报废废模块报废模块实实现的是对对于报废的的设备信息息的查询以以及修改信信息,由于于时间的原原因,对于于报废模块块的添加的的操作这里里没有给出出相应的页页面,在后后期的开发发
20、过程中可可以实现这这个操作页页面。1.8.11查询报废废的设备信信息1.8.22修改报废废的设备信信息2. 数据库建立立过程的一一些代码示示例:2.1设备备表建立的的sql语语句:CREATTE TAABLE dboo.sshebeeiTabble1 (设备编编号 charr (110) CCOLLAATE CChineese_PPRC_CCI_ASS NOTT NULLL ,名称 vaarchaar (20) COLLLATE Chinnese_PRC_CI_AAS NOOT NUULL ,类型 vaarchaar (20) COLLLATE Chinnese_PRC_CI_AAS NOOT
21、 NUULL ,生产日日期 dateetimee NOOT NUULL ,价格 flloat NOTT NULLL ,使用年年限 int NOTT NULLL ,存放仓仓库编号 chhar (3) COLLLATE Chinnese_PRC_CI_AAS NOOT NUULL ,仓库负负责人编号号 cchar (100) COOLLATTE Chhinesse_PRRC_CII_AS NOT NULLL ,入库时时间 dateetimee NOOT NUULL ,库存量量 iint NOT NULLL ) ON PRIIMARYYGO2.2员工工表建立的的sql语语句:if exxistss
22、(seelectt * ffrom dbo.sysoobjeccts wwheree id = obbjectt_id(Nddbo.EmppTablle) andd OBJJECTPPROPEERTY(id, NIssUserrTablle) = 1)drop tablle ddbo.EmppTablleGOCREATTE TAABLE dboo.EEmpTaable (员工编编号 charr (110) CCOLLAATE CChineese_PPRC_CCI_ASS NOTT NULLL ,姓名 vaarchaar (10) COLLLATE Chinnese_PRC_CI_AAS NOO
23、T NUULL ,性别 vaarchaar (4) CCOLLAATE CChineese_PPRC_CCI_ASS NOTT NULLL ,年龄 innt NNOT NNULL ,工资 flloat NOTT NULLL ,工龄 chhar (2) COLLLATE Chinnese_PRC_CI_AAS NUULL ,员工联联系方式 chhar (11) COLLLATEE Chiinesee_PRCC_CI_AS NNOT NNULL ,从属部部门编号 chhar (3) COLLLATE Chinnese_PRC_CI_AAS NOOT NUULL ,上岗时时间 dateetimee
24、NUULL ) ON PRIIMARYYGO2.3对于于普通用户户查询的表表(视图)建建立视图是增加加数据库安安全性的一一个表现,在在本系统中中主要是针针对于用户户的查询界界面,其中中管理员的的权限是明明显大于普普通用户的的,普通用用户查询之之后看到的的是一些最最基本的员员工信息和和设备的信信息。运用的是可可视化界面面的操作,选选中员工表表中的一些些列:员工工的编号,姓姓名,部门门和联系方方式构建虚虚表。对于于普通用户户中的设备备查询的操操作中时也也是基于此此操作来实实现的,建建立的试图图是设备表表中的一些些列:设备备编号、名名称、类型型、存放仓仓库、仓库库负责人。2.4数据据库中的存存储等存
25、储过程是是数据库中中为了对于于一些频繁繁的类似的的操作进行行的优化集集中式的处处理操作,在在本系统中中给出的一一个存储过过程是建立立在对于查查询的操作作上,基于于此操作来来实现数据据库的高效效率性。下下面说明的的就是对于于普通用户户查询查询询员工表的的操作。在员工表上上建立的一一个当输入入的是一个个员工的编编号的时候候,可以直直接运行输输出对应的的查询结果果。CREATTE PRROCEDDURE sp_cchaxuunpt_iid chhar(110)ASSELECCT * FROM EMPTTableewheree 员工编编号=ppt_iddGO触发器在数数据库中有有着特殊的的意义,它它的
26、出现实实现了数据据库中的一一些表进行行变化的时时候,与此此项有关的的一些表的的属性值可可以发生对对应的变化化,强化了了数据的完完整性的约约束和一些些业务规则则等。本设设备管理系系统中暂时时没有考虑虑存储过程程中的触发发器的运用用。至于数据库库中表的主主键、外键键以及一些些基本的约约束的操作作,在数据据库建立数数据表的时时候可以进进行可视化化的操作,操操作简便,只只是在操作作的时候对对于数据的的字段的书书写要准确确无误。游标,由于于本设备管管理系统的的前台开发发使用的是是jsp页页面的处理理,所以在在jsp页页面的时候候运用前端端的代码充充分的体现现了游标的的好处。3 webb开发的一一些代码前
27、端的开发发使用的是是纯jspp页面的操操作,这里里仅作一部部分的代码码示例3.1 登登录界面Loginn.jsppA.meenuittem CCOLORR: mennutexxt; TEXXT-DEECORAATIONN: nonneA.mennuiteem:hoover CCOLORR: higghligghtteext; BACKKGROUUND-CCOLORR: higghligghtDIV.cconteextmeenu BBORDEER-RIIGHT: 2pxx outtset; BORRDER-TOP: 2pxx outtset; Z-IINDEXX: 9999; VISSIBILL
28、ITY: hiddden; BORRDER-LEFTT: 2pxx outtset; BORRDER-BOTTTOM: 2px outsset; POSIITIONN: abssolutte; BACCKGROOUND-COLOOR: butttonffacefuncttion Yearr_Monnth() vvar nnow = neww Datte(); vvar yyy = now.getYYear(); vvar mmm = now.getMMonthh()+11; vvar ccl = ; iif (nnow.ggetDaay() = 00) cll = ; iif (nnow.gg
29、etDaay() = 66) cll = ; rreturrn(cll + yy + 年 + mmm + 月); funcctionn Datte_off_Todday() vvar nnow = neww Datte(); vvar ccl = ; iif (nnow.ggetDaay() = 00) cll = ; iif (nnow.ggetDaay() = 66) cll = ; rreturrn(cll + now.getDDate() + ); funcctionn Dayy_of_Todaay() vvar dday = neww Arrray(); dday00 = 星期日日;
30、 dday11 = 星期一一; dday22 = 星期二二; dday33 = 星期三三; dday44 = 星期四四; dday55 = 星期五五; dday66 = 星期六六; vvar nnow = neww Datte(); vvar ccl = ; iif (nnow.ggetDaay() = 00) cll = ; iif (nnow.ggetDaay() = 66) cll = ; rreturrn(cll + daynow.getDDay() + ); funcctionn CurrentTTime() vvar nnow = neww Datte(); vvar hhh =
31、now.getHHourss(); vvar mmm = now.getMMinuttes(); vvar sss = now.getTTime() % 600000; sss = (ss - (sss % 10000) / 10000; vvar cclockk = hhh+:; iif (mmm 10) clocck += 0; cclockk += mm+:; iif (sss 10) clocck += 0; cclockk += ss; rreturrn(cllock); functtion refrreshCCalenndarCClockk() documment.all.cale
32、endarrClocck1.iinnerrHTMLL = YYear_Montth(); documment.all.caleendarrClocck2.iinnerrHTMLL = DDate_of_TTodayy(); documment.all.caleendarrClocck3.iinnerrHTMLL = DDay_oof_Tooday(); documment.all.caleendarrClocck4.iinnerrHTMLL = CCurenntTimme(); var webUUrl = webbUrl; documment.writte(); documment.writt
33、e();documment.writte(ffont );documment.writte(sstylee=cuursorr:hannd;coolor:#ff00000;fontt-fammily:宋体;ffont-sizee:14ppt;liine-hheighht:1220% );if (wwebUrrl != neetfloower) doocumeent.wwritee(fontt ); doocumeent.wwritee(sttyle=currsor:handd;collor:#20000ff;ffont-famiily:宋宋体;foont-ssize:9pt;linee-heiight:110% ); documment.writte(); documment.writte();documment.writte();documment.writte();documment.writte();documment.writte( );documment.writte( );documment.writte( );documment.writte(fontt id=call