您当前的位置:首页 > 发表论文>论文发表

sql数据库论文3000字

2023-12-09 12:36 来源:学术参考网 作者:未知

sql数据库论文3000字

  ORACLE中SQL查询优化研究

  摘 要 数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的一个重要因素就是SQL查询语句的低效率。论文首先分析了导致SQL查询语句性能低下的四个常见原因以及SQL调优的一般步骤,然后分别针对如何降低I/O操作、在查询语句中如何避免对查询结果的高成本操作以及在多表连接时如何提高查询效率进行了分析。
  关键词 ORACLE;SQL;优化;连接

  1 引言
  随着网络应用不断发展,系统性能已越来越引起决策者的重视。影响系统性能的因素很多,低效的SQL语句就是其中一个不可忽视的重要原因。论文首先分析导致SQL性能低下的常见原因,然后分析SQL调优应遵循的一般步骤,最后从如何降低I/O、避免对查询结果的高成本操作和多表连接中如何提高SQL性能进行了研究。鉴于目前ORACLE在数据库市场上的主导地位,论文将只针对ORACLE进行讨论。
  2 影响SQL性能的原因
  影响SQL性能的因素很多,如初始化参数设置不合理、导入了不准确的系统及模式统计数据从而影响优化程序(CBO)的正确判断等,这些往往和DBA密切相关。纯粹从SQL语句出发,笔者认为影响SQL性能不外乎以下四个重要原因:
  (1)在大记录集上进行高成本操作,如使用了引起排序的谓词等。
  (2)过多的I/O操作(含物理I/O与逻辑I/O),最典型的就是未建立恰当的索引,导致对查询表进行全表扫描。
  (3)处理了太多的无用记录,如在多表连接时过滤条件位置不当导致中间结果集包含了太多的无用记录。
  (4)未充分利用数据库提供的功能,如查询的并行化处理等。
  第(4)个原因处理起来相对简单。论文将针对前三个原因论述如何提高SQL查询语句的性能。
  3 SQL优化的一般步骤
  SQL优化一般需经过发现问题、分析问题、提出解决措施、应用措施、测试性能几个步骤,如图1所示。“发现问题就是解决问题的一半”,因此在SQL调优过程中,定位问题SQL是非常重要的一步,一般可借助于ORACLE自带的性能优化工具如STATSPACK、TKPROF、AUTOTRACE等辅助用户进行,同时还应该重视动态性能视图如V$SQL、V$MYSTAT、V$SYSSTAT等的研究。

  图1 SQL优化的一般步骤
  4 SQL语句的优化
  4.1 优化排序操作
  排序的成本十分高昂,当在查询语句中使用了引起结果集排序的谓词时,SQL性能必然受到影响。
  4.1.1 排序过程分析
  当待排序数据集不是太大时,服务器在内存(排序区)完成排序操作,如果排序需要更多的内存空间,服务器将进行如下处理:
  (1) 将数据分成多个小的集合,对每一集合进行排序。
  (2) 服务器向磁盘申请临时空间,将排好序的中间结果写入临时段,再对另外的集合进行排序。
  (3) 在所有的集合均排好序后,服务器再将它们进行合并得到最终的结果,如果排序区尺寸太小,合并无法一次完成时,将分多次进行。
  从上述分析可知,排序是一种十分昂贵的操作,它消耗大量的CPU时间和内存,触发磁盘分页和交换操作,因此只要有可能,我们就应该在SQL语句中尽量避免排序操作。
  4.1.2 SQL中引起排序的操作
  SQL查询语句中引起排序的操作大致有:ORDER BY 和GROUP BY 从句;DISTINCT修饰符;UNION、INTERSECT、MINUS集合操作符;多表连接时的排序合并连接(SORT MERGE JOIN)等。
  4.1.3 如何避免排序
  1)建立恰当的索引
  对经常进行排序和连接操作的字段建立索引。在建立索引后,当服务器向这些字段发出排序请求时,将直接引用索引而不进行排序操作;当进行等值连接查询操作时,若建立连接的字段未建立索引,服务器进行的是排序合并连接(SORT MERGE JOIN),连接操作的过程如下:
  对进行连接的两个或多个表分别进行全扫描;
  对每一个表中的行集分别进行全排序;
  合并排序结果。
  如果建立连接的字段已建立索引,服务器进行嵌套循环连接(NESTED LOOP JOINS),该连接方式不需要任何排序,其过程如下:
  对驱动表进行全表扫描;
  对返回的每一行利用连接字段值实施索引惟一扫描;
  利用从索引扫描中返回的ROWID值在从表中定位记录;
  合并主、从表中的匹配记录。
  因此,建立索引可避免多数排序操作。
  2)用UNIION ALL替换UNION
  UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。大部分应用中是不会产生重复记录的,最常见的是过程表与历史表UNION 。因此,采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。
  4.2 优化I/O
  过多的I/O操作会占用CPU时间、消耗大量内存和占用过多的栓锁,因此有必要对SQL的I/O进行优化。优化I/O的最有效方式就是用索引扫描代替全表扫描。
  4.2.1 应用基于函数的索引
  基于函数的索引(FUNCTION BASED INDEX,简记为FBI)提供了索引计算列并在查询中使用这些索引的能力。FBI的实质是对查询所需中间结果进行预处理。如果一个FBI与查询语句中的内嵌函数完全匹配,CBO在生成查询计划时,将自动启用索引范围扫描(INDEX RANGE SCAN)替换全表扫描(FULL TABLE SCAN)。考察下面的代码段并用AUTOTRACE观察创建FBI前后执行计划的变化。
  select * from emp where upper(ename)=’SCOTT’
  创建FBI前,很明显是全表扫描。
  Execution Plan
  ……
  1 0 TABLE ACCESS (FULL) OF 'EMPLOYEES' (Cost=2 Card=1 Bytes=22)
  idle>CREATE INDEX EMP_UPPER_FIRST_NAME ON EMPLOYEES(UPPER(FIRST_NAME));
  索引已创建。
  再次运行相同查询,
  Execution Plan
  ……
  1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPLOYEES' (Cost=1 Card=1 Bytes=22)
  2 1 INDEX (RANGE SCAN) OF 'EMP_UPPER_FIRST_NAME' (NON-UNIQUE) (Cost=1 Card=1)
  这一简单的例子充分说明了FBI在SQL查询优化中的作用。FBI所用的函数可以是用户自己创建的函数,该函数越复杂,基于该函数创建FBI对SQL查询性能的优化作用越明显。
  4.2.2 应用物化视图和查询重写
  物化视图是一个预计算结果集,其中通常包含聚集与多表连接等复杂操作。数据库自动维护物化视图,且随用户的要求进行刷新。查询重写机制就是用数据库中的替代对象(如物化视图)将用户提交的查询重写为完全不同但功能等价的查询。查询重写对用户透明,用户完全按常规编写访问数据库的查询语句,优化程序(CBO)自动决定是否对用户提交的查询进行重写。查询重写是提高查询性能的一种非常有效的方法,尤其是在数据仓库环境中针对汇总、多表连接以及其它高成本的操作方面。
  下面以一个非常简单的例子来演示物化视图和查询重写在优化SQL查询性能方面的作用。
  select dept.deptno,dept.dname,count(*)
  from emp,dept
  where emp.deptno=dept.deptno
  group by dept.deptno,dept.dname
  查询计划及主要统计数据如下:
  执行计划:
  -----------------------------------------
  ……
  2 1 HASH JOIN (Cost=5 Card=14 Bytes=224)
  3 2 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=4 Bytes=52)
  4 2 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=42)
  主要统计数据:
  -----------------------------------------
  305 recursive calls
  46 consistent gets
  创建物化视图EMP_DEPT:
  create materialized view emp_dept build immediate
  refresh on demand
  enable query rewrite
  as
  select dept.deptno,dept.dname,count(*)
  from emp,dept
  where emp.deptno=dept.deptno
  group by dept.deptno,dept.dname
  /
  再次执行查询,执行计划及主要统计数据如下:
  执行计划:
  -------------------------------------
  ……
  1 0 TABLE ACCESS (FULL) OF 'EMP_DEPT' (Cost=2 Card=327 Bytes=11445)
  主要统计数据:
  ------------------------------------
  79 recursive calls
  28 consistent gets
  可见,在建立物化视图之前,首先执行两个表的全表扫描,然后进行HASH连接,再进行分组排序和选择操作;而建立物化视图后,CBO自动将上述复杂操作转换为对物化视图EMP_DEPT的全扫描,相关的统计数据也有了很大的改善,递归调用(RECURSIVE CALLS)由305降到79,逻辑I/O(CONSISTENT GETS)由46降为28。
  4.2.3 将频繁访问的小表读入CACHE
  逻辑I/O总是快于物理I/O。如果数据库中存在被应用程序频繁访问的小表,可将这些表强行读入KEEP池,从而避免物理I/O的发生。
  4.3 多表连接优化
  最能体现查询复杂性的就是多表连接,多表连接操作往往要耗费大量的CPU时间和内存,因此多表连接查询性能优化往往是SQL优化的重点与难点。
  4.3.1 消除外部连接
  通过消除外部连接,不仅使得到的查询更易于读取,而且性能也经常可以得到改善。一般的思路是,有以下形式的查询:
  SELECT …,OUTER_JOINED_TABLE.COLUMN
  FROM SOME_TABLE,OUTER_JOINED_TO_TABLE
  WHERE …=OUTER_JOINED_TO_TABLE(+)
  可转换为如下形式的查询:
  SELECT …,(SELECT COLUMN FROM OUTER_ JOINED_TO_TABLE WHERE …)FROM SOME_TABLE;
  4.3.2 谓词前推,优化中间结果
  多表连接的性能低下多数是因为连接操作与过滤操作的次序不合理,大多数用户在编写多表连接查询时,总是先进行连接操作再应用过滤条件,这导致服务器做了太多的无用功。针对这类问题,其优化思路就是尽可能将过滤谓词前推,使不符合条件的记录提前被筛选掉,只对符合条件的少数记录进行连接处理,这样可成倍的提高SQL查询效能。

  标准连接查询如下:
  Select a.prod_name,sum(b.sale_quant),
  sum(c.sale_quant),sum(d.sale_quant)
  From product a,tele_sale b,online_sale c,store_sale d
  Where a.prod_id=b.prod_id and a.prod_id=c.prod_id
  and a.prod_id=d.prod_id And a.order_date>sysdate-90
  Group by a.prod_id;
  启用内嵌视图,且将条件a.order_date>sysdate-90前移,优化后代码如下:
  Select a.prod_name,b.tele_sale_sum,c.online_sale_sum,d.store_sale_sum From product a,
  (select sum(sal_quant) tele_sale_sum from product,tele_sale
  Where product.order_date>sysdate-90 and product.prod_id =tele_sale.prod_id) b,
  (select sum(sal_quant) online_sale_sum
  from product,tele_sale
  Where product.order_date>sysdate-90 and product.prod_id =online_sale.prod_id) c,
  (select sum(sal_quant) store_sale_sum
  from product,store_sale
  Where product.order_date>sysdate-90 and product.prod_id =store_sale.prod_id) d,
  Where a.prod_id=b.prod_id and
  a.prod_id=c.prod_id and a.prod_id=d.prod_id;
  5 结束语
  SQL语言在数据库应用中占有非常重要的地位,其性能的优劣直接影响着整个信息系统的可用性。论文从影响SQL性能的最主要的三个方面入手,分析了如何优化SQL查询的I/O、避免高成本的排序操作和优化多表连接。需要强调的一点是,理解SQL语句所解决的问题比SQL调优本身更重要,因此SQL调优需要系统分析人员、开发人员和数据库管理员密切协作。
  参考文献
  [1]Thomas Kyte.Effective Oracle by Design:Design and Build High-performance Oracle Application[M],The McGral- Hill Companies,Inc,2003
  [2]Kevin Loney,George Koch,Oracle 9i:The Complete Reference[M],The McGral-Hill Companies,Inc,2002
  [3] Oracle9i SQL Reference release 2(9.2)[OL/M],2002.10. http://
  [4] Oracle9i Data Warehousing Guide release 2(9.2) [OL/M],2002.03. http://
  [5]Alexey Danchenkov,Donald Burleson,Oracle Tuning:The Definitive Reference[OL/M],Rampant Techpress,2006.
  [6] Oracle9i Database Concepts release 2(9.2) [OL/M],2002.08. http://
  [7] Oracle9i supplied plsql packages and types reference release 2(9.2) [OL/M],2002.12. http:// technology/

数据存储技术论文3000字

数据库存储技术的出现,对于传统的纸质存储技术来说,具有革命性的作用,下面是我为大家精心推荐的数据存储技术论文3000字,希望能够对您有所帮助。

数据库编程与数据库存储技术分析

【摘要】随着信息技术的发展,以及人类社会文明进步,在与计算机相关的技术发展中,关于数据方面的处理工作,如今也越来越受到重视,在不同的发展时期,根据不同的计算机类型以及在实际应用的不同,数据库的编程与数据库存相储技术方面的要求也有所差异,所以就要根据实际情况进行具体分析.本文就结合相关技术进行分析。

【关键词】数据库;编程;存储;技术;分析

引言

在计算机的发展过程中,根据数据进行程序编辑,以及在计算机内部储存程序的编辑都是非常重要的方面,虽然会根据所操作的计算机不同,而在具体操作过程中而出现有所区别,但是要针对相关的技术进行具体分析后就能够发现,在数据存储方面只要编辑好数据库对应的程序,要取得好的工作成绩不不难,所以研究好关于数据库编程和数据库存储相关的技术,就能够代替真实人的工作,取得良好的工作效果,促进计算机行业的发展.

随着计算机的普及应用,计算机应用软件得到了快速的发展,从某种意义上来说,计算机之所以能够在各个领域中得到应用,很大程度上就是因为相应的应用软件,根据各个行业的特点,软件公司都开发了针对性的应用软件,通过这些软件的使用,能够给实际的工作带来方便,提升工作的效率,例如在工业自动化中,现在的计算机技术已经具有一定的智能性,可以代替人来进行操作,这种方式出现错误的几率很低,而且计算机不需要休息,生产效率得到了大幅提高,在计算机软件中,尤其是一些大型的软件,数据库是软件的核心内容,因此在计算机软件编写过程中,数据库编程和存储技术,也是一个核心内容,受到我国特殊历史原因影响,我国的软件行业发展较慢,因此数据库编程和存储技术的核心都掌握在西方发达国家手中。

1、数据库存储技术简述

1.1数据库存储技术的概念

数据库的发展很大程度上依赖于计算机性能的提升,在计算机出现的早期,并没有数据库的概念,当时计算机的性能很低,只能进行一些简单的数字运算,体积也非常庞大,还没有数据存储的概念,随着晶体管和集成电路应用在计算机制造中,计算机的性能得到了大幅的提升,开始在各个领域中进行应用,当计算机被用于数据管理时,尤其是一些复杂的数据,传统的存储方式已经无法满足人们的需要,在这种背景下,DSMS诞生了,这种数据库管理系统在当时看来,是数据库管理技术的一次革命,随着计算机性能的提升,逐渐出现了SQL、Oracle等,在传统的数据库编程中,由于数据库编写的时期不同,使用的编写语言也有一定的差异,目前常使用的软件有VB、JAVA、VC、C++等,利用这些编程软件,都可以编写一个指定的数据库,由于每个软件自身都有一定的特点,因此不同领域的数据编程中,所选择的编程软件业有一定的差异。

1.2数据库存储技术的发展

数据库的概念最早可以追溯到20世纪50年代,但是当时数据库的管理,还处于传统人工的方式,并没有形成软件的形式,因此并不能算数据库存储技术的起源,在20世纪60年代中期,随着计算机存储设备的出现,使得计算机能够存储数据,在这种背景下,数据管理软件诞生了,但是受到当时技术条件的限制,只能以文件为单位,将数据存储在外部存储设备中,人们开发了带有界面的操作系统,以便对存储的数据进行管理,随着计算机的普及应用,计算机能够存储的数据越来越多,人们对数据库存储技术有了更高的要求,尤其是企业用户的增加,希望数据库存储技术能够具有很高的共享能力,数据存储技术在这一时期,得到了很大的发展,现在的数据库存储技术,很大程度上也是按照这一时期的标准,来进行相应的开发,随着数据库自身的发展,出现了很多新的数据库存储技术,如数据流、Web数据管理等。

1.3数据库存储技术的作用

数据库存储技术的出现,对于传统的纸质存储技术来说,具有革命性的作用,由于纸质存储数据的方式,很容易受到水、火等灾害,而造成数据的损失,人类文明从有文字开始,就记录了大量的历史信息,但是随着时间的推移,很多数据资料都损毁了,给人类文明造成了严重的损失,而数据库存储技术就能够很好的避免这个问题,在数据库的环境下,信息都会转化成电子的方式,存储在计算机的硬盘中,对于硬盘的保存,要比纸质的书籍等简单的多,需要的环境比较低,最新的一些服务器存储器,甚至具有防火的性能,而且数据库中的数据,可以利用计算机很简单的进行复制,目前很多企业数据库,为了最大程度上保证数据的安全性,都会建立一个映像数据库,定期的对数据库中的信息进行备份,如果工作的数据库出现了问题,就可以通过还原的方式,恢复原来的数据。

2、数据库编程与数据库存储技术的关系

2.1数据库编程决定数据库存储的类型

通过对计算机软件的特点进行分析可以知道,任何软件要想具有相关的功能,都需要在编程过程中来实现,对于数据库程序来说也是一样,在数据库编程的过程中,能够决定数据库存储的类型,根据应用领域的不同,数据库存储技术也有一定的差异,如在电力、交通控制等领域中,应用的大多是实时数据库,而网上的视频网站等,大多采用关系数据库,其次还有商业数据库、自由数据库、微型数据库等,每种数据库的出现,都是为了满足实际应用的需要,虽然在不同历史时期,一种数据库成为主流,但是对于数据库程序的编写者来说,这些数据库的编写;并没有太大的差异,虽然不同的程序编写人员,由于所受教育和习惯的不同,在实际编写的过程中,使用的程序编写软件不同,但无论是VB、VF还是C++等,都可以实现每种数据库类型的编写,从某种意义上来说,数据库类型的确定,通常是在软件需求分析阶段中进行设计,然后在数据编程阶段来实现,

2.2数据库存储技术是数据库编程的核心

对于数据库程序来说,最重要的功能就是存储数据,通常情况在,一个数据库程序会分成几个模块,其中核心模块就是数据库存储技术。

结语

在目前国内经济发展形势下,针对于计算机的软件行业的形式,也在大力推动下,成为一个焦点行业,随着行业的发展,相关促进简便工作的程序也得到了相应的研究和发明中,就算是一些不具备计算机专业知识的普通使用着,不管在使用还是研发程序上也是介可以的,只是针对于数据库编程和数据库存储技术方面进行分析,但是作为系统的核心区域,所以相关的技术也是非常重要的,所以要想提升工作效率,缓解工作压力,就要结合使用情况,在所能应用的范围内,选择最具有优势的相应软件处理技术,以此为研发中心,开发出所需要的软件类型,进行所有的数据整理工作,对于办公室工作极大范围内的促进,对于数据库编程于数据存储方面的技术是非常重要的。

参考文献

[1]董慧群,王福明.基于LabWindows/CVI的数据库编程[J].山西电子技术,2011(04):55-56.

[2]吴敏宁,高楠.Delphi数据库编程开发[J].电脑知识与技术,2009(11):2882-2883.

[3]郑刚,唐红梅.面向对象数据库中数据模型及存储结构的研究[J].计算机工程,2002(03):65-67.

点击下页还有更多>>>数据存储技术论文3000字

数据库系统原理论文

库存管理数据库系统原理与应用

【摘 要】库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
经过分析如此情况,我们使用微软公司的VisualBasic开发工具,利用其提供的各种面向对象的开发工具,尤其是ADO,是能方便而简洁操纵数据库的智能化对象,短期内就可以开发出用户满意的可行系统。
关键字: 库存管理 ADO 面相对象 库存ABC分析

第一章 概述
1.1 库存管理的必要性
大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。因此,平衡公司库存投资与其它资金需求至关重要。
1.2 库存分类
企业怎样管理库存,是库存管理的最大难点和挑战。因此,通过MRPII物料主计划模块和采购模块建立计划与控制系统以有效地实施库存管理和采购补偿成为题中应有之义。通过调查,我们得知任何库存均可分为如下三类:
A类物品:高值──价值占库存总值70-80%的相对少数物品。通常为物品的15-20%。
B类物品:中值──总值占库存总值的15-20%。物品数居中,通常占物品的30-40%。
C类物品:低值──库存总值几乎可以忽略不计,只占5-10%。是物品的大多数,通常占60-70%。
显然,A类物品是关键;如果我们把精力集中于A类物品,使其库存压缩10-50%,就是总库存的相当可观的一笔压缩。
关于ABC分类方法有几条基本法则:
a. 控制的程度:
对A类物品严加控制,包括做完备、准确的记录,高层监督和经常评审,从供应商按大合同订单频繁交货,对车间紧密跟踪以压缩提前期。
对B类物品做正常控制,包括良好的记录与常规的关注。
对C类物品尽可能使用简便的控制,诸如定期目视检查库存实物、简要记录或以简便标志法表明补充存货已经订货,采用大库存量与订货量以避免缺货,安排车间日程计划时给以低优先级。
b.优先级
在一切活动中给A类物品以高优先级以压缩其提前期与库存。
对B类物品予以正常处理,仅在关键时给以高优先级。
予C类物品以最低优先级。
c.订货过程
对A类物品提供及时、准确的采购信息和状态查询。计算机数据需要人工加以核对,进行阶段性盘点,以及频繁的评审以压缩库存。
对B类物品,按一定周期或当发生重大变化时评审一次库存数据和订货点,MRPII操作按例行公事处理。
对C类物品可以盘点处理或订货点计算。订货往往不用MRPII作计划。可以凭业务人员的经验加以控制。
由上可以看出库存管理的重要性。因此,库存管理是企业管理的重要组成部分。市场需要库存商品提供给用户,企业的经营需要库存保证各种药品的供应以进行药品的销售,库存对生产效率的提高有着极其重要的影响。因此,库存管理系统是计算机管理系统的中心。因为,所有企业的经营活动都离不开物流的活动。
1.3 库存管理的目标
库存管理的主要目标就是通过对仓库所有入出库活动的管理和控制及对库存数据有效的统计和分析,以保证企业生产中畅通的物流,使决策人员及早发现问题,采取相应措施,调整库存结构,缩短储备周期,加速资金周转,最大限度地降低库存占用,同时,通过周期性的仓库盘点,及时补救管理中的漏洞,使库存管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益,库存管理系统是协调企业生产经营的基础,其数据的准确性、方便的查询、有效的分析是整个计算机管理系统顺利运行的关键。
第二章 开发背景
企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。
根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需求来发送物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。
一个完整的企业物资供应管理系统应包括采购计划管理,合同收托管理、仓库库存管理、定额管理、统计管理、财务管理等模块。其中仓库的库存管理是整个物资供应管理系统的核心。因此有必要开发一套独立的库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我开发了下面的仓库库存管理系统。
第三章 系统分析
本系统采用了结构化生命周期法,结构化生命周期法是最常用的管理信息系统开发方法,分为四个步骤,即系统调研分析、数据库设计实现、界面设计实现和系统功能设计实现。其中系统调研分析阶段是最基础、也是最容易被开发人员忽视的环节。
3.1进行资料收集
在整个系统分析阶段,我在图书馆认真查看了很多关于仓库库存管理方面的书籍,收集到了相应的入库单、领料单、台账、物料卡、报表等资料。
入库单是入库单位在把相应的零部件送人仓库时必须填写的单据;领料单是领料人员从仓库中领取零部件时必须填写的单据(即出库);零部件台账(相当于本系统中的操作日志)实际是一个流水账,用于记录每天发生的入库、出库信息;物料卡(在本系统中用现有库存信息来表示)的作用是记录某一种零部件的数量变化,以便库管员盘查;报表是仓库向有关领导和部门定期提交的零部件库存汇总信息。收集到的入库单、领料单、零部件库存台账、零部件物料卡等单据和报表的实物样式在此略去,有兴趣者请参考有关类似企业的样本即可。
3.2绘制业务流程图
3.3用户需求分析
用户需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和系统的功能模块。用户需求调研结束之后,应该立即进行用户需求分析。
3.3.1应用程序结构确定
从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单用户应用程序结构、多层服务器应用程序结构、浏览器/服务器应用程序结构、客户机/服务器应用程序结构等5种类型。
本库存管理系统就采用了当前最流行的客户机/服务器应用程序结构(即C/S结构),此时,客户机提出请求,服务器对客户机的请求作出回应。通过对服务功能的分布实现了分工服务。数据存储层放在服务器上,业务处理层和界面表示层放在客户机上,因此又被称为“灵敏的客户机”结构。许多操作可以在本地的客户机上执行,只是当需要数据时,才向服务器发出请求。并使应用程序的处理更接近用户,使整个系统具有较好的性能,可以并行地处理应用程序的请求、减少了数据传输量、降低了服务器的负荷。由于条件所限,将此系统所有程序都置于一台计算机上,以便调试运行。
3.3.2确定系统开发环境
由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境:
★网络操作系统:Windows2000;★数据库服务器:MicrosoftAccessr2000;
★服务器平台:Windows2000;★客户机平台:Windows95/98/NT/2000;
★前端开发工具:visualBasic6.0(企业版);★数据访问对象:ADO(本系统使用ADO控件,简化编程)。
3.3.3确定系统的功能模块
通过分析确定库存系统将包含6个主要功能模块,即系统模块、入库业务管理模块、出库业务管理模块、退料业务管理模块(还库业务管理模块)、盘点业务管理模块(报表输出)、需求管理模块。对于每一个功能模块,都包含了数据录入、编辑、查询、统计、打印、应急、帮助等功能。
第四章 系统设计
4. 1总体设计
4.1.1系统目标设计
系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。
4.1.2开发设计思想
库存管理的物资主要是企业生产中所需要的各种设备、原材料及零部件。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据所需要的物资设备总额和部门生产活动需要提出物资需求申请。计划员根据整个企业的需求开出物资设备出库单,仓库管理员根据出库单核对发放设备、原材料及零部件。有些设备使用完毕需要及时归还入库,填写还库单。根据需要按照月、季、年进行统计分析,产生相应报表。
仓库库存管理的特点是信息处理量比较大。所管理的物资设备、原材料及零部件种类繁多,而且由于入库单、出库单、需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同,因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门规格不统等问题。
在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要,我们采取了下面的一些原则:
 统一各种原始单据的格式,统一帐目和报表的格式。
 删除不必要的管理冗余,实现管理规范化、科学化。
 程序代码标准化,软件统一化,确保软件的可维护性和实用性。
 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。
 建立操作日志,系统自动记录所进行的各种操作。
4.1.3系统功能分析
本系统需要完成的功能主要有以下几点。
 库存管理的各种信息的输入,包括入库、出库、还库、需求信息的输入等。
 库存管理的各种信息的查询、修改和维护。
 设备采购报表的生成。
 在材料库存中加入所允许的最大库存合最小库存字段,对所有库存物资实现监控和报警。
 企业各个部门的物资需求管理。
 操作日志的管理
 库存管理系统的使用帮助。
4.2详细设计
4.2.1 系统功能模块设计
系统模块
a. 包括报表的打印及设置,操作日志的管理。
b. 管理员可以通过管理界面添加或删除用户,添加新管理员或删除原有管理员,验证用户的合法性,阻止非法用户登录。
c. 管理员或其他用户可以修改自己的密码。
(2) 入库模块
包括填写入库单,更新,删除入库记录,查看现有库存信息,入库记录的查询及打印
(3) 出库模块
包括填写出库单,更新,删除出库记录,查看现有库存信息,出库记录的查询及打印
(4) 还库模块
包括填写还库单,更新,删除还库记录,还库记录的查询及打印
(5) 需求模块
包括填写需求计划表,更新,删除采购计划信息,查看现有采购信息,采购信息的查询及打印,以及预测短期内的需求计划。
4.2.2数据库设计
数据库需求分析
通过对企业仓库管理内容和数据流程分析,设计的数据项合数据结构如下:
 设备代码信息。包括的数据项有设备号、设备名称。
 现有库存信息。包括的数据项有现有设备、现有数目、最大库存、最小库存等。
 设备使用信息。包括的数据项有使用的设备、使用部门。数目。使用时间、出库时状态等。
 设备采购信息。包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。
 设备归还信息。包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。
 设备需求信息。包括的数据项有需求的部门、需求设备、需求数目、需求时间等。
有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计。
数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有库存实体、出库实体、入库实体、采购实体、还库实体、需求实体。 数据库逻辑结构设计
在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。
4.3 代码设计
任何库存均可分为如下三类:
A类物品:高值──价值占库存总值70-80%的相对少数物品。通常为物品的15-20%。
B类物品:中值──总值占库存总值的15-20%。物品数居中,通常占物品的30-40%。
C类物品:低值──库存总值几乎可以忽略不计,只占5-10%。是物品的大多数,通常占60-70%。
4.4 输入输出设计
本系统界面标准Windows形式,键盘输入(也可以用条形码读取),人机交互,容易使用。输入输出的设计考虑美观实用和通俗易懂,图文并茂。
4.5系统安全性设计
系统数据库中包含多个二维表,所以在系统与数据库的连接上,并没有把数据库和系统的连接直接写入代码,而是通过对服务器端进行系统设置,使数据库名及路径不可见,并通过ACCESS的数据库安全设置,保证了数据库的安全性。系统根据用户身份不同赋予不同权限,用户用密码登陆,同样也保证了系统数据的安全性。
第五章 系统实施
5.1、开发工具简介
本系统的前端开发工具,我选择了Visual Basic6.0,后台数据库采用Access2000。
5.1.1 VB简介
Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。
5.1.2 VB功能特点
 具有面向对象的可视化设计工具
在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一 个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。
 事件驱动的编程机制
事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。
 提供了易学易用的应用程序集成开发环境
在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。
 结构化的程序设计语言
VB具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点:
 强大的数值和字符串处理功能
 丰富的图形指令,可方便地绘制各种图形
 提供静态和动态数组,有利于简化内存的管理
 过程可递归调用,使程序更为简练
 支持随机文件和顺序文件的访问
 提供了一个可供应用程序调用的包含多种类型的图标库
 具有完善的运行出错处理
 支持多种数据库系统的访问
利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。
 支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术
 完备的HELP联机帮助功能
与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。
VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执 行是由外来事件决定的。因此是“事件”驱动的。
编写VB程序较为简单,首先将各个对象放在空白窗体上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。
在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立像是从一个目录中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。这种开发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming)
5.1.3 VB中的基本概念
   对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。
  属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。
  方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。
  事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。
  控件:控件就是Visual Basic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。
5.1.4 Access2000数据库简介
作为Microsoft的office套件产品之一,access已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型机及大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。
Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。

Access的总体结构
Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。
表 用户定义的存储资料的对象。每一个表都包含有关某个主体的信息。表包括存储不同种类资料的字段(列),而记录(行)则收集特定主体实例的所有信息。
查询 为来自一个或多个表的资料提供定制视图的对象。在Access中,可以利用图形化的实例查询机制(QBE)或通过SQL语句来建立查询。你可以在查询中选择、更新、插入或删除资料,也可以用查询来建立新表。
窗体 窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过运行宏(macro)或Visual Basic for Applicatinns(VBA)过程,来响应大量的事件。Access 2000为我们提供了强大的(同时也是相当方便的向导)来建立标准的Windows窗体。
报表 为格式化、计算、打印选定资料而设计的对象。它是衡量一个优秀的数据库的重要标准(有时甚至是唯一的标准)。
宏 为了响应已定义的事件,需要让Access去执行一个或多个操作,而宏就是对这些操作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大量的代码。
模块 包括用VBA编码的定制过程的一个对象。模块提供了独立的动作流以捕获错误,而宏做不到。模块能直接响应窗体或报表事件,也可以从应用程序的任何地方被调用。
5.2 系统实现
5.2.1.系统管理模块实现
5..2.3入库模块的实现
5..2.4 出库模块实现
5.2.5设备采购模块实现,程序略
5.2.7设备代码模块实现
5.2.9 操作日志模块实现
第六章 系统使用说明
参考文献:

1. 数据库系统原理教程 王珊 陈红 清华大学出版社
2. 管理信息系统 王虎 张俊 武汉理工大学出版社
3. Visual Basic 数据库开发 E.Winemiller,J.Roff B.Heyman,R.Groom 著 清华大学出版社
4. PowerBuilder 8.0数据库系统开发实例导航 何旭洪 余建英 人民邮电出版社
5. VB6从入门道精通 『美』Gary cornell 著 北京希望电子出版社
6. managing Information Systems David L.Anderson著 清华大学出版社
7. Management Information Systems Raymond Mcleod,Jc George Schell 著 北京大学出版社

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页