供应管理系统的设计与开发论文_第1页
供应管理系统的设计与开发论文_第2页
供应管理系统的设计与开发论文_第3页
供应管理系统的设计与开发论文_第4页
供应管理系统的设计与开发论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE PAGE1供应管理系统设计与开发TOC\o"1-3"\h\z摘要 2Abstract 31系统概况 41.1系统开发背景 41.2系统开发意义 42系统需求分析 42.1系统功能划分 52.2子系统业务流程 62.3系统数据流图 93系统设计 123.1系统功能设计 123.1.1仓库管理子系统 133.1.2合同管理子系统 143.1.3供应人员管理子系统 143.1.4供应商管理子系统 153.2数据库设计 153.2.1数据库基础知识 153.2.2数据库系统设计 164系统实现 194.1系统开发工具介绍 194.1.1数据库工具(MSSQLServer2000)介绍 194.1.2VB.NET介绍 194.2系统实现 244.2.1数据库实现 244.2.2程序界面设计与实现方法 264.2.3系统测试 305结束语 30参考文献 31摘要供应管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人结合实际的要求,对MSSQLServer2000数据库管理系统、SQL语言原理、VB.NET应用程序设计,VB.NET数据库技术进行了较深入的学习和应用,主要完成对供应管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的供应管理系统可以满足客户的要求。供应管理系统分为8个子系统:仓库管理,供应商管理,票据管理,出入库管理,合同管理,比价采购,招标采购,采购计划管理。我主要负责仓库管理,出入库管理,合同管理,供应商管理的设计与实现。论文首先对数据库有关知识和开发工具作加以介绍。接下来对该系统的开发过程及功能实现作了简要的说明,具体划分了三类用户的操作权限,设计了了几个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询。关键字:需求分析,仓库管理,合同管理,子系统AbstractAccommodationmanagementsystemisatypicalmanaginginformationsystem.Developingitmainlyincludestworespects.Oneisthesetting-upandmaintenanceofthebackgrounddatabaseandtheotheristhedevelopingoftheforegroundapplication.Theformerdemandstosetupastorehousewhichhasstrongerconsistencyandintegralityofthedataandbettersecurityofthedata.Forthelatter,thecompletefunctionandthecharacteristicofusingeasilyarenecessary.Socombiningtherealdemand,IdeeplystudiedtheMSSQLServer2000databasemanagementsystem,SQLlanguageprincipleandVB.NETdatabasetechnology.Throughtheprocessingofstudy,Imainlyfinisheddemandanalysis,functionmoduledividinganddatabasemodeanalysisoftheaccommodationmanagementsystemandhasdesignedstructureofthedatabaseandapplicationprogram.Systematicoperationresultprovedthatsupplythissystemwhichthistextintroducescanmeetdemandofcustomers.Accommodationmanagementsystemisdividedinto8subsystems:Thewarehousemanagement,suppliermanagement,notemanagement,discrepancylibrarymanagement,thecontractmanagement,comparisonshopping,requestforproposalpurchase,theplanofpurchasemanagement.Iammainlyresponsiblefordesigningandimplementingthewarehousemanagement,thediscrepancylibrarymanagement,thecontractmanagementandsuppliermanagement.InchapterfirstlyGivingtheintroductiontotherelevantknowledgeofthedatabaseandDoingthebriefillustrationtothedevelopinginstrument.Afterdoingthat,itdoesthebriefexplanationtothedevelopmentcourseandfunctionofthissystemanddividestheoperationauthoritiesofthreekindsofusersconcretelyanddesignseveraloperatedinterfaces.Andithasrealizedlookingaroundofthedatabaseform,adding,deletingandrevisinginformationandformulatingofreportforms.Atlast,IgivewhatIhaslearnedintheprocessofwork.Keyword:demandanalysis,warehousemanagement,contractmanagement,subsystem1系统概况1.1系统开发背景山东海化集团是1995年8月由原潍坊纯碱厂和山东羊口盐场两个国有大(一)企业为龙头组建的,以发展海洋化工新兴产业为主导,集科、工、贸等为一体的现代化特大型企业,现为“全国120家建立现代企业制度试点企业集团”和“山东省重点培育的23家大型骨干企业集团”之一。现有职工2万余人,拥有资产总额110多亿元,下设24个分、子公司和一个国家级技术中心,建有企业博士后工作站。海化集团主要产品有40多种,其中纯碱、原盐、溴素、三聚氰胺、两钠、氯化钙等10种产品产量及市场占有率均居全国首位,是全国最大的海洋化工生产基地和出口创汇基地。企业先后荣获全国“五一”劳动奖状、山东省管理创新优秀企业、山东省文明单位、山东省思想政治工作优秀企业、山东省资源节约综合利用工作先进企业等一系列荣誉称号。为了进一步提高经济效益和工作效率,海化公司投资开发《海化集团供销管理系统》,实现公司办公信息化、多元化的发展。1.2系统开发意义随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对工作环境的要求也越来越高。供应管理作为公司正常运转的基石,在现代企业中越来越受到重视。在计算机飞速发展的今天,将计算机这一信息处理利器应用于营销的日常管理已是势必所然,而且这也将为供应管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为供应管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:极大提高了工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。基于供应管理的全面自动化,可以减少工作的漏洞,可以节约不少管理开支,增加企业收入。供应的管理的操作自动化和信息的电子化,全面提高了供应的管理水平。随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,营销管理的全面自动化、信息化则是其中极其重要的部分。为了加快营销管理自动化的步伐,提高营销的管理业务处理效率,建立营销管理系统已变得十分必要。通过对海化公司供应管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今供应管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。2系统需求分析在需求分析之前粗略的了解了用户的需求,也提出了可行的方案,但许多的细节还是被忽略了,然而在最终的系统中我们不能忽略任何一个微小的细节,我们要准确回答“系统该做什么”这个问题。在需求分析阶段我们必须确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的工作。确定对系统的综合要求,这一步包括:分析系统的数据要求,导出系统的逻辑模型,修正系统开发计划,用户复查。2.1系统功能划分供应管理系统需要满足管理人员,决策人员和执行人员的需求。涉及的部门包括材料科,原料科,备件科,物管科。管理人员的需求是凭借合法身份登陆到管理界面,从而对信息进行录入,修改,删除,并协助决策人员做出决策,如仓库管理人员,要对仓库里的物资进行安全库存检查,以防有缺货事件发生,要对每次的商品入库进行登记,录入商品的供应商,质量,入库时间,商品量等信息,并调整库存量,并修改合同执行情况。出库管理,同样要记录商品名称,商品量,出库时间等信息,并修改库存,同时检验库存量是否处于安全库存。同时还可以查询缺货物资,以帮助生成采购清单。合同管理要求对合同的签订时间,发货时间,结束时间,以及合同涉及的物资名称,物资量,做相应的纪录。并监督执行情况。并且可以对合同的信息进行查询,修改。供应商管理要对供应商的基本信息以及其提供的产品,信誉情况作相应的纪录。并且可以查询某个供应商的交往纪录。对决策人员要求系统生成的信息辅助其做出最合理的决策,如采购时要根据供应商的地址,报价,信誉情况等做出选择,避免损失。对于执行人员要根据管理系统提供的信息做出计划,协助决策人员。如采购时要分招标采购和比价采购。执行人员根据系统提供的信息,做出采购计划,报决策层。供应管理系统目的是帮助管理人员,执行人员以及决策人员提高工作的效率的。下面介绍系统的模块化分,整个供应管理系统分八个子系统,如图所是:海化供应海化供应管理信息系统仓库管理采购员管理供应商管理票据管理比价模块招标模块采购计划模块出入库管理图2.1系统模块组成仓库管理:库存管理是指根据物资类别,形状,特点分类存放。保管员统计各种物资情况,并登记入帐,年末进行物资盘点。主要功能包括:登记退货物资,登记报废物资,登记淘汰物资,登记多余积压物资,登记物资台帐,统计库存物资(包括原料,材料,备品备件,包装物),物资清仓盘点(包括原料,材料,备品备件,包装物),库存统计分析。供应商管理;对供应商基本信息,资质情况,供货情况,售后服务等统一管理。主要功能包括:供应商基本信息登记,供应商产品信息登记,供应商综合评价,供应商交往纪录登记,供应商资质信息维护,收集管理资信信息,供应商绩效评估,供应商售后服务,供应商联系信息。供应商查询。票据管理:票据管理是指对入库单,领料单的财务签证,付款发票,供应商付款情况等进行管理。主要实现功能:提包用款计划(向财务部提交用款计划),贷款申请登记,付款结算登记,生成应付发票登记,发票撤换登记。出入库管理:出入库管理指管理员在确认采购物资质量合格,数量无误后,办理入库手续,物资凭领料单及销售发票出库,日清月结。主要功能包括:登记发货,登记入库,维护发货纪录,统计出入库物资,查询在途物资。合同管理:负责采购合同的整理维护归档及合同执行情况的查询。主要功能:登记订货合同,查询合同执行情况,合同归档。比价采购:是采购的一种方式零星物资进行多家询价比价采购。要求科长,总计划员,本职业务的计划员参与。招标采购:是采购的一种方式,大宗物资按《招标投标法》进行招标采购,遵循公开,公平,公正的原则。由采购科室,使用单位,职能部门,监督部门共同参与。采购计划管理:分年,季,月,追加四种。是使用单位根据使用和消耗提包采购计划给供应处。供应处根据库存情况编制采购计划,使计划达到准确无误,并落实到实处。主要功能:接受需求计划,查询库存物资,采购资金预算,平衡采购计划,声称采购计划,整理采购计划,审核采购计划,批准采购计划,分配采购计划。原料科,材料科,备件科采购采购计划分发表2.2子系统业务流程原料科,材料科,备件科采购采购计划分发表采购计划管理采购计划管理查询库存物资,进行库存分析查询库存物资,进行库存分析供应处长签字供应处长签字进行资金预算进行资金预算物资管理科汇总物资管理科汇总制定采购计划制定采购计划原料,材料,备件科长签字原料,材料,备件科长签字月份采购计划表月份采购计划表图2.2采购计划模块业务流程保管员保管员质检处时间延误基本合格不合格合格车间保管员统计出入库物资发货记录维护登记发货纪录保管员出货审核领料单逾期货物催交查询在途物资查询合同执行情况退货赔偿损失不合格处置单赔偿损失折扣办理入库入库单是否合格内在质量检查到货登记表:给采购员存物资到待检验库区到货物资外在质量检查出入库管理保管员保管员质检处时间延误基本合格不合格合格车间保管员统计出入库物资发货记录维护登记发货纪录保管员出货审核领料单逾期货物催交查询在途物资查询合同执行情况退货赔偿损失不合格处置单赔偿损失折扣办理入库入库单是否合格内在质量检查到货登记表:给采购员存物资到待检验库区到货物资外在质量检查出入库管理 图2.3出入库模块业务流程登记人员处罚情况登记人员检查情况登记人员考核情况登记人员培训情况登记人员基本信息供应人员管理供应商管理登记人员处罚情况登记人员检查情况登记人员考核情况登记人员培训情况登记人员基本信息供应人员管理供应商管理收集供应商基本信息收集供应商基本信息登记供应商产品信息登记供应商产品信息查询供应商交往纪录查询供应商交往纪录图2.5供应商人员管理业务流程供应商综合评价供应商综合评价维护供应商资质信息维护供应商资质信息维护供应商资信信息维护供应商资信信息供应商绩效评估供应商绩效评估登记供应商售后服务情况登记供应商售后服务情况图2.4供应商管理模块业务流程2.3系统数据流图按照上面的业务流程理出的流程顺序,将相应的数据处理过程绘制成一套完整的数据流程图。数据流成图可以帮助核对相应的数据和报表,模型等。如果有问题,则定会在制图和整理过程中暴露无疑。下面介绍系统的数据流程。供应管理系统供应管理系统销售管理质量计量生产系统供应商出口计划表货物检验报告单需求计划报货单报价表公司领导财务管理供应商供应处领导质量计量存货盘点招标比价效益汇总支付计划表付款申请表定货单收货登记表供应商信息表合同进度报表采购计划表采购计划表)图2.6系统数据流图(0层)用户用户2事务处理事务请求3仓库管理4合同管理5供商应管理理合同管理请求供应商管理请求仓库数据库合同数据库仓库信息合同信息供应商信息仓库管理请求3系统规定查询处理系统各项规定库系统规定系统规定查询条件系统规定查询结果供应商数据库初次分解0层DFD图得出1层DFD图:图2.7系统数据流图(1层)下面详细介绍仓库管理的细化数据流图仓库管理请求仓库管理请求3.1仓库管理事务处理2接收事务用户3.2货物资料录入\修改3.3货物资料查询仓库数据库事务请求录入资料请求查询资料请求货物资料货物资料货物资料查询结果图2.8仓库管理数据流图(2层)用户事务请求用户事务请求2.1事务处理出库物资3.2.2录入出库物资出库物资入库物资3.2.1录入入库物资入库物资出库物资明细表入库物资明细表出库物资修改库存量入库物资库存量库存量表修改合同执行情况入库物资入库物资合同执行监察表 图2.9仓库管理数据流图(3层)登陆界面细化后的数据流图错误信息用户权限1.3权限处理系统初始化信息用户数据库用户系统1.1接收登录事务用户资料1.2用户密码验证登录请求用户ID,密码错误信息用户权限1.3权限处理系统初始化信息用户数据库用户系统1.1接收登录事务用户资料1.2用户密码验证登录请求用户ID,密码图2.10登陆数据流图下面详细介绍合同管理的细化数据流图合同管理请求合同管理请求4.1合同管理事务处理2.2接收事务用户4.2合同资料录入\修改4.3合同信息查询合同资料数据库事务请求录入资料请求查询资料请求合同资料合同资料合同资料查询结果 图2.11合同管理数据流图(2层)用户事务请求2.3事务处理合同信息4.3.1查询合同信息合同信息合同信息4.2.1录入/修改合同信息合同信息合同基本信息表合同基本信息表合同执行合同执行监察表4.3.2查询逾期合同逾期合同信息逾期合同表4.3.3查询合同产品合同产品合同表(附表)产品信息合同产品4.3.4查询合同条件合同条件表合同条件用户事务请求2.3事务处理合同信息4.3.1查询合同信息合同信息合同信息4.2.1录入/修改合同信息合同信息合同基本信息表合同基本信息表合同执行合同执行监察表4.3.2查询逾期合同逾期合同信息逾期合同表4.3.3查询合同产品用户事务请求2.3事务处理合同信息4.3.1查询合同信息合同信息合同信息4.2.1录入/修改合同信息合同信息合同基本信息表合同基本信息表合同执行合同执行监察表4.3.2查询逾期合同逾期合同信息逾期合同表4.3.3查询合同产品合同产品合同表(附表)产品信息合同产品4.3.4查询合同条件合同条件表合同条件用户事务请求2.3事务处理合同信息4.3.1查询合同信息合同信息合同信息4.2.1录入/修改合同信息合同信息合同基本信息表合同基本信息表合同执行合同执行监察表4.3.2查询逾期合同逾期合同信息逾期合同表4.3.3查询合同产品合同产品合同表(附表)产品信息合同产品4.3.4查询合同条件合同条件表合同条件图2.12合同管理数据流图(3层)3系统设计3.1系统功能设计供应管理系统的功能结构如图所示供应管理系统供应管理系统供应处人员管理模块招标采购模块比价采购模块采购计划管理模块合同管理模块票据管理模块仓库管理模块供应处人员管理模块招标采购模块比价采购模块采购计划管理模块合同管理模块票据管理模块仓库管理模块图3.0功能结构图由于模块比较多,在毕业设计中主要分析设计了仓库管理子模块,合同管理子模块,供应人员管理模块和供应商管理模块。下面详细介绍各模块概况3.1.1仓库管理子系统(1)系统目标开发意义此次在《供应管理系统》中开发《仓库管理》子系统的目的是打破原有的僵硬的仓库管理方式,依靠计算机这个信息时代重要和出色的帮手使仓库管理者从繁琐的管理工作中解脱出来,提高工作效率.(2)子系统功能介绍整个《仓库管理》子系统按照内容上划分分为3块:入库管理,出库管理,库存管理。如图3.1所示:仓库管理仓库管理入库管理出库管理库存管理图3.1模块组成功能示意图仓库管理仓库管理入库管理出库管理库存管理录入与查询入库物资信息修改入库物资库存表录入与查询出库物资信息修改出库物资库存表查询仓库物资信息修改库存表 图3.2功能示意图子模块功能详细说明对每次准备入库的物资经质量检查部门确认合格后,经出纳人员同意,办理入库手续,录入物资的基本信息(物资编号,物资名称,物资数量,合同编号,入库时间,出纳员)。同时根据物资名称查询库存表修改库存量及修改合同执行情况检查表。如果合同执行完成既合同货物全部到达则提醒管理员。对于出库情况,同样要录入(物资编号,物资名称,物资数量,出库时间,出纳员),同时修改库存表,在修改库存表之前检查出库请求是否符合要求,如果出库请求高于库存量则拒绝请求。同时对库存量进行检查既货物出库后库存量是否低于安全库存(库存量减去出库请求),如果低于安全库存则生成采购计划,通知采购部门。系统可以随时对库存量低于安全库存的物资进行查询。以时间为条件可以查询当天的出入库情况,合同执行情况。可以以货物名为条件,检查该货物的库存量。这些操作只限于具有合法身份的出纳员。系统可以对入库操作,出库操作录入错误信息的物资进行修改。3.1.2合同管理子系统合同管理子系统主要是把合同的基本信息录入数据库,对数据库进行修改和查询。检测合同的执行情况。合同管理人员对订货合同的基本信息(合同编号,货物名称,签订时间,发货时间,结货时间,合同数额,合同金额)进行录入合同表。并且利用系统把合同的物资输入到合同监视表中。每一次入库操作都更改合同执行监视表的合同余量。当合同余量为零时,合同执行完成,在合同监视表中删除该合同,完成合同归档。在合同执行期间,合同管理人员可以通过对合同监视表查询合同执行情况。进行合同基本信息的查询同时显示合同的执行情况既收到货物的情况。查询合同信息可以根据合同的编号为主线。同时也可以以合同物资为条件查询某一特定物资的以往签约合同纪录。系统支持对录入的错误信息进行修改。3.1.3供应人员管理子系统功能示意图:供应人员管理供应人员管理基本信息培训情况考核情况图3.3功能示意图(2)子模块功能详细说明人员管理人员把供应处人员的基本信息(姓名,年龄,性别,住址,身份证号,电话,工作年限,奖惩情况)录入数据库。该公司会对个人其进行不定期的培训,该系统要把培训的基本情况(培训地点,时间,培训项目)。同时供应处员工的出勤情况,业务考核情况要纪录到数据库中。对以上录入的信息进行查询。以身份证号为主线,查询供应处人员的基本信息和曾经受培训的情况和奖惩情况。供应处人员的信息是不断变化的。供应处人员的身份证可能更换,家庭住址变化,电话发生变化,这些信息也要及时在数据库中及时更改。3.1.4供应商管理子系统功能示意图:供应商管理供应商管理产品信息供应商信息产品信息供应商信息图3.4功能示意图(2)子模块功能详细说明对供应商基本信息(名称,地址,电话,传真,信誉情况,主要产品)进行录入供应商表。同时对其产品的详细信息进行记录。对以上录入的信息进行查询。以供应商名称为主线,查询供应商的基本信息及交往记录和其主要产品的情况。供应商的信息是不断变化的。供应商的电话,传真可能变化,其生产的主要产品可能变化,公司地址可能变化,这些信息都要在数据库中更改。在完成系统功能设计后,下面介绍数据库的设计。3.2数据库设计3.2.1数据库基础知识一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。(1)数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典。(2)概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。(3)逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。(4)物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MSSQLServer,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。(5)加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:基本表的个数越少越好。主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。字段的个数越少越好。所有基本表的设计均应尽量符合第三范式。信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是:(1)数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。(2)数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。(4)数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。(5)数据字典设计:用数据字典描述数据库的设计,便于维护和修改。3.2.2数据库系统设计对于数据库的设计主要是沿着先概念结构设计再逻辑结构设计的顺序。在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。(1)设计局部ER模式实体和属性的定义仓库(仓库编号,仓库地址,仓库容量,安全库存)商品(商品编号,商品名称,计量单位,安全库存,数量,单价)人员(编号,姓名,性别,身份证号,联系电话,密码)身份(身份编号,身份描述,权限)供应商(名称,地址,产品,联系电话,信誉)合同(合同编号,签订时间,发货时间,结货时间,合同数额,合同金额)ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系。解释如下:一个人员对应一种身份,一种身份对应多个人员一种商品对应一个仓库,一个仓库对应多种商品一份合同对应一个供应商,一个供应商对应多份合同一个商品对应多个供应商,一个供应商对应多种产品一份合同对应一个签订人员,一个人员对应多个合同(2)设计全局ER模式结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。仓库仓库商品供应商合同管理人员签订身份属于属于属于供应签订mm m mn nn1 1 n111n nn nn n1 1 图2.5概念模型1)确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部ER模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。3)全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。(3)关系数据库的逻辑设计 由于概念设计的结果是ER图,DBMS一般采用关系型(本人所使用的MSSQLServer就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。1)导出初始关系模式仓库(仓库编号,仓库地址,仓库容量)商品(商品编号,商品名称,计量单位,安全库存,数量,单价,供应商,)人员(编号,姓名,性别,身份证号,联系电话,密码,身份标示,权限)身份(身份标示,身份描述,权限)供应商(名称,地址,产品,联系电话,信誉,产品)合同(合同编号,签订时间,发货时间,结货时间,商品名称,签约人,合同数额,合同金额)2)产生子模式子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。如:入库子模式(货物编号,货物名称,入库数量,入库时间,合同编号,供应商,出纳员)4系统实现4.1系统开发工具介绍4.1.1数据库工具(MSSQLServer2000)介绍SQLServer2000是微软公司最新推出的关系数据库管理系统,其同时也是一种网络数据库管理系统。主要任务是存储数据,管理数据和提供数据以满足客户端连接和存储数据的需要。其主要特点如下:①真正的客户机/服务器体系结构②图形化用户界面,使系统管理工具更加直观、简单。③丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。④使用了最先进的数据库架构,与WindowsNT/2000平台紧密集成,多线程体系结构设计,提高了系统对用户并发访问的响应速度。⑤具有完全Web功能,通过对高端硬件平台,网络和存储技术的支持,为Web站和企业应用最大限度地提供了可扩展性和高可靠性,能在Internet商业领域快速建立并应用。⑥增强了安全性,保护防火墙内外地数据,支持基于角色地安全并拥有安全审计工具,SQLServer2000数据库服务器地自动调整和自动管理技术在数据库领域中处于领先的地位。4.1.2VB.NET介绍MicrosoftVisualBasic.NET是MicrosoftVisualBasic的后续版本,它是基于.NET框架重新设计的,可以用它来轻松地创建用于MicrosoftWindows操作系统和Web的下一代应用程序。使用VisualBasic.NET,可视化开发Web应用程序、Web服务、Windows应用程序和服务器端组件将变得轻而易举。VisualBasic.NET是基于.NET框架直接创建的,因此可以使用所有的平台特性,并能够与其他.NET语言协同工作。 VB.NET一个引人注目的变化是它的窗体引擎。Microsoft放弃了原来的窗体引擎,现在它给我们提供的是WindowsForms窗体引擎。所有基于CLR的语言都使用WindowsForms引擎,与VB6的窗体引擎相比,WindowsForms有着许多突出的优点。例如,WindowsForms支持创建那些自动改变组件大小的窗体,允许把控件指定到窗体的特定位置。窗体成了类,类里面包含了构造窗体的全部代码,由于这些代码允许用户深入控制VB.NET构造窗体的幕后细节,有经验的用户能够利用这些代码实现各种高级功能。(1)传统开发工具的不足随着技术的不断进步,用户对系统功能的要求越来越高,应用开发人员使用传统的开发工具很难满足这些要求。这主要表现在:·开发方法陈旧,兼容性差,难以适应变化·功能弱,性能较低·大多数应用程序只能使用特定的数据库接口,移植相当困难。(2)VB.NET特点VB.NET提供了完善的面向对象编程支持,是一种真正的OO语言。VB.NET不仅允许覆盖(Override)方法或属性,而且还支持方法重载(Overload)。在VB.NET中,窗体以类模块形式出现。它意味着类本身包含了所有构造窗体所必需的代码。这个变化带来了许多强大的新功能,比如继承这些窗体的能力。Microsoft称这种技术为“可视化继承”(VisualInheritance)。而且提供了ADO.NET技术,使操作数据库更加方便,快速,简洁。ADO.NET的好处:互操作性ADO.NET应用程序可以利用XML的灵活性和广泛接受性。由于XML是用于在网络中传输数据集的格式,因此可以读取XML格式的任何组件都可以处理数据。作为一项工业标准,XML正是在谨记这种互操作性的情况下设计的。可维护性在已部署系统的生存期中,适度的更改是可能的,但由于十分困难,所以很少尝试进行实质的结构更改。这是很遗憾的,因为在事件的自然过程中,这种实质上的更改会变得很有必要。该问题并不是要设计三层应用程序。相反,它是要在应用程序部署以后增加层数。如果原始应用程序使用数据集以ADO.NET实现,则该转换很容易进行。当用两层替换单个层时,将安排这两层交换信息。由于这些层可以通过XML格式的数据集传输数据,所以通信相对较容易。可编程性VisualStudio中的ADO.NET数据组件以不同方式封装数据访问功能,帮助程序员加快编程速度并减少犯错几率。同样,由这些工具生成的ADO.NET数据类导致类型化数据集。最后,已声明类型的数据集的代码更安全,原因在于它提供对类型的编译时检查。性能对于不连接的应用程序,ADO.NET数据库提供的性能优于ADO不连接的记录集。当使用COM封送在层间传输不连接的记录集时,会因将记录集内的值转换为COM可识别的数据类型而导致显著的处理开销。在ADO.NET中,这种数据类型转换则没有必要。可伸缩性因为Web可以极大增加对数据的需求,所以可缩放性变得很关键。Internet应用程序具有无限的潜在用户供应。尽管应用程序可以很好地为十几个用户服务,但它可能不能向成百上千个(或几百万个)用户提供同样好的服务。使用数据库锁和数据库连接之类资源的应用程序不能很好地为大量用户服务,因为用户对这些有限资源的需求最终将超出其供应。由于所有ADO.NET应用程序都使用对数据的不连接访问,因此它不会在较长持续时间内保留数据库锁或活动数据库连接。(3).NET数据组件图4.1.NET数据组件(4).NET连接层 设计ADO.NET组件的目的是为了从数据操作中分解出数据访问。ADO.NET的两个核心组件会完成此任务:DataSet和.NETFramework数据提供程序,后者是一组包括Connection(数据连接)、Command(数据命令)、DataReader(数据读取器)和DataAdapter(数据适配器)对象在内的组件。其中.NET数据提供程序是连接层(connectedlayer),DataSet对象是非连接层(disconnectedlayer)。1)Connection类 若要在数据存储区和应用程序之间移动数据,必须首先拥有到该数据存储区的连接。可以使用Connection对象来连接到指定的数据源。要用目标数据源的数据填充DataReader或DataSet对象,就要求有一个Connection对象。同理,要从客户端.NET应用程序执行数据库的任何命令或存储过程,还要求有一个激活的Connection对象。和大多数其他.NET对象不同的使,Connection对象在离开作用域时并不自动销毁,这意味着必须在应用程序中显式地关闭任何打开的ADO.NETConnection对象。如果打开了多个使用同一连接字符串的Connection对象,它们都将自动添加到同一个连接池中。若要连接到MicrosoftSQLServer7.0版或更高版本,使用SQLServer.NETFramework数据提供程序的SqlConnection对象。若要使用用于SQLServer的OLEDB提供程序(SQLOLEDB)连接到OLEDB数据源或者连接到MicrosoftSQLServer6.x版或较早版本,使用OLEDB.NETFramework数据提供程序的OleDbConnection对象。若要连接到ODBC数据源,使用ODBC.NETFramework数据提供程序的OdbcConnection对象。若要连接到Oracle数据源,使用Oracle.NETFramework数据提供程序的OracleConnection对象。2)Command类 当需要对数据库进行查询时要用到命令对象(commandobject),可以使用Command构造函数来创建命令,该构造函数采用在数据源、Connection对象和Transaction对象中执行的SQL语句的可选参数。也可以使用Connection的CreateCommand方法来创建用于特定Connection对象的命令。可以使用CommandText属性来查询和修改Command对象的SQL语句。Command对象公开了几个可用于执行所需操作的Execute方法。当以数据流的形式返回结果时,使用ExecuteReader可返回DataReader对象。使用ExecuteScalar可返回单个值。使用ExecuteNonQuery可执行不返回行的命令。在ADO.NET中,两个重要的命令类是OleDbCommand(用于SQLServer)和SqlCommand(用于任意其他OLEDB数据源)。3)DataReader类 可以使用ADO.NETDataReader从数据库中检索只读、只进的数据流。查询结果在查询执行时返回,在并存储在客户端的网络缓冲区中,直到您使用DataReader的Read方法对它们发出请求。使用DataReader可以提高应用程序的性能,因为一旦数据可用,DataReader方法就立即检索该数据,而不是等待返回查询的全部结果;并且在默认情况下,该方法一次只在内存中存储一行,从而降低了系统开销。数据读取器应该用于需要在内存消耗上开销最小的情形,如果想返回几十万行数据,就不会使用DataReader对象,因为可能始终无法循环遍历所有行。同Connection和Command类一样,有两种重要的常规DataReader类:SqlDataReader用于MSSQLServer7或更高版本,而OleDbDataReader则用于其他数据源。4)DataAdapter类 数据适配器的主要用途是在DataSet对象和激活的Connection对象代表的数据源之间建立一条连接。DataAdapter类包括的属性允许用户指定将实际用来在DataSet和目标数据库之间交互的SQL语句。换句话说,DataAdapter既负责填充DataSet对象,又负责把对DataSet的修改发送回数据源。比如,DataAdapter类提供了SelectCommand属性,控制将被检索的数据:InsertCommand属性指明DataSet中的新数据如何添加到数据库;UpdateCommand属性控制DataSet中修改的行如何发送到数据库;DeleteCommand属性控制如何从数据库中删除在DataSet中删掉的行。在许多应用程序中,这意味着从数据库将数据读入数据集,然后从数据集将已更改数据写回数据库。然而,数据适配器可以在任意源和数据集之间移动数据。例如,可能会有在MicrosoftExchange服务器和数据集之间移动数据的适配器。数据适配器用Connection对象连接数据源,然后再用Command对象从数据源中检索数据并将数据送还给数据源。除了DataReader类以外,ADO.NET中的所有数据访问都要经过数据适配器。共有两种DataAdapter类:OleDbDataAdapter类与SqlDataAdapter类。(5)NET非连接层DataSet类 ADO.NETDataSet是ADO.NET的断开式结构的核心组件。DataSet的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。DataSet类处理Tables集合(包括数据类型为DataTable的对象)和Relations集合(包括数据类型为DataRelation的对象),DataTable类处理Rows集合(包含数据类型为DataRow的对象)和Columns集合(包含数据类型为DataColumn的对象)。关于DataSet类需要注意的是,DataSet类可与所有类型的数据源共同工作,不存在SqlDataSet或OleDbDataSet类。 DataSet就是小型表或记录集以及他们之间关系的集合。它是一个缩小的关系数据库,在该数据库中,数据保留在内存中。这个“虚拟”的本地关系数据库完全与数据的原始来源断开,但它还是非常有用的相关功能。DataSet包含数据的本地副本,不管是在客户端工作站、Web服务器还是在远程Internet客户端,它都可用于进行本地处理。所有的数据操作都可以在这个本地副本中完成,而不需要与原来的数据存储器一直保持连接。这是一个主要的优势所在。由于适用于基于XML的技术,因此一旦数据被放置在DataSet中,就与原始的元数据无关。DataSet的这种设计改正了在VB6中使用Recordset的许多缺点。特别是Recordset不能很好地处理分层的数据机构,而DataSet是为了使用分层数据而设计的。这种功能是对ADO的主要改进。ADO.NET中所使用的数据通常从像SQLServer或Oracle这样的传统关系数据存储器开始。然后,用ADO.NET中的数据提供者提取数据。数据提供者是接口技术,可用来连接数据库以及从数据库中放入和提取数据。只要数据提供者提取了数据并放置在DataSet中,就没有必要继续与数据库相连接。然后可以用不同的方式处理该数据。其中最普通的操作之一是在DataSet中指定关系。接着代码和所绑定的控件能改变DataSet中的数据,如添加新行、改变或删除原来的数据等。这些变化完成之后,然后数据提供者来解决这些变化。数据提供者查找DataSet中被变化的或被添加的数据,并把这些变化或附加的内容放置在原来的数据库存储器中。如果出现并发问题或是像数据库脱机诸如此类的问题,数据提供者会给出适当的错误提示。DataSet要发挥功能,它至少在自身的Tables集合中包含一个DataTable对象;要包含任意数据,DataTable的Rows集合必须有一些由Column集合描述的行布局。DataTable对象模型的所有其他元素都是可选的。在Tables、Columns、Constraints和Relations集合中描述DataSet的相关结构和功能。这些表的布局,包括如数据类型之类大额信息在Tables和Columns中,特定表的约束在Constraints中,表之间的关系在Relations中。1)DataTable类DataTable类在.NETFramework中位于System.Data.DataTable命名空间。该类代表内存的一个数据表,这些数据包含在DataSet对象中。通过从DataAdapter向DataSet对象返回结果集,可以自动创建DataTable对象。也可以通过把DataColumnst对象添加到DataTable的DataColumns集合,以编程方式创建DataTable对象。DataSet中的每个DataTable对象都可以绑定到.NETFramework的WinForm和WebForm类中的数据认知的用户界面对象。当修改DataTable对象中包含的数据时,会触发ColumnChanging、ColulmnChanged、RowChanging和RowChanged事件。当从DataTable对象中删除数据时,会触发RowDelete和RowDeleted事件。在DataTable中添加新行的方法是调用DataTable的NewRow方法并给它传递一个DataRow对象。在DataTable中最大可以存储16,777,216行数据。DataTable还是创建DataView对象的基础。2)DataColumn类DataColumn类位于.NETFramework的System.DataColumn命名空间中。该类代表DataTable对象中列的模式。DataColumn类所包含的几个属性用来定义DataColumn对象中所含的数据类型。例如,DataType属性控制DataColumn对象中能存储的数据类型,DataValue属性包含DataColumn的值,AllowDBNull属性指定DataColumn是否能包含NULL值,MaxLength属性设置Text数据类型的最大长度,Table属性指定DataColumn所属的DataTable对象。可以把DataColumn对象和UniqueConstraint对象关联起来,让DataColumn对象包含惟一值。另外,还可以让一个DataColumn对象和另一个DataColumn对象相关,其方法是创建一个DataRelation对象,并把它添加到DataSet的DataRelationCollection。3)DataRow类DataRow类位于.NETFramework的System.Data.DataRow命名空间,它代表DataTable对象中的一行数据。DataRow类和DataColumn类代表组成DataTable类的主要对象。DataRow对象用来在DataTable中插入、更新和删除行。在DataTable中添加行又两种方法:或者用NewRow方法创建一个新的DataRow对象,或者在DataSet的DataRowCollection中添加一个DataRow对象。更新DataRow对象只需修改它的DataValue属性即可。删除DataRow对象需要执行它的Delete方法或调用DataSet的DataRowCollection对象的Remove方法。4)Constraints类Contraints类在.NETFramework中位于System.Data.Contraint命名空间,它代表可应用于DataColumn对象的一套数据完整性规则。Constraint类没有基类构造函数。约束对象是使用ForeignKeyContraint构造函数或UniqueConstraint构造函数创建的。当使用DataAdapter填充DataSet时,Constraint不会被自动添加到DataTable中。如果想在操作的DataTable中使用Constraints,必须在代码中创建和托管Constraints。5)DataRelation类 位于.NETFramework的System.Data.DataRelation命名空间中的DataRelation类的作用是代表DataSet中两个DataTable对象之间的父子关系。例如,可以创建一个DataRelation对象,代表OrderHeader表中的OrderIDDataColumn与OrderDetail表中对应的OrderIDDataColumn的关系。DataRelation对象的基本功能是便于导航和从相关DataTable中检索数据。为了在两个DataTable对象之间创建关系,这两个DataTables都必须包含具有匹配特性的DataColumn对象。当第一次创建DataRelation对象时,.NETFramework将进行检查,以确保建立的是合法的关系,然后它把DataRelation对象添加到DataRelationCollection,这个集合跟踪DataSet中所有的数据关系。DataRelation类支持从父表到子表的层叠式变化,这是由ForeignKeyConstraint类控制的。(6)ADO.NET结构图4.2ADO.NET结构4.2系统实现4.2.1数据库实现使用MSSQLServer2000建立数据库是很方便的,这里就不再详述数据库建立的步骤,在此列举数据库表的结构。库存表:此表用来记录物资的库存量表名:storge主键:s_id字段字段描述数据类型宽度是否为空备注S_Name物资姓名Varchar12NoS_Id物资编号Varchar18NoS_size库存量float10NoS_minsize安全库存float10No入库表:用来记录入库物资的信息表名:in_storage主键:s_id字段字段描述数据类型宽度是否为空备注S_Name物资姓名Varchar12Nos_id物资编号Varchar18NoS_intime入库时间DatetimeNo使用日期掩码,输入格式为00/00/0000日/月/年S_insize入库量floatNoH_number合同编号Varchar10YesS_teller出纳员Varchar10NoS_fname供应商Varchar30No出库表:用来记录出库物资的信息表名:out_storage主键:s_id字段字段描述数据类型宽度是否为空备注S_Name物资姓名Varchar12NoS_id物资编号Varchar18NoS_outtime入库时间DatetimeNo使用日期掩码,输入格式为00/00/0000日/月/年S_outsize入库量floatNoS_teller出纳员Varchar10No合同表:用来记录合同的信息表名:compact主键:H_id字段字段描述数据类型宽度是否为空备注H_id合同编号Varchar18NoH_time签订时间DatetimeNo使用日期掩码,输入格式为00/00/0000日/月/年S_fname供应商Varchar40NoS_name商品名称Varchar20NoH_ftime发货时间DatetimeNo使用日期掩码,输入格式为00/00/0000日/月/年H_stime结货时间DatetimeNoH_size货物量float20No合同执行检查表:用来检查合同剩余物资的情况表名:compact_supervise主键:H_ id字段字段描述数据类型宽度是否为空备注H_id合同编号Varchar18NoH_size物资剩余Float16yes供应商表:用来记录供应商的基本情况表名:producter主键:F_name字段字段描述数据类型宽度是否为空备注f_name供应商名称Varchar20NoF_telephone电话Varchar18NoF_address地址Varchar40NoF_product主要产品Varchar10NoF_appraise评价Varchar10No使用下拉框掩码,用户在输入时只能选择(好,较好,中等,差)。供应人员表:用来管理供应出人员的基本信息。表名:teller主键:T_id字段字段描述数据类型宽度是否为空备注T_name供应人员名称Varchar20NoT_telephone电话Varchar18NoT_address地址Varchar40NoT_id身份权限Varchar10NoT_number身份证号Varchar10NoT_sex性别Varchar2No使用下拉框掩码,用户在输入时只能选择(男|女)。男对应1,女对应04.2.2程序界面设计与实现方法界面比较多,在此只介绍具有代表性的几个。(1)系统主界面:模块的主体框架采用的是多文档界面MDI(MultipleDocumentInterface),它的好处是能同时打开多个窗口,并且可以自由的在各个窗口之间进行切换。利用MDI我们可以以最小的改动对系统升级图4.3系统主界面主要是以菜单的形式激发事件。菜单项仓库管理有下拉菜单:图4.4菜单项其中只有登陆菜单项是可用的,只有对于登陆成功的用户,其他不可用的菜单项才可以变成可用的,登陆窗口如下:图4.5登陆窗口在登陆窗口的(登陆)按钮的click事件中,如果登陆成功有如下语句DimprmmenuAsMainMenuprmmenu=Me.ParentForm.Menuprmmenu.MenuItems(0).MenuItems(0).Enabled=Trueprmmenu.MenuItems(0).MenuItems(1).Enabled=Trueprmmenu.Menu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论