数据库课程设计总结报告.docx
到州较工业学院洋科救据犀钵翟残计总错赧告设计题目设备管理系统学生姓名关兴林傅伟伟学号541007010208541007010207系别计算机与通信工程学院专业计算机科学与技术班级10-02指导教师钱慎一张旭2012年12月30日郑州轻工业学院课程设计任务书题目设备管理专业、班级计算机科学与技术10-2学号540007010208姓名关兴林学号541007010207姓名傅伟伟主要内容:系统数据初始化;员工信息的查询、修改和添加;设备信息的增删改查;设备的采购信息;设备的分配信息;设备的报修;设备的报废;设备的返厂维修。其中会涉及到一些实体的属性值。基本要求:立足于公司中设备的管理情况,实现对于设备的管理信息化,实现对于数据库的合理设计以及对于数据的合理的操作。主要参考资料等:数据库系统概论作者:王珊萨师帽高等教育出版社(SQLSerVer2005中文版关系数据库基础与实践教程作者:周峰电子工业出版社SQLSerVer数据库开发实例精粹作者:徐国智汪孝宜等电子工业出版社完成期限:两周指导教师签名:课程负责人签名:2012年12月30日目录课程设计任务书3一、需求分析错误!未定义书签。1、系统功能分析42、系统功能模块设计.6二、数据库设计71、E-R图错误!未定义书签。2、数据字典错误!未定义书签。3、关系模式错误!未定义书签。34、关系表.14三、详细设计错误!未定义书签。51.项目功能模块152.数据库建立过程的一些代码253.web开发的一些代码27四、项目需求环境41五、体会和感想42六、说明.:.?.42一、需求分析设备管理是针对于各种公司或者学校等进行的一个数据库设计,针对的是对于其功用的设备的管理进行的数据整理操作等。本设计中主要是设计到设备的状态比较多。从设备的进入公司到设备的分配、报修、维修、报废、返厂维修、设备存放等做一系列信息的整理。有设备的买卖、分配、维修等操作的出现,自然的就设计到一些主体比如供应商、厂家、部门、员工、仓库。其中厂家主要是负责的设备的返厂维修,设计到一些返厂相关的信息,诸如返厂维修时间、维修原因、维修费用、维修结果、是否在保质期等等;供应商是对于设备的购入而牵连来的,其中包括的一些属性采购时间、采购员、采购价格、采购数量等等;部门是公司内部的分设的子集体,其中会牵涉到设备的分配、报修、报废的操作。在分配中分为两种状态借出和归还,属性有借出时间、归还时间、负责人以及是否可借等,在报修的联系中包含的属性有报修人、报修时间、报修原因、维修时间、费用和维修结果,在报废的联系中主要有一些报废的负责人、报废的原因、报废时间等的属性;员工和部门是有联系的,设备又是属于员工管理,属于员工使用的。作为辅助性的必须具备有员工实体的存在。员工的固有属性比较明显、还有因为在部门的上岗而牵连出来一些联系属性。此数据库的数据量不是很大,关系可以借助于后面的数据图观测。1.系统功能分析OL管理员的登录02,浏览所有的设备-查询所有的设备信息修改设备的信息删除设备信息03,采购-查询采购的设备信息-增加采购设备信息修改采购设备信息04设备的返厂维修查询返厂的设备信息修改返厂设备的状态05.设备的分配一一查询借出的设备信息及其使用的部门查询借出时间-查询归还的设备信息及其对应部门查询归还时间一一修改设备状态06.设备的报修一一查询要报修的设备信息一一修改设备的信息()7,员工信息的查询及其修改查询员工信息修改员工信息08.设备的报废-查询要报废的设备信息一修改报废的设备信息2.系统功能模块设计登录模块查询设备管理系统员工信息Y修改添加杳询设备信息Y修改删除采购管理添加维修管理Y杳询L修改分配管理Y壹询修改设备分配第7页共47页查询内部报修1二、数据库设计1.E-R图01、员工信息02、设备设备03、供应商04、部门05、厂家06、仓库07、整个设备管理的ER图乐购员.介旗-一-/录购数瓜.供应商e一s购-n设备E-I磕皂0J墓二电一回/Iw否在保修期厂京泾豆五鼠_笈苍A-y仓障华吗里4拿JSA匣亘画面3、/"Wf三lJI2:yI1.像弓里.L举围/×x/L-一m±MBJJ福J伎区见囚-/2.数据字典01、员工表(员工编号、姓名、性别、年龄、工资、工龄、员工联系方式、从属部门编号,数据项名字段类型长度取值范围备注员工编号EmpIDchar10由十位数字组成标识员工的属性姓名EmpNamestring10无性别EmpSexstring4(男,女)上岗时间)年龄EmpAgeint4>=18工资EmpSaloat8200010000工龄EmpYearchar2>0员工联系方式EmpTelCharIl由11位数字组成从属部门编号EmpDepChar3部门表中的编号数值上岗时间EmpHirdatetime8年月日02、设备表,设备编号、名称、类别、生产日期、价格、使用年限、供应商、数量、存放仓库号、仓库负责人编号、入库时间、库存量、出库时间、报废部门编号、报废负责人、报废原因、报废时间、是否连带附件)数据项名字段数据类型数据长度取值范围设备编号DevlDchar10由十位数字组成名称DevNameString20类型DevTypeString20生产日期DevBirDatetime8年月日价格DevPriFloat8使用年限DevDeathInt2单位年存放仓库编号DevStoreIDChar3仓库负责人编号StoreEmpIdChar10入库时间StoreDateDatetime8年月日库存量CountInt403、供应商表,供应商编号、供应商名称、地址、负责人、供应商联系方式)数据项名字段数据类型数据长度取值范围供应商编号SupIDChar10有十位数字组成供应商名称SupNameString30编号:时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第12页共47页地址SupAddrString50负责人SupEmpIdString10供应商联系方式SupTelChar1104、部门表,部门编号、部门名称、主管人员)数据项名字段数据类型数据长度取值范围部门编号DepIdChar3部门名称DepNameString10主管人员编号DepEmpIDString1005、厂家表,厂家编号、厂家名称、厂家地址、厂家联系方式)数据项名字段数据类型数据长度取值范围厂家编号FacIDChar15厂家名称FacAddrString50厂家地址FacAddrString50厂家联系方式FacTelChar1106、仓库,仓库编号、面积)数据项名字段数据类型数据长度取值范围仓库编号StoreldChar3面积StoreAreaFloal807、采购表(设备编号、供应商编号、采购时间、采购员、购买价格、采购数量)数据项名字段数据类型数据长度取值范围设备编号DevIDChar10供应商编号SupIDChar10采购时间PurDateDatetime8采购员编号PurEmpIDChar10购买价格PurPriceFloat8采购数量PurCountInt608、返厂维修表设备编号、厂家编号、返厂时间、维修原因、维修结果、是否在保修期、维修费用)数据项名字段数据类型数据长度取值范围设备编号DevIDChar10厂家编号FacIDChar10返厂时间RetDateDatetime8维修原因RetCauseString30维修结果RetResultString20是否在保修期IsFreeChar2维修费用RetPriceFloat809、设备分配表(设备编号、部门编号、借出时间、归还时间、类型、负责人、是否可借)数据项名字段数据类型数据长度取值范围设备编号DcvIDChar10部门编号DepIDChar3借出时间BorrowDatedatetime8年月日归还时间ReturnDatedatetime8年月日类型TyPeString4(借出、归还)负责人编号FenEmpIDCharIO是否可借IsBorrowString210、内部报修表(设备编号、部门编号、报修人编号、报修时间、报修原因、雄修时间、维修结果、维修费用厂数据项名字段数据类型数据长度取值范围设备编号DevIDCharIO部门编号DepIDChar3报修人编号RepEmpIDChar10报修时间RepDateDatetime8报修原因RepCauseString20维修时间RepTimeDatelime8维修费用RepPriceFloat8维修结果RepresultString1011、报废表(设备编号、报E2部门编号、报废时|间、报废负责人编号、报废原因)数据项名字段数据类型数据长度取值范围设备编号DevIDChar10报废部门编号BrokeDeplDChar3报废负责人编号BrokeEmpIDChar10报废时间BrokeTimeDaletime8报废原因BrokeDateString503、关系模式员工表(员工编号,姓名,性别,年龄,工资,工龄,员工联系方式,从属部门编号,上岗时间)设备表(设备编号,名称,类别,生产日期,价格,使用年限,存放仓库号,仓库负责人编号,入库时间,库存量)供应商表(供应商编号,供应商名称,地址,负责人,供应商联系方式)部门表(部门编号,部门名称,主管人员)厂家表(厂家编号,厂家名称,厂家地址,厂家联系方式)仓库表1仓库编号.面积)采购表(设备编号,供应商编号.采购时间,采购员,购买价格,采购数量)返厂维修表(设备编号,厂家编号,返厂时间,维修原因,维修结果,是否在保修期,维修费用)报废表(设备编号、报废部门编号、报废时间、报废负责人编号、报废原因)4、关系图向熙矍teiM叩骡i0典sslMJ疑圜露gI圈嚼IsJORqfH叩嘱岖i快n%步LIXqeIrUJMEBU晶屈嚣M3-8#】3IqPInJPUeQ我帐宣扫君怅翘褐亦黄W守C喇嚣恒WY叩嗑Y唱W做3叶疆世串塞a置罢密斯20-缶松硬倒基健0慰囹把叩骗1固基一IBlqFUIASUOMF1三l喊毂叵法屈叵居Sl黑一病FIqPITdUSJ画,7L罂匚跪摩ISO匿忌驾辞一巽翳叩骗H吗可23PIdiI2二.EqBWqUBIP薪嗅啜四Ku呻Ii叵依眼界傀案单-YL七IqE'sIgB:MUBipUUJIBH堤型紫旺匝后坦登QlIfe里Ss事Y建需Olr曙L-脆Olp骗唾整VLIX叫Y驾昂L矗sTUIqEHJBdup七TqPVOEq三、详细设计1.项目功能模块1.1用户登录模块用户登录模块中,每个用户只能以自己的账号和密码登录到系统中,登录的时候可以选择自己要进行的操作类型,只是简单的查询操作的话,在登录界面中选择的登录类型就是普通用户型,选择的是管理员登录的话,进入的就是对于系统所有信息的查询和操作。给出的实例,普通用户:账户(登录名)001密码001管理员:账户(登录名)001密码001截图见下面的所示:1.1.1普通用户的操作界面普通用户的权限只是对于员工信息的查询和设备信息的查询,执行完操作之后,用户可以借助于链接实现退出操作,退出自己的登录。请点击你要进行的操作员工信息杳询i殳备杳询与回登陆窗口1.1.2管理员的登录请选择你要进行的操作月工信息aj近0员丁设笛信息鱼询设¾s修改设G息陈设仁息乘购管耳拦甘来购的设备维修管理查首返J的设备量更®的设备祥分配管收位j分配的逡备改设能分配信设施分配内部报修点询报修设备信息F亶报修的设备报废管理查询报废的发备昆亶报废的设备返回登陆窗口1.2员工信息模块员工信息的模块中涉及到的是对于员工的信息的查询修改和添加,考虑到本系统是针对的设备的系统管理,就忽略了对于员工信息的添加的操作功能。1.2.1员工信息查询员工信息查询员工编号姓名性别年龄资工龄员工联系方式从属部门编号上胃时间5410070101张三1295000.01015896325684001i2002-09-0200:00:00.i5410070102陈沐女284000.05153268974560012007-05-09J)0:00:00.05410070103李斯5410070104贾超男男35256000.05000.01351586953256815989335684002199908-0500:00:00.0002200706-0600:00:00.05410070105j王方女304500.08158741654230032004-07-0400:00:00.05410070106鹿轩男325500.01。!15236478950042002-06-0300:00:00.0近回主管界近1.2.2查询部门信息部门信息查询部门编号I部门名称I主管人员OOl生产部(1234567890002俏售部 1234567891003府采购部1234567893维修部 IIi34567894返回上一级1.2.3员工信息修改请输入你要修改的员工的编号,:妙你要修改的员工信息如下::员工编号姓叁函函LT资T服览底系方式从属部门编号!上丽问5410070101微三|男306OOT01015986478964OOl2002-09-0200:00:00.0修改之后的员工表修改员工信息员工编号:5410070IoL员工姓名:4自性界h-年飘;30工资36000工龄:10联系方式:15689745632部门架号:Sg_上岗时间:2DC-02员工编号1姓名性别年龄41007。101张:5410070102MK5410070103S男30女I28勇35工资IH龄6000.01104000.0I56000.0;13员工联系方式从属部口编号I-工岗时间159864789641532689745615869532568OOl0022002090200:00:00.O2007050900:00:00.01999-08-0500:00:00.01.2.4增加员工信息添加员工信息员工编号:54170109员工姓名:郑冯巩性别:男G女H5":'ULU工龄:B联系方式-45896523568部门编号:*002-上岗时JsJ37-08-25二更新后的人员信息返回管/主页面1.3设备信息模块设备信息模块中实现的是对于设备的信息增删改查,其中设备的添加功能是隶属于采购模块中的,这里一并说明。普通用户查询的时候,查询到的是信息的一部分信息,是通过在数据库中建立的虚表,也就是数据库中的视图,限制了普通用户的一些查询信息。二管理员的权限比较的大,所以可以直接通过基本表实现对于数据的增删改查操作。1-3.1设备信息查询设备查询设备编号名称类型生产日期价格使用年限存放仓库编号仓库负责人编号入库时间度存81234567890主机电子漫备2001-09-0200:00:00.01500.01200154100701022007-02-0300:00:00.0521234567891显示屏电子设备2007-04-2000:00:00.0800.01000154100701012007-06-0100:00:00.0601234567892健盘电子设备2008-05-0600:00:00.030.0800254100701022008-06-2000:00:00.0551234567893音箱电子设备2008-07-0100:00:00.0100.01200254100701022008-08-0100:00:00.060查看员工表查看仓库信息泛回卞管而面仓库查询仓库编号面积001250.0002350.0返回上一级返回主管界面1.3.2设备信息修改修改设备信息设备编号:1234567390名称机.美:电子设m二生产日期:2001-09-2使用期限:10 二 I:存布徒编号:®001 ': 002设备编号名称炎型生产日期价格入库时间主机123456789012OOl5410070102设南便用 年限座方 55库负贡天 翁号2007-02-0300:00:00. 02001-09 02 00:00:00. 0备编号募生产日期价格使用年限存放仓库编号仓库负责人编号入库时间4567890主机电子设备2001-09-0200:00:00.01500.01200154100701022007-02-0300:00:00.04KA7Ql刊2007-04-20HnnnmmK417112007-06-011.3.3删除设备信息所有段备信息W1.4采购管理模块采购模块主要是考虑到了是对于数据库中设备信息的添加,所以在前端开发的时候只是对于设备的添加操作进行的,当然这个模块的权限是隶属于管理员的,普通用户没有此权限。1.4.1添加采购设备信息添加采购设备信息设备编号:1234567890名称:主机类型:电逑备生产日期:2008-9-1价格:1500使用年限:石存放仓库编号;go1.002仓库负责人:|54170102入库时间:JU08-9-6I库存量:100ktlxSB更新后的设备信息返回管理主页面1.5维修管理模块维修管理模块实现的是对于需要进行返厂维修的设备的信息处理操作,这里只是给出了一些基本的查询和修改页面。后期的开发中可以添加对于设备维修的增加的操作。1.5.1查询返厂维修设备信息100. 050. 0设自编::J家编"识J HJfuJ维修原内123456789011022011-05-04 00:00:00?0 Ifi盘Hi坏1234367X9011092011 10 01 00:00:00. 0CPlJ搔坏1234567891 |11032012-0S-09 00:00二Otk 0 ;显示屏不显示雍修结巢是否存保IA期己修好是不可修复否已修好返厂维修设备查询维修费用1-5.2修改返厂维修设备的信息修改返厂维修设备的信息设备编号:1234567890厂家编号:彳101-返厂时间:2009-8-7J维修原因:磁盘损坏维修结果:E修好是否在保质期:S是否维修费用:恒返回管一主页面1.6分配管理模块分配管理模块实现的是对于设备的分配处理操作。1.6.1查询分配的设备信息设备分配查询|设备编号借出时间归哥时间I类型负责人编号是否可借12345678900012009-01-0100:00:00.02010-02-2300:00:00.0无1234567890)12345678910022010020300:00:00.02011030300:00:00.O无1234567891返回主管理界面1.6.2修改分配的设备信息修改设备信息设备编号:1234567890部口编号皿一借出时间2008-7-7归还时间2008-9-7类型电子设备负责人编号6%0070102是否可借是。否返回管理主页面163设备分配管理信息设备分配管理信息分配的设备编号:1234567893部门编号:002".|借出时间:2009-3-5归还时间:2009-5-9I类型:电子设备负费人编号:5410070105是否可借:鱼是否分倒重置更新后的设备分配信息返回管理主页面1.7内部报修模块内部报修是对于损坏了的设备信息进行的操作。1.7.1设备内部报修查询设备内部报修查询设备编号部门编号报修人编号保修时间报修原因123456789000154100701012010-07-0100:00:00.0磁盘损坏123456789000254100701022010-05-0300:00:00.0CPIJ风扇老化,23456789300154100701032009-08-0700:00:00.0音箱线接触不良返回主管理界面17.2修改报修设备的信息修改报修信息设备编号:234567893部门编号:002报修人编号:5410070103报修时间:200&7*报修原因:音丽密触不良一-提交重置返回管理主页面1.8报废模块报废模块实现的是对于报废的设备信息的查询以及修改信息,由于时间的原因,对于报废模块的添加的操作这里没有给出相应的页面,在后期的开发过程中可以实现这个操作页面。1.8.1查询报废的设备信息设备报废查询设备编号部门编号负责人编号报废时间报废原因1234567890OOl54100701012012-09-0100:00:00.0损坏不可维修123456891OOl54100701022011-10-2000:00:00.0损坏不可维修返回王管理界面18.2修改报废的设备信息请输入你要修改的设备的编号,你要修改的设备信息如下:!设备编号阿废部门编号!报废负责人编号!报废时间-*康原国-11234567890OOl|54100701012012-09TH00:00:00.0臧坏不可维修查看修改之后的报废设备近回上一峦2.数据库建立过程的一些代码示例:2.1设备表建立的SqI语句:CREATETABLEdbo.shebeiTablel(设备编号char(10)COLLATEChinese_PRC_CI_ASNOTNULL,名称varhar(20)COLLATEChinese_PRC_CI_ASNOTNULL,类型varhar(20)COLLATEChinese_PRC_CI_ASNOTNULL,生产日期daletimeNOTNULL,价格floatNOTNULL,使用年限intNOTNULL,存放仓库编号char(3)COLLATEChineSe-PRC_CI_ASNOTNULL,仓库负责人编号char(10)COLLATEChinese_PRC_CI_ASNOTNULL,入库时间MaletimeNOTNULL,库存量intNOTNULL)ONPRIMARYGO2.2员工表建立的Sql语句:ifexists(select*fromdbo.sysobjectswhereid=object-id(N'dbo.IEmpTabIe')andOBJECTPRoPERTY(id,NrIsUserTabIe)=1)droptabledboJ.EmpTableGOCREATETABLEdbo.EmpTable(员工编号char(10)COLLATEChinese_PRC_CI_ASNOTNULL,姓名HVarchar(10)COLLATEChinese_PRC_Cl_ASNOTNULL,性别varchar(4)COLLATEChinese_PRC_CI_ASNOTNULL,年龄HinUNOTNULL,工资floatNOTNULL,工龄HCharCOLLATEChineSe_PRC_CI_ASNULL,员工联系方式char(11)COLLATEChinese_PRC_CI_ASNOTNULL,从属部门编号char(3)COLLATEChinese_PRC_CI_ASNOTNULL,上岗时间datetimeNULL)ONPRIMARYGO2.3对于普通用户查询的表(视图)建立视图是增加数据库安全性的一个表现,在本系统中主要是针对于用户的查询界面,其中管理员的权限是明显大于普通用户的,普通用户查询之后看到的是一些最基本的员工信息和设备的信息。运用的是可视化界面的操作,选中员工表中的一些列:员工的编号,姓名,部门和联系方式构建虚表。对于普通用户中的设备查询的操作中时也是基于此操作来实现的,建立的试图是设备表中的一些列:设备编号、名称、类型、存放仓库、仓库负责人。2.4数据库中的存储等存储过程是数据库中为了对于一些频繁的类似的操作进行的优化集中式的处理操作,在本系统中给出的一个存储过程是建立在对于查询的操作上,基于此操作来实现数据库的高效率性。下面说明的就是对于普通用户查询查询员工表的操作。在员工表上建立的一个当输入的是一个员工的编号的时候,可以直接运行输出对应的查询结果。CREATEPROCEDUREsp_chaxunpt_idchar(10)ASSELECT*FROMEMPTablewhere员工编号=pt_idGO触发器在数据库中有着特殊的意义,它的出现实现了数据库中的一些表进行变化的时候,与此项有关的一些表的属性值可以发生对应的变化,强化了数据的完整性的约束和一些业务规则等。本设备管理系统中暂时没有考虑存储过程中的触发器的运用。至于数据库中表的主键、外键以及一些基本的约束的操作,在数据库建立数据表的时候可以进行可视化的操作,操作简便,只是在操作的时候对于数据的字段的书写要准确无误。游标,由于本设备管理系统的前台开发使用的是jsp页面的处理,所以在jsp页面的时候运用前端的代码充分的体现了游标的好处。3web开发的一些代码前端的开发使用的是纯jsp页面的操作,这里仅作一部分的代码示例3.1登录界面1.oginjsp<%pageContentType=,ttexthtnl;charset=gb2312,tlanguage=njava,fimport=,java.sql."errorPage=,terrorpage.jsp"%><html><head><STYLE>A.menuitemCOLOR:menutext;TEXT-DECORATION:noneA.menuitern:hoverCOLOR:highlighttext;BACKGROUND-COLOR:highlightDIV.contextmenuBORDER-RIGHT:2pxoutset;BORDER-TOP:2pxoutset;Z-INDEX:999;VISIBILITY:hidden;BORDER-LEFT:2pxoutset;BORDER-BOTTOM:2pxoutset;POSITION:absolute;BACKGROUND-COLOR:buttonface<STYLE><SCRIPTlanguage=JavaScrpt>functionYear_Month()varnow=newDate();varyy=now.getYear();varmm=now.getMonth()+1;varcl=,<fontcolor=*1#0000df,>,;if(now.getDay()=0)cl=,<fontcolor=,c00000,*>,;if(now.getDay()=6)cl=,<fontcolor=,00c000,>,;return(cl+yy+年,+mm÷,fl<font>,);functionDate_of_Today()varnow=newDate();varcl=,<fontcolor=,ff0000t,>,;if(now.getDay()=0)cl=,<fontColor="#Coc)OOo">'if(now.getDay()=6)cl=,<fontcolor=,00c000,>,;return(cl+now.getDate()+,<font>,);functionDay_ofToday()varday=newArray();dayO="星期日,,dayl="星期一";day2="星期二";day3="星期三";day4=”星期四";day5="星期五";day6="星期六";varnow=newDate();varcl=,<fontcolor=*#00OOdfn>,;if(now.getDay()=0)cl=,<fontColor="#COoOOO">'if(now.getDay()=6)cl=,<fontcolor=,00c000,>,;return(cl+daynow.getDay()+,<font>,);functionCurentTime()varnow=newDate();varhh=now.getHours();varmm=now.getMinutes();varss=now.getTime()%60000;ss=(ss-(ss%1000)/1000;varclock=hh+,:,;if(nun<10)clock+=,0,;clock+=mm+,:,;if(ss<10)clock+=,0,;clock+=ss;return(clock);functionrefTeshCalendarClock()document.all.CalendarClockl.innerHTML=Year_Month();document.all.calendarClock2.innerHTML=Date_of_Today();document.all.calendarClock3.innerHTML=Day_of_Today();document.all.calendarClock4.innerHTML=CurentTime();varwebUrl=webUrl;document.write(,<tableborder="。"Cellpadding=nOncellspacing=O,><tr><td>,);document.write(