随着互联网的迅猛发展,数据库系统在网络环境下的面临着一系列威胁如病毒感染、黑客攻击等。下文是我为大家搜集整理的关于网络数据库安全论文范文的内容,欢迎大家阅读参考!
网络数据库安全论文范文篇1
浅论计算机网络数据库安全
【摘 要】文章阐述了网络数据库的安全因素,并且对网络数据库的安全防范措施进行了探讨。
【关键词】计算机数据库;网络环境;分析;安全
经过目前网络环境下,网络信息安全是一个亟待解决的重要问题,而计算机数据库的安全问题,又是其核心和关键问题,它直接关系到网络信息管理系统的整体的安全性。所以,为了保证网络信息系统高效、稳定、安全的运行,科学、合理的防范措施是网络数据库技术研究的重点内容。
一、网络数据库的模型构建
网络数据库的基础是后台数据库,其访问控制功能是由前台程序所提供。查询、存储等操作的信息集合是由浏览器完成的,数据库在网络环境下,其特点是实现数据信息的共享,同时能够实现访问控制和最小冗余度,保持数据的一致性和完整性,图1是网络数据库的构建模型图如下
该模型是在网络技术结合数据库技术的基础上构建的,具体是由三层结构组成,包括数据库服务器、应用服务器和WEB服务器、浏览器等。整个系统和用户连接的接口,是通用的浏览器软件。作为第一层的客户端,浏览器的功能是为用户提供信息的输入,将代码转化为网页,提供交互功能,同时处理所提出的各种请求。而第二层的WEB服务器是作为后台,通过对相应的进程进行启动,来响应各种请求,同时生成代码处理各种结果,若数据的存取也在客户端请求的范围内,则数据库服务器必须配合WEB服务器,才能对这一请求共同进行完成。第三层数据库服务器对数据库能进行有效的管理,对不同的SQL服务器发出的请求起到协调的功能。
二、分析网络数据库安全性
1、分析数据安全性
网络数据库是信息管理系统的核心部分,其安全性能会对数据库中数据的安全起到直接的影响作用,由于很多重要的数据保存在数据库服务器上,例如一些账务数据、金融数据、还有一些工程数据、技术数据、涉及到规划和战略发展的决策性数据等等,属于机密信息,严禁非法访问,对外必须严格保密的数据等。而针对企业和公司,内部资源的筹划、对外交易的进行、日常业务的运作等等,必须依赖网络数据库进行,所以数据的安全性至关重要。
2、分析系统的安全性
网络数据库是否安全,直接决定了服务器主机和局域网的安全性能,数据库系统配置的“可从端口寻址的”,表示只要具备数据的使用权限及适合的查询工具,都可直接连接数据库及服务器端口,而针对操作系统的安全检测,可巧妙避开。而多数数据库还具有公开的密码和默认号,而这种默认账号的权限非常高,既可访问数据库的各级资源,同时还可按照指令对操作系统进行操作,甚至还能开启后门,对监听程序进行存放,进而获得相关口令,对整个局域网进行控制,产生较严重的危害性。
3、分析影响数据库的安全因素
数据库服务器是网络信息系统的核心部分,里面有大量敏感的和重要的信息存在,所以数据库的安全性对保存的数据的安全性有着直接的影响。网络数据库不仅有着较大的处理量,较集中的数据信息,同时数据有着非常频繁的更新,用户访问量也非常巨大。所以,对网络数据安全带来威胁的影响因素有:
(1)用户没有执行正确的访问操作,造成数据库发生错误;
(2)人为对数据库进行破坏,造成数据库不能恢复正常;
(3)非法访问机密信息,而表面又不留任何痕迹;
(4)通过网络,用户对数据库进行访问时,会受到各种搭线窃听技术的攻击;
(5)用户采取非法手段,对信息资源进行窃取;
(6)在未被授权的情况下,对数据库进行修改,造成数据失真现象严重;
面对以上种种威胁,只进行网络保护还根本不够,由于和其他系统在结构上有着本质的区别,数据库中所含有的各种数据敏感级别和重要程度不同,同时还具有共享功能,为拥有各种特权的用户提供服务,所以它对安全性的要求更广,也更为严格,不仅仅需要对联机网络、外部设备等实行物理保护,为防止敏感数据被盗用,同时对非法访问进行预防,还必须采取其他有效措施,以实现数据的一致性和完整性。
三、对网络数据库实行安全防范的措施
目前所采取的各种防范策略中,往往还不全面和具体,无法真正实现数据库的安全保障。所以在网络环境下,针对数据库的安全问题,应从日常的维护和开发,系统的设计等整体方面进行考虑和设计,建立各种安全机制,形成整体的安全策略。
1、研发信息管理人员应转变设计观念
首先研发信息管理系统的人员,必须转变观念,改变以往的只对信息管理系统功能进行重视的错误看法,综合考虑系统的安全性,彻底评估所要开发的系统和软件,从后台数据库系统及前台开发工具,以及软件和硬件的实施环境等方面,查找信息系统中潜在的安全隐患,避免因为硬件环境及开发工具的不合适,造成数据库的泄密,进而使整个系统出现不稳定现象。
2、系统管理和维护人员应综合考虑数据库安全性
系统管理和维护人员,必须对数据库的安全性进行全面的考虑,具体涵盖以下两点内容:
1)外围层的安全
主要包括网络安全和计算机系统安全,而来自病毒的侵犯是最主要的威胁,所以为了对整个系统的正常运行做出保证,必须规避外层中病毒的扩散和隐藏及入侵,采用综合治理方法,将防、杀、管结合在一起,对网络数据库系统的虚拟专用网进行构筑,采用技术,使网络路由的传输安全性和接入安全性得到保障,利用防火墙技术,实现网段间隔离及网间隔离,既避免系统遭受非法入侵,同时也使网络边界安全得到保障。
同时,网路数据库外围安全重点是在WEB服务器及操作系统上,既要进行物理保护,同时还应进行应用服务器的保护,通过加密等方式,预防在传输过程中,数据被篡改或监听。因为该层对数据库自身的加密并为涉及,所以不能直接进行文件的加密,也无法使用密钥管理。同时由于主要是以WEB浏览器服务输出进行该层的运行程序,所以在ASP等具体应用软件上,更要实现其安全性能。
2)核心层安全
在整个网路数据库系统中,应用软件和数据库是重要的核心组成部分,若滥用、非法复制、窃取、篡改、丢失软件和数据,将会对系统造成毁灭性的打击,严重的会危害到社会安全。所以,我们必须进行控制用户访问权限,从数据库的加密、恢复和备份、数据分级控制等几个方面,来进行安全防范,使数据库管理系统的完整性和独立性得到保障。数据分级是一种简单易行的操作方法,可对数据库实行信息流控制。采用加密控制,通过加密数据库文件,提供几种不同速度和安全强度的加解密算法,为用户提供合理的设置。
四、结语
伴随着计算机技术的迅猛发展和不断更新换代,各种建立在Internet及计算机上的信息管理系统已经成为重要的手段,支撑和完成各种事物的运作。在网络环境下,开发和使用信息管理系统的过程中,必须重点考虑安全问题,这样才能为整个数据库服务器的数据安全提供保障,以实现一种预期的效益,更好的为广大用户服务。
参考文献:
[1]徐莉.春梅.网络数据库的安全漏洞及解决方法[J].福建电脑,2007(12).
[2]钱菁.网络数据库安全机制研究[J].计算机应用研究,2010(12).
网络数据库安全论文范文篇2
浅谈网络数据库安全策略
摘 要: 主要对现今网络环境中数据库所面临的安全威胁进行详尽论述,并由此全面地分析提高网络数据库安全性的解决对策。
关键词: 网络;数据库;安全对策
随着网络在21世纪社会当中的普及发展,越来越多的企业逐渐地 参与进来,并且将企业的核心逐渐的转向互联网,在地理区域内分散的部门和公司以及厂商对于数据库的应用需求明显呈现出过旺的趋势,在数据库的管理系统当中逐渐的从单机有力的扩展到了整个网络环境,针对数据的收集和储存以及处理与后期的传播方式都从集中性迈向了全面分布式模式。企业在使用数据库管理系统的时候,尤为重视的是数据库信息的安全性。
1 网络数据库安全机制
网络数据库的基础是计算机的后台数据库,在加上前台程序所以提供的访问控制,对于数据的储存和查询以及信息之间的集合操作都可以通过有效的浏览器进行逐步完成。当前信息处理网络环境当中,有效的将大量数据信息进行多用户的共享是数据库存在的最大特点,然而与此同时对于数据的完整性以及一致性都有着有效的保障,有力的实现了最小程度的访问控制。
网络数据库所采用的两个典型的模式是B/S模式和C/S模式。C/S所采用的模式主要分为三层结构:① 首先是客户机;② 应用服务器;③ 数据库服务器,主要表现形式的是由客户机将数据传输到应用服务器,然后再次传输到数据库的服务器当中。B/S所采用的模式其主要也是分为三层结构:① 首先是浏览器;② Web服务器;③ 数据库服务器,主要表现形式如上所述。由此我们可以看出,这两种网络数据库模式在结构上存在很大程度的共同点,它们全部都涉及到了网络和系统软件以及应用软件。
2 各层安全机制详述
2.1 网络系统安全机制
如果数据库受到了外部恶意的信息的攻击侵入,首先是从网络系统开始进行攻击入侵,由此我们可以判断数据库安全的第一道保护屏障就是网络系统的正常安全。我们仅站在技术角度而言,可以将其大致的分成其防入侵检测以及协作式入侵检测技术等。下面我们分别阐述:
首先,计算机系统当中都安装有防火墙,防火墙的广泛运用俨然成为了现今一种最基本的防范措施。防火墙所起到的主要作用是对可信任的网络以及不可信任的网络之间的访问渠道进行有效的监控,针对内部网络和外部网络建立一道有效的防护措施屏障,将外部网络当中的非法访问进行有效的拦截并且将内部信息进行有效的阻止防止信息外流。防火墙对于外部的入侵具有强有力的防范控制,但是对于网络内部产生的非法操作却无法进行阻拦和加以有效控制。
其次,关于入侵检测,是近几年逐渐发展壮大的一种有力的防范技术,它主要采用了统计技术和规则技术以及网络通信技术与人工智能等技术和方法进行有效的综合在一起的防范技术,入侵检测所起到的主要作用是对网络和计算机系统进行有效的监控,能够及时有效的反映出是否有被入侵或者滥用的情况。
最后,针对协作式入侵检测技术,对于以往独立的入侵检测系统的不足点和诸多方面的缺陷,协作式入侵检测技术都有着极好的弥补,其系统当中IDS是基于一种统一的规范,入侵检测组件之间的信息都有效的自动进行交换。而且通过信息的自动交换可以对入侵信息进行有效的检查,并且还能够有效的在不同的网络环境当中进行运用。
2.2 服务器操作系统安全机制
目前,市场上计算机有很大一部分都是Windows NT以及Unix操作系统,其所具有的安全级别一般的处于C1、C2级。主要的安全技术可以归纳为以下三点:
① 操作系统安全策略。主要是在本地计算机的安全设置上进行配置,主要保障的安全策略包括密码策略和账户锁定策略以及审核策略和IP安全策略等一系列的安全选项,其具体运用可以体现在用户的账户以及口令和访问权限等诸多方面。
② 安全管理策略。主要是网络管理员对系统安全管理所采取的方法和策略。因为,操作系统和网络环境各不相同,所以需要采取的安全管理策略也都存在着各不相同的方法,但是主要核心依旧是有力的保障服务器的安全以及对各类用户的权限进行分配。
③ 数据安全策略。这点主要具有以下几点体现:数据的加密技术和对数据进行备份以及数据储存当中的安全性等。由此可以采用的技术有很多,其中主要有:认证、IPSec ,SSL ,TLS,等技术。
2.3 数据库管理系统安全机制
数据库系统在操作系统当中都是以文件的形式进行有效的管理。所以入侵数据库的人员可以对操作系统当中的漏洞及其数据库当中的文件进行直接盗取,还可以利用OS工具进行违法操作和对数据库文件内容进行篡改。所存在的这种隐患数据库用户一般很难以察觉,针对这种漏洞进行分析被认为是BZ级别的安全技术措施。数据库的层次安全技术,主要针对当前两个层次已经被破坏的情况下进行有效的解决,保障数据库安全性。那么对于数据库的管理系统就必须要求有一套较为强有力的安全机制。
2.4 客户端应用程序安全机制
网络数据库安全性的重要方面是客户端应用程序。具有强有力和实现比较快捷方便是其主要的特点,而且还能够根据需求的变化很容易做出相对应的更改。客户端的应用程序不仅可以有效的控制用户的合法登陆以及身份的验证,而且还能够对数据进行直接的设置。想要应用系统具有更好的安全性,首先就必须在应用程序上进行行之有效的控制。另外,针对客户应用程序的编写也具有着较大的灵活性,与此同时还有很多的技巧性,可以有效全面的实现管理的灵活和安全。
3 使用DBMS安全机制防范网络攻击
有很多大型的DBMS对于数据库的安全防范技术的提供相对来讲都是非常完善的,而且针对提高数据库的安全性也有着明显的积极作用。
3.1 系统的认证和授权
认证是验证系统中请求服务的人或应用程序身份的过程;授权是将一个通过身份认证的身份映射已经授予数据库用户的许可的过程,该过程限制用户在数据库内部允许发生的行为。对SQL Server数据库服务器进行权限设置时,应该为DPeb程序单独设立一个受限的登录,指定其只能访问特定的数据库,并为该特定数据库添加一个用户,使之与该受限的登录相连,并严格设定该用户的数据库权限。
3.2 数据的备份与恢复
通过数据备份可以在系统发生故障的时候,管理员可以在最短的时间内将数据进行恢复,保持原先所处理的状态,对于数据的一个完整性和一致性有着强有力的保障。通常对于数据库的备份一般都是采取以下几种形式备份形式:其一静态备份;其二动态备份;其三逻辑备份等。然而对于数据库的恢复,可以采取磁盘镜像和数据库备份文件以及数据库在线日志等诸多方式进行有效的恢复。
3.3 全面有效的加强审查
通过有效的审查,用户可以将数据库当中所进行的所有操作都能够得以有效的自动记录,然后将所记录的信息全部保存在审查的日志当中,对于审查进行全面加强利用可以有效的跟踪信息,将数据库现有状况的一系列事件都进行充分的重现。因此,就可以有效的找出非法存取数据的人员以及存取信息的时间和内容等线索,这样就方便有效的追查有关责任,与此同时关于系统安全方面的弱点和漏洞审查也可以有效的进行发现。
4 总结
现代社会正处于一个不断发展的阶段,网络信息技术也有着空前的发展。然而互联网技术的不断高速发展,其网络数据库的安全性更是当今不断发展的主要问题,随着现代网络入侵系统手段的不断提高,其所采用的安全技术也在不断的进一步提升。只有对所出现的问题进行不断的分析和研究,总结经验进而全面有效的处理出现的一系列的新问题。总之,计算机网络数据库的安全防范是新时期一个永久性的重要问题,只有全面的通过科学合理的安全防范手段以及在后期的发展过程中进行不断的改进和完善,才能够更好的将系统的安全可靠性进行有效的全面提高。
参考文献:
[1]周世忠,浅谈网络数据库安全研究与应用[J].电脑知识与技术,2010(05).
[2]戴雪蕾,基于SQL SERVER的网络数据库安全管理[J].网络安全技术与应用,2009(04).
[3]梁建民,网络数据库的安全因素分析和预防措施探讨[J].光盘技术,2008(09).
猜你喜欢:
1. 网络数据库安全论文
2. 关于安全教育论文范文
3. 数字图书馆论文参考范文
4. 优秀毕业论文范文
5. 技术类论文范文
提个建议,<此处略去786字>。
库存管理数据库系统原理与应用
【摘 要】库存管理系统是典型的信息管理系统(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 著 北京大学出版社
一、三个世界
1、现实世界 人们管理的对象存于现实世界中。现实世界的事物及事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。例如学校的教学系统中有教师、学生、课程,教师为学生授课,学生选修课程并取得成绩。
2、概念世界 概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,从而产生概念模型。概念模型是现实世界到机器世界必然经过的中间层次。涉及到下面几个术语:
实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。
实体集:同一类实体的集合称为实体集。如全体职工。注意区分"型"与"值"的概念。如每个职工是职工实体"型"的一个具体"值"。
属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等。
关键字:如果某个属性或属性组合的值能唯一地标识出实体集中的每一个实体,可以选作关键字。用作标识的关键字,也称为码。如"职工号"就可作为关键字。
联系:实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系。另一种是实体之间的联系。
3、机器世界 存入计算机系统里的数据是将概念世界中的事物数据化的结果。为了准确地反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示。数据模型将概念世界中的实体,及实体间的联系进一步抽象成便于计算机处理的方式。
数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。数据结构、数据操作和完整性约束是构成数据模型的三要素。数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,用于DBMS的实现。
关系数据库采用关系模型作为数据的组织方式。 关系数据库因其严格的数学理论、使用简单灵活、数据独立性强等特点,而被公认为最有前途的一种数据库管理系统。它的发展十分迅速,目前已成为占据主导地位的数据库管理系统。自20世纪80年代以来,作为商品推出的数据库管理系统几乎都是关系型的,例如,Oracle,Sybase,Informix,Visual FoxPro等。
网络数据库也叫Web数据库。促进Internet发展的因素之一就是Web技术。由静态网页技术的HTML到动态网页技术的CGI、ASP、PHP、JSP等,Web技术经历了一个重要的变革过程。Web已经不再局限于仅仅由静态网页提供信息服务,而改变为动态的网页,可提供交互式的信息查询服务,使信息数据库服务成为了可能。Web数据库就是将数据库技术与Web技术融合在一起,使数据库系统成为Web的重要有机组成部分,从而实现数据库与网络技术的无缝结合。这一结合不仅把Web与数据库的所有优势集合在了一起,而且充分利用了大量已有数据库的信息资源。图1-1是Web数据库的基本结构图,它由数据库服务器(Database Server)、中间件(Middle Ware)、Web服务器(Web Server)、浏览器(Browser)4部分组成。
Web数据库的基本结构
它的工作过程可简单地描述成:用户通过浏览器端的操作界面以交互的方式经由Web服务器来访问数据库。用户向数据库提交的信息以及数据库返回给用户的信息都是以网页的形式显示。
1.1.1 Internet技术与相关协议
Internet技术在Web数据库技术中扮演着重要的角色。Internet(因特网)专指全球最大的、开放的、由众多网络相互连接而成的计算机网络,并通过各种协议在计算机网络中传递信息。TCP/IP协议是Internet上使用的两个最基本的协议。因此也可以说Internet是全球范围的基于分组交换原理和TCP/IP协议的计算机网络。它将信息进行分组后,以数据包为单位进行传输。Internet在进行信息传输时,主要完成两项任务。
(1)正确地将源信息文件分割成一个个数据包,并能在目的地将源信息文件的数据包再准确地重组起来。
(2)将数据包准确地送往目的地。
TCP/IP协议的作用就是为了完成上述两项任务,规范了网络上所有计算机之间数据传递的方式与数据格式,提供了数据打包和寻址的标准方法。
1.TCP/IP协议
TCP协议(Transmission Control Protocol,传输控制协议)规定了分割数据和重组数据所要遵循的规则和要进行的操作。TCP协议能保证数据发送的正确性,如果发现数据有损失,TCP将重新发送数据。
2.IP协议
在Internet上传送数据往往都是远距离的,因此在传输过程中要通过路由器一站一站的转接来实现。路由器是一种特殊的计算机,它会检测数据包的目的地主机地址,然后决定将该数据包送往何处。IP协议(Internet Protocol,网际协议)给Internet中的每一台计算机规定了一个地址,称为IP地址。IP地址的标准是由4部分组成(例如202.112.203.11),其中前两部分规定了当前使用网络的管理机构,第3部分规定了当前使用的网络地址,第4部分规定了当前使用的计算机地址。
Internet上提供的主要服务有E-mail、FTP、BBS、Telnet、WWW等。其中WWW(World Wide Web,万维网)由于其丰富的信息资源而成为Internet最为重要的服务。
3.HTTP协议
HTTP协议(Hypertext Transfer Protocol,超文本传输协议)应用在WWW上,其作用是完成客户端浏览器与Web服务器端之间的HTML数据传输。
1.1.2 Web的工作原理与工作步骤
万维网简称为Web。Web可以描述为在Internet上运行的、全球的、交互的、动态的、跨平台的、分布式的、图形化的超文本信息系统。
1.Web的工作原理
Web是伴随着Internet技术而产生的。在计算机网络中,对于提供Web服务的计算机称为Web服务器。Web采用浏览器/服务器的工作方式。每个Web服务器上都放置着大量的Web信息。Web信息的基本单位是Web页(网页),多个网页组成了一个Web节点。每个Web节点的起始页称为“主页”,且拥有一个URL地址(统一资源定位地址)。Web节点之间及网页之间都是以超文本结构(非线性的网状结构)来进行组织的。
2.Web的工作步骤
Web的工作步骤如下。
(1)用户打开客户端计算机中的浏览器软件(例如Internet Explorer)。
(2)用户输入要启动的Web主页的URL地址,浏览器将生成一个HTTP请求。
(3)浏览器连接到指定的Web服务器,并发送HTTP请求。
(4)Web服务器接到HTTP请求,根据请求的内容不同作相应的处理,再将网页以HTML文件格式发回给浏览器。
(5)浏览器将网页显示到屏幕上.
图1-2 Web的工作步骤
1.1.3 WWW世界中的标记语言
1.HTML语言
HTML(Hypertext Markup Language,超文本标记语言)是创建网页的计算机语言。所谓网页实际上就是一个HTML文档。文档内容由文本和HTML标记组成。HTML文档的扩展名就是.html或.htm。浏览器负责解释HTML文档中的标记,并将HTML文档显示成网页。
(1)HTML标记
HTML标记的作用是告诉浏览器网页的结构和格式。每一个标记用尖括号<>括起来。大多数标记都有一个开始标记和一个结束标记。标记不分大小写。多数标记都带有自己的属性。例如字体标记<FONT>有FACE、COLOR、SIZE等属性:FACE定义字体;COLOR定义字体的颜色;SIZE定义字体的大小。
使用格式:<FONT FACE= SONG SIZE=3 COLOR=RED > BEIJING </FONT>。
网页中有很多文本链接和图片链接。链接,又被称为超链接,用于链接到WWW万维网中的其他网页上。在HTML文档中表示超链接的标记是<A>,通过属性HREF指出链接的网页地址URL。
使用格式:<A HREF= > BEIJING </A>。
(2)HTML程序
HTML程序必须以<HTML>标记开始,以</HTML>标记结束。在<HTML>和</HTML>标记之间主要由两部分组成:文件头和文件体。文件头用标记<HEAD> </HEAD>来标识,文件体用标记<BODY></BODY>来标识。在文件的头部通常包含整个网页的一些信息。例如<TITLE></TITLE>标记是用来说明网页的名称;<META></META>标记是用来说明网页的其他信息,如设计者姓名和版权信息等。所有在浏览器中要显示的内容称为网页的主体,必须放在<BODY></BODY>标记中。下面给出的是一个空网页的HTML程序。
<HTML>
<HEAD>
<TITLE>(在此标记中写网页的标题)</TITLE>
</HEAD>
<BODY>
(在此标记中写网页的内容)
</BODY>
</HTML>
(3)HTML规范
HTML规范又称为HTML标准,它总在不断地发展。每一新版本的出现,HTML都会增加新的特性和内容。有关HTML版本的详细信息请访问网站。
在不同的浏览器中,网页的显示效果可能会有所不同。每一个浏览器都使用自己独特的方式解释HTML文档中的标记,并且多数浏览器不完全支持HTML的所有特性。因为,像Microsoft和Netscape公司在HTML标准上又开发了一些特有的HTML标记和属性,称之为HTML的扩展。这些标记和属性只被他们自己的浏览器所识别,不可能被其他公司的浏览器识别。如果浏览器不能识别HTML文档中的标记,则会忽略这个标记。
(4)HTML程序的编辑环境与运行环境
HTML文档是一个普通的文本文件(ASCII),不包含任何与平台、程序有关的信息。因此HTML文档可以利用任何文本编辑器来方便地生成。要注意的是HTML文档的扩展名必须是.html或.htm。运行HTML文档可以在任何浏览器下进行,并可在浏览器上查看网页的HTML源代码。
关于HTML语言中标记的种类与使用方法将会在第5章中更详细地进行介绍。
2.可扩展标记语言(XML)
HTML是Web上的通用语言,随着Internet的深入人心,WWW上的Web文件日益复杂化、多样化,人们开始感到了HTML这种固定格式的标记语言的不足。1996年W3C开始对HTML的后续语言进行研究,并于1998年正式推出了XML(Extensible Markup Language,可扩展标记语言)。在设计网页时,XML提供了比HTML更灵活的方法。
(1)XML语言的特点
XML是国际组织W3C为适应WWW的应用,将SGML (Standard Generalized Markup Language)标准进行简化形成的元标记语言。简单地说,XML是使用标记来描述内容或与内容相关的形式信息的通用语言。一个XML文档由标记和字符数据组成。
而作为元标记语言,XML不再使标记固定,允许网页的设计者定义数量不限的标记来描述内容,同时还允许设计者创建自己的使用规则。
(2)XML的DTD
DTD(Document Type Definition,文档类型定义)是一组应用在XML文档中的自定义标记语言的技术规范。DTD中定义了标记的含义及关于标记的语法规则。语法规则中确定了在XML文档中使用哪些标记符,它们应该按什么次序出现,标记符之间如何 嵌套,哪些标记符有属性等等。DTD可以包含在它所描述的XML文档中,但通常它是一份单独的文档或者一系列文档。作为外部文件可通过URL链接,被不同的XML文档 共享。
XML把DTD的定义权开放,不同行业可以根据自己的实际需求定义描述内容的DTD,以适应本行业内部的信息交流和存档需要。因此,适合于不同行业、不同平台的标记语言大批涌现。
(3)XML的CSS与XSL
强调内容描述与形式描述的分离,一方面可以使XML文件的编写者更集中精力于数据本身,而不受显示方式的细节影响;另一方面允许为相同的数据定义不同的显示方式,从而适合于不同应用、不同媒体,使XML数据得到最大程度的重用。XML文档数据的显示形式是通过样式单定义的。CSS(Cascading Style Sheets)是XML使用的一种标准的级联样式单,XSL(Extensible Style Language)则是可扩展的样式语言。
由于XML允许用户创建任何所需的标记,而通用浏览器却既无法预期用户标记的意义,又无法为显示这些标记而提供规则,因此用户必须为自己创建的XML文档编写样式单,样式单可以实现共享。
浏览器对一个XML文档的处理过程是,首先去关联它所指定的样式单文件,如果该样式单是一个XSL文件,则按照规定对XML数据进行转换然后再显示,XSL本身也是基于XML语言的,可以将XML转化为HTML后再显示。如果该样式单是一个CSS文件,浏览器就会按照样式单的规定给每个标记赋予一组样式后再显示。
1.2 Web数据库访问技术
Web数据库访问技术通常是通过三层结构来实现的,如图1-3所示。目前建立与Web数据库连接访问的技术方法可归纳为CGI技术,ODBC技术和ASP、JSP、PHP 技术。
Web数据库访问的三层结构
1.2.1 CGI技术
CGI(Common Cateway Interface,通用网关界面)是一种Web服务器上运行的基于Web浏览器输入程序的方法,是最早的访问数据库的解决方案。CGI程序可以建立网页与数据库之间的连接,将用户的查询要求转换成数据库的查询命令,然后将查询结果通过网页返回给用户。一个CGI工作的基本原理如图1-4所示。
CGI程序需要通过一个接口才能访问数据库。这种接口多种多样,数据库系统对CGI程序提供了各种数据库接口如Perl、C/C++、VB等。为了使用各种数据库系统,CGI程序支持ODBC方式,通过ODBC接口访问数据库。
CGI工作流程
1.2.2 ODBC技术
ODBC(Open Database Connectivity,开放数据库互接)是一种使用SQL的应用程序接口(API)。ODBC最显著的优点就是它生成的程序与数据库系统无关,为程序员方便地编写访问各种DBMS的数据库应用程序提供了一个统一接口,使应用程序和数据库源之间完成数据交换。ODBC的内部结构为4层:应用程序层、驱动程序管理器层、驱动程序层、数据源层。它们之间的关系如图1-5所示。由于ODBC适用于不同的数据库产品,因此许多服务器扩展程序都使用了包含ODBC层的系统结构。
ODBC的内部结构
Web服务器通过ODBC数据库驱动程序向数据库系统发出SQL请求,数据库系统接收到的是标准SQL查询语句,并将执行后的查询结果再通过ODBC传回Web服务器,Web服务器将结果以HTML网页传给Web浏览器,工作原理如图1-6所示。
Web服务器通过ODBC访问数据库
由于Java语言所显示出来的编程优势赢得了众多数据库厂商的支持。在数据库处理方面,Java提供的JDBC为数据库开发应用提供了标准的应用程序编程接口。与ODBC类似,JDBC也是一种特殊的API,是用于执行SQL语句的Java应用程序接口。它规定了Java如何与数据库之间交换数据的方法。采用Java和JDBC编写的数据库应用程序具有与平台无关的特性。
1.2.3 ASP、JSP、PHP技术
ASP是Microsoft开发的动态网页技术,主要应用于Windows NT+IIS或 Windows 9x+PWS平台。确切地说ASP不是一种语言,而是Web服务器端的开发环境。利用ASP可以产生和运行动态的、交互的、高性能的Web服务应用程序。ASP支持多种脚本语言,除了VBScript和Pscript,也支持Perl语言,并且可以在同一ASP文件中使用多种脚本语言以发挥各种脚本语言的最大优势。但ASP默认只支持VBScript和Pscript,若要使用其他脚本语言,必须安装相应的脚本引擎。ASP支持在服务器端调用ActiveX组件ADO对象实现对数据库的操作。在具体的应用中,若脚本语言中有访问数据库的请求,可通过ODBC与后台数据库相连,并通过ADO执行访问库的操作。关于ASP的编程技术将会在第7章中详细介绍。
JSP是Sun公司推出的新一代Web开发技术。作为Java家族的一员,几乎可以运行在所有的操作系统平台和Web服务器上,因此JSP的运行平台更为广泛。目前JSP支持的脚本语言只有Java。JSP使用JDBC实现对数据库的访问。目标数据库必须有一个JDBC的驱动程序,即一个从数据库到Java的接口,该接口提供了标准的方法使Java应用程序能够连接到数据库并执行对数据库的操作。JDBC不需要在服务器上创建数据源,通过JDBC、JSP就可以实现SQL语句的执行。
PHP是Rasmus Lerdorf推出的一种跨平台的嵌入式脚本语言,可以在Windows、UNIX、Linux等流行的操作系统和IIS、Apache、Netscape等Web服务器上运行,用户更换平台时,无需变换PHP代码。PHP是通过Internet合作开发的开放源代码软件,它借用了C、Java、Perl语言的语法并结合PHP自身的特性,能够快速写出动态生成页面。PHP可以通过ODBC访问各种数据库,但主要通过函数直接访问数据库。PHP支持目前绝大多数的数据库,提供许多与各类数据库直接互连的函数,包括Sybase、Oracle、SQL Server等,其中与SQL Server数据库互连是最佳组合。
1.3 网络数据库应用系统的层次体系
当前,Internet/Intranet技术发展异常迅速,越来越多的数据库应用软件运行在Internet/Intranet环境下。在此之前,数据库应用系统的发展经历了单机结构、集中式结构、客户机/服务器(C/S)结构之后,随着Internet的普及,又出现了浏览器/服务器(B/S)结构与多层结构。在构造一个应用系统时,首先考虑的是系统的体系结构,采用哪种结构取决于系统的网络环境、应用需求等因素。
1.3.1 客户机/服务器结构
1.二层C/S结构
二层C/S结构是当前非常流行的数据库系统结构,在这种结构中,客户机提出请求,服务器对客户机的服务请求做出回答。它把界面和数据处理操作分开在前端(客户端)和后端(服务器端),这个主要特点使得C/S系统的工作速度主要取决于进行大量数据操作的服务器,而不是前端的硬件设备;同时也大大降低了对网络传输速度的要求,因为只须客户端把服务请求发送给数据库服务器,数据库服务器只把服务结果传回前端,如图1-7所示。
在设计时,对数据可能有如下不同的处理形式。
(1)在处理时,客户机先向服务器索取数据,然后释放数据库,即客户机发出的是文件请求,在客户机端处理数据,最后将结果送回服务器。这种处理方式的缺点很明显:所有的应用处理都在客户端完成,这就要求客户端的计算机必须有足够的能力,以便执行需要的任何程序。更为糟糕的是,由于所有的处理均在客户端完成,每次运行时都要将文件整体传送到客户端,然后才能执行。如:Student表中有30 000条记录,客户端发出命令:
Select * From Student Where Sno='200101'
这条命令将要求服务器将Student表中的所有记录传送到客户端,然后在客户端执行查询,结果只用到一条记录;如果查询的记录不存在,网络传输的数据实际上是无 用的。如此大的数据传输量是不可想象的。因此,人们提出了在服务器中能够执行部分代码的客户机/服务器结构。
(2)在处理时,客户机接受用户要求,并发给服务器;在服务器端处理用户要求,最后将结果传回客户机显示或打印。这种处理方式网络通信量较小。客户机向服务器发出的是处理请求,而不是文件请求,处理请求中的代码在服务器端执行后向客户机传送处理后的结果。
这样,为了特定任务,客户机上的程序和服务器上的程序协同工作:客户机端的代码用于完成用户的输入输出及数据的检查,而服务器端的代码完成对数据库的操作。
客户机/服务器结构的另一个主要特点在于软件、硬件平台的无关性。数据库服务器上的数据库管理系统集中负责管理数据,它向客户端提供一个开放的使用环境,客户端通过数据库接口,如ODBC(开放数据库连接)和SQL语言访问数据库,也就是说,不管客户端采用什么样的硬件和软件,它只要能够通过网络和数据库接口程序连接到服务器,就可对数据库进行访问。
在客户机/服务器结构中,常把客户机称为前台,而把服务器端称为后台。前台应用程序的功能包括用户界面、接收用户数据、处理应用逻辑、向后台发出请求、同时接收后台返回的结果,最后再将返回的结果按一定的格式或方式显示给用户。而后台服务器则负责共享外部设备、存取共享数据、响应前台客户端的请求并回送结果等工作。前台的应用程序和数据一般是用户专用的,而后台的数据和代码是所有用户可以共享的。
由于数据库服务器不仅要管理共享数据,保证数据的完整性,还要执行一部分代码,完成客户端的一些处理请求,所以对用于服务器的计算机提出较高的要求。最好要采用一台专用的服务器,有较快的处理速度,有大容量的硬盘和内存,支持磁带等大容量的存储设备。
上面讲的客户机/服务器结构将应用分在了客户机、服务器两级,称其为两层客户机/ 服务器结构。总之,两层C/S结构的基本工作方式是客户程序向数据库服务器发送SQL请求,服务器返回数据或结果。
这种C/S结构有两种实现方式,一种是客户来完成表示部分和应用逻辑部分,而服务器完成数据访问部分,这种情况是以客户为中心的,适用于应用相对简单、数据访问量不是很大的情况。另一种是以服务器为中心的,把一些重要的应用逻辑部分放到服务器上,这样可充分利用服务器的计算能力,减少网络上需要传送的数据。通常以存储过程和触发器的形式出现,但存储过程都依赖于特定数据库,不同数据库之间很难移植,而三层C/S结构可以很好地解决这个问题。
注意:触发器(trigger)是数据库系统中,一个在插入、删除、修改操作之后运行的记录级事件代码。不同的事件可以对应不同的动作。通常有3种类型的触发器:INSERT触发器、DELETE触发器和UPDATE触发器。
2.三层C/S结构
由于两层结构的客户机/服务器系统本身固有的缺陷,使得它不能应用于一些大型、结构较为复杂的系统中,故出现了3层结构的客户机/服务器系统,将两层结构中服务器部分和客户端部分的应用单独划分出来,即采用“客户机—应用服务器—数据库服务器”结构(如图1-8所示)。典型的数据库应用可分为三部分:表示部分、应用逻辑(商业逻辑)部分和数据访问部分,三层结构便是对应于这三部分。
图1-8 三层C/S结构
其中,应用服务器和数据库服务器可位于同一主机,也可位于不同主机。客户机是应用的用户接口部分,负责用户与应用程序的交互,运行在客户机端的软件也称为表示层软件。应用服务器存放业务逻辑层(也称为功能层)软件,是应用逻辑处理的核心,实现具体业务。它能响应客户机请求,完成业务处理或复杂计算。若有数据库访问任务时,应用服务器层可根据客户机的要求向数据库服务器发送SQL指令。应用逻辑变得复杂或增加新的应用时,可增加新的应用服务器。数据库服务器便是用来执行功能层送来的SQL指令,完成数据的存储、访问和完整性约束等。操作完成后再通过应用服务器向客户机返回操作结果。
1.3.2 浏览器/服务器结构
随着Internet技术和Web技术的广泛应用,C/S结构已无法满足人们的需要。因为在典型C/S体系中,通常为客户安装前端应用程序的做法已不再现实,并且限制客户端工作环境只能基于Windows、Macintosh或UNIX等操作系统也不切实际。于是基于浏览器/服务器结构(Browser/Server)的系统应运而生。
采用B/S结构后,在客户端只需安装一个通用的浏览器即可,不再受具体操作系统和硬件的制约,实现了跨平台的应用。
基于B/S结构的典型应用通常采用三层结构:“浏览器—Web服务器—数据库服务器”,B/S模式的工作原理是:通过浏览器以超文本的形式向Web服务器提出访问数据库的请求,Web服务器接受客户请求后,激活对应的CGI程序将超文本HTML语言转化为SQL语法,将这个请求交给数据库,数据库服务器得到请求后,进行数据处理,然后将处理结果集返回给CGI程序。CGI再将结果转化为HTML,并由Web服务器转发给请求方的浏览器,如图1-9所示。
图1-9 B/S工作原理
在B/S模式中,客户端的标准配置是浏览器,如IE;业务功能处理由独立的应用服务器处理,Web服务器成为应用处理的标准配置;数据处理仍然由数据库服务器处理。
从本质上讲,B/S结构与传统的C/S结构都是以同一种请求和应答方式来执行应用的,区别主要在于:C/S是一种两层或三层结构模式,其客户端集中了大量应用软件,而B/S是一种基于超链接(HyperLink)、HTML、Java的三级或多级C/S结构,客户端仅需单一的浏览器软件,是一种全新的体系结构,解决了跨平台问题。到目前,这两种结构在不同方面都有着广泛的应用。虽然C/S结构在Internet环境下明显不如B/S结构具有优势,但它在局域网环境下仍具有优势。
1.3.3 Internet/Intranet信息系统的多层体系结构
多层结构应用软件与传统的两层结构应用软件相比,有可伸缩性好、可管理性强、安全性高、软件重用性好等诸多优点,如何在Internet/Intranet环境下构建应用软件体系结构就成为一个非常重要的问题,也是现今软件体系研究的一个新热点。
目前各种技术层出不穷,如最初的静态HTML页面、简单的CGI网关程序、Java Applet程序,现在的ASP等Web数据库技术,还有动态的Java在线游戏及PHP技术等。
实际上,多层的概念是由Sun公司提出来的。Sun公司提出的多层应用体系包括4层:客户层、顶端Web服务层、应用服务层和数据库层。其中顶端Web服务层是Sun公司多层体系结构中非常重要的一层,它主要起代理和缓存的作用。顶端Web服务器的作用是缓存本地各客户机经常使用的Java Applet程序和静态数据,通常被放置在客户机所在的局域网内,起到一个Java Applet主机(向Web浏览器传送Java Applet程序的计算机)和访问其他服务的代理作用。与普通代理服务器的作用相同。构建多层结构应用软件时,选用Java平台是一个很好的选择,因为它跨越各应用平台。总之,在Java平台上构建多层应用软件体系代表着今后Internet/Intranet应用的趋势。