数据库系统原理论文

数据库系统原理论文,第1张

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

摘 要库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

经过分析如此情况,我们使用微软公司的VisualBasic开发工具,利用其提供的各种面向对象的开发工具,尤其是ADO,是能方便而简洁 *** 纵数据库的智能化对象,短期内就可以开发出用户满意的可行系统。

关键字: 库存管理 ADO 面相对象 库存ABC分析

第一章 概述

11 库存管理的必要性

大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。因此,平衡公司库存投资与其它资金需求至关重要。

12 库存分类

企业怎样管理库存,是库存管理的最大难点和挑战。因此,通过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作计划。可以凭业务人员的经验加以控制。

由上可以看出库存管理的重要性。因此,库存管理是企业管理的重要组成部分。市场需要库存商品提供给用户,企业的经营需要库存保证各种药品的供应以进行药品的销售,库存对生产效率的提高有着极其重要的影响。因此,库存管理系统是计算机管理系统的中心。因为,所有企业的经营活动都离不开物流的活动。

13 库存管理的目标

库存管理的主要目标就是通过对仓库所有入出库活动的管理和控制及对库存数据有效的统计和分析,以保证企业生产中畅通的物流,使决策人员及早发现问题,采取相应措施,调整库存结构,缩短储备周期,加速资金周转,最大限度地降低库存占用,同时,通过周期性的仓库盘点,及时补救管理中的漏洞,使库存管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益,库存管理系统是协调企业生产经营的基础,其数据的准确性、方便的查询、有效的分析是整个计算机管理系统顺利运行的关键。

第二章 开发背景

企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化 *** 作,而且必须根据企业的具体情况制定相应的方案。

根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需求来发送物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。

一个完整的企业物资供应管理系统应包括采购计划管理,合同收托管理、仓库库存管理、定额管理、统计管理、财务管理等模块。其中仓库的库存管理是整个物资供应管理系统的核心。因此有必要开发一套独立的库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我开发了下面的仓库库存管理系统。

第三章 系统分析

本系统采用了结构化生命周期法,结构化生命周期法是最常用的管理信息系统开发方法,分为四个步骤,即系统调研分析、数据库设计实现、界面设计实现和系统功能设计实现。其中系统调研分析阶段是最基础、也是最容易被开发人员忽视的环节。

31进行资料收集

在整个系统分析阶段,我在图书馆认真查看了很多关于仓库库存管理方面的书籍,收集到了相应的入库单、领料单、台账、物料卡、报表等资料。

入库单是入库单位在把相应的零部件送人仓库时必须填写的单据;领料单是领料人员从仓库中领取零部件时必须填写的单据(即出库);零部件台账(相当于本系统中的 *** 作日志)实际是一个流水账,用于记录每天发生的入库、出库信息;物料卡(在本系统中用现有库存信息来表示)的作用是记录某一种零部件的数量变化,以便库管员盘查;报表是仓库向有关领导和部门定期提交的零部件库存汇总信息。收集到的入库单、领料单、零部件库存台账、零部件物料卡等单据和报表的实物样式在此略去,有兴趣者请参考有关类似企业的样本即可。

32绘制业务流程图

33用户需求分析

用户需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和系统的功能模块。用户需求调研结束之后,应该立即进行用户需求分析。

331应用程序结构确定

从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单用户应用程序结构、多层服务器应用程序结构、浏览器/服务器应用程序结构、客户机/服务器应用程序结构等5种类型。

本库存管理系统就采用了当前最流行的客户机/服务器应用程序结构(即C/S结构),此时,客户机提出请求,服务器对客户机的请求作出回应。通过对服务功能的分布实现了分工服务。数据存储层放在服务器上,业务处理层和界面表示层放在客户机上,因此又被称为“灵敏的客户机”结构。许多 *** 作可以在本地的客户机上执行,只是当需要数据时,才向服务器发出请求。并使应用程序的处理更接近用户,使整个系统具有较好的性能,可以并行地处理应用程序的请求、减少了数据传输量、降低了服务器的负荷。由于条件所限,将此系统所有程序都置于一台计算机上,以便调试运行。

332确定系统开发环境

由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境:

★网络 *** 作系统:Windows2000;★数据库服务器:MicrosoftAccessr2000;

★服务器平台:Windows2000;★客户机平台:Windows95/98/NT/2000;

★前端开发工具:visualBasic60(企业版);★数据访问对象:ADO(本系统使用ADO控件,简化编程)。

333确定系统的功能模块

通过分析确定库存系统将包含6个主要功能模块,即系统模块、入库业务管理模块、出库业务管理模块、退料业务管理模块(还库业务管理模块)、盘点业务管理模块(报表输出)、需求管理模块。对于每一个功能模块,都包含了数据录入、编辑、查询、统计、打印、应急、帮助等功能。

第四章 系统设计

4. 1总体设计

411系统目标设计

系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。

412开发设计思想

库存管理的物资主要是企业生产中所需要的各种设备、原材料及零部件。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据所需要的物资设备总额和部门生产活动需要提出物资需求申请。计划员根据整个企业的需求开出物资设备出库单,仓库管理员根据出库单核对发放设备、原材料及零部件。有些设备使用完毕需要及时归还入库,填写还库单。根据需要按照月、季、年进行统计分析,产生相应报表。

仓库库存管理的特点是信息处理量比较大。所管理的物资设备、原材料及零部件种类繁多,而且由于入库单、出库单、需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同,因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门规格不统等问题。

在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要,我们采取了下面的一些原则:

 统一各种原始单据的格式,统一帐目和报表的格式。

 删除不必要的管理冗余,实现管理规范化、科学化。

 程序代码标准化,软件统一化,确保软件的可维护性和实用性。

 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。

 建立 *** 作日志,系统自动记录所进行的各种 *** 作。

413系统功能分析

本系统需要完成的功能主要有以下几点。

 库存管理的各种信息的输入,包括入库、出库、还库、需求信息的输入等。

 库存管理的各种信息的查询、修改和维护。

 设备采购报表的生成。

 在材料库存中加入所允许的最大库存合最小库存字段,对所有库存物资实现监控和报警。

 企业各个部门的物资需求管理。

 *** 作日志的管理

 库存管理系统的使用帮助。

42详细设计

421 系统功能模块设计

系统模块

a 包括报表的打印及设置, *** 作日志的管理。

b 管理员可以通过管理界面添加或删除用户,添加新管理员或删除原有管理员,验证用户的合法性,阻止非法用户登录。

c 管理员或其他用户可以修改自己的密码。

(2) 入库模块

包括填写入库单,更新,删除入库记录,查看现有库存信息,入库记录的查询及打印

(3) 出库模块

包括填写出库单,更新,删除出库记录,查看现有库存信息,出库记录的查询及打印

(4) 还库模块

包括填写还库单,更新,删除还库记录,还库记录的查询及打印

(5) 需求模块

包括填写需求计划表,更新,删除采购计划信息,查看现有采购信息,采购信息的查询及打印,以及预测短期内的需求计划。

422数据库设计

数据库需求分析

通过对企业仓库管理内容和数据流程分析,设计的数据项合数据结构如下:

 设备代码信息。包括的数据项有设备号、设备名称。

 现有库存信息。包括的数据项有现有设备、现有数目、最大库存、最小库存等。

 设备使用信息。包括的数据项有使用的设备、使用部门。数目。使用时间、出库时状态等。

 设备采购信息。包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。

 设备归还信息。包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。

 设备需求信息。包括的数据项有需求的部门、需求设备、需求数目、需求时间等。

有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计。

数据库概念结构设计

这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有库存实体、出库实体、入库实体、采购实体、还库实体、需求实体。 数据库逻辑结构设计

在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。

43 代码设计

任何库存均可分为如下三类:

A类物品:高值──价值占库存总值70-80%的相对少数物品。通常为物品的15-20%。

B类物品:中值──总值占库存总值的15-20%。物品数居中,通常占物品的30-40%。

C类物品:低值──库存总值几乎可以忽略不计,只占5-10%。是物品的大多数,通常占60-70%。

4.4 输入输出设计

本系统界面标准Windows形式,键盘输入(也可以用条形码读取),人机交互,容易使用。输入输出的设计考虑美观实用和通俗易懂,图文并茂。

4.5系统安全性设计

系统数据库中包含多个二维表,所以在系统与数据库的连接上,并没有把数据库和系统的连接直接写入代码,而是通过对服务器端进行系统设置,使数据库名及路径不可见,并通过ACCESS的数据库安全设置,保证了数据库的安全性。系统根据用户身份不同赋予不同权限,用户用密码登陆,同样也保证了系统数据的安全性。

第五章 系统实施

5.1、开发工具简介

本系统的前端开发工具,我选择了Visual Basic60,后台数据库采用Access2000。

511 VB简介

Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。

512 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)

513 VB中的基本概念

对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。

属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。

方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。

事件:就是对象对用户各种 *** 作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。

控件:控件就是Visual Basic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。

514 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 系统实现

521系统管理模块实现

523入库模块的实现

524 出库模块实现

525设备采购模块实现,程序略

527设备代码模块实现

529 *** 作日志模块实现

第六章 系统使用说明

参考文献:

1. 数据库系统原理教程 王珊 陈红 清华大学出版社

2. 管理信息系统 王虎 张俊 武汉理工大学出版社

3. Visual Basic 数据库开发 EWinemiller,JRoff BHeyman,RGroom 著 清华大学出版社

4. PowerBuilder 80数据库系统开发实例导航 何旭洪 余建英 人民邮电出版社

5. VB6从入门道精通 『美』Gary cornell 著 北京希望电子出版社

6 managing Information Systems David LAnderson著 清华大学出版社

7 Management Information Systems Raymond Mcleod,Jc George Schell 著 北京大学出版社

这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。

1、原理

一般来说,Java应用程序访问数据库的过程是

①装载数据库驱动程序;

②通过jdbc建立数据库连接;

③访问数据库,执行sql语句;

④断开数据库连接。

2、代码

3、分析

程序开发过程中,存在很多问题:首先,每一次web请求都要建立一次数据库连接。建立连接是一个费时的活动,每次都得花费005s~1s的时间,而且系统还要分配内存资源。这个时间对于一次或几次数据库 *** 作,或许感觉不出系统有多大的开销。可是对于现在的web应用,尤其是大型电子商务网站,同时有几百人甚至几千人在线是很正常的事。在这种情况下,频繁的进行数据库连接 *** 作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务器的崩溃。不是危言耸听,这就是制约某些电子商务网站发展的技术瓶颈问题。其次,对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将不得不重启数据库。还有,这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃。

上述的用户查询案例,如果同时有1000人访问,就会不断的有数据库连接、断开 *** 作:

通过上面的分析,我们可以看出来,“数据库连接”是一种稀缺的资源,为了保障网站的正常使用,应该对其进行妥善管理。其实我们查询完数据库后,如果不关闭连接,而是暂时存放起来,当别人使用时,把这个连接给他们使用。就避免了一次建立数据库连接和断开的 *** 作时间消耗。原理如下:

由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池(resource pool)。该模式正是为了解决资源的频繁分配﹑释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。

我们自己尝试开发一个连接池,来为上面的查询业务提供数据库连接服务:

① 编写class 实现DataSource 接口

② 在class构造器一次性创建10个连接,将连接保存LinkedList中

③ 实现getConnection 从 LinkedList中返回一个连接

④ 提供将连接放回连接池中方法

1、连接池代码

2、使用连接池重构我们的用户查询函数

这就是数据库连接池的原理,它大大提供了数据库连接的利用率,减小了内存吞吐的开销。我们在开发过程中,就不需要再关心数据库连接的问题,自然有数据库连接池帮助我们处理,这回放心了吧。但连接池需要考虑的问题不仅仅如此,下面我们就看看还有哪些问题需要考虑。

1、并发问题

为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题。这个问题相对比较好解决,因为java语言自身提供了对并发管理的支持,使用synchronized关键字即可确保线程是同步的。使用方法为直接在类方法前面加上synchronized关键字,如:

2、多数据库服务器和多用户

对于大型的企业级应用,常常需要同时连接不同的数据库(如连接oracle和sybase)。如何连接不同的数据库呢?我们采用的策略是:设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中资源文件中存放着多个数据库的url地址等信息。根据资源文件提供的信息,创建多个连接池类的实例,每一个实例都是一个特定数据库的连接池。连接池管理类实例为每个连接池实例取一个名字,通过不同的名字来管理不同的连接池。

对于同一个数据库有多个用户使用不同的名称和密码访问的情况,也可以通过资源文件处理,即在资源文件中设置多个具有相同url地址,但具有不同用户名和密码的数据库连接信息。

3、事务处理

我们知道,事务具有原子性,此时要求对数据库的 *** 作符合“all-all-nothing”原则即对于一组sql语句要么全做,要么全不做。

在java语言中,connection类本身提供了对事务的支持,可以通过设置connection的autocommit属性为false 然后显式的调用commit或rollback方法来实现。但要高效的进行connection复用,就必须提供相应的事务支持机制。可采用每一个事务独占一个连接来实现,这种方法可以大大降低事务管理的复杂性。

4、连接池的分配与释放

连接池的分配与释放,对系统的性能有很大的影响。合理的分配与释放,可以提高连接的复用度,从而降低建立新连接的开销,同时还可以加快用户的访问速度。

对于连接的管理可使用空闲池。即把已经创建但尚未分配出去的连接按创建时间存放到一个空闲池中。每当用户请求一个连接时,系统首先检查空闲池内有没有空闲连接。如果有就把建立时间最长(通过容器的顺序存放实现)的那个连接分配给他(实际是先做连接是否有效的判断,如果可用就分配给用户,如不可用就把这个连接从空闲池删掉,重新检测空闲池是否还有连接);如果没有则检查当前所开连接池是否达到连接池所允许的最大连接数(maxconn)如果没有达到,就新建一个连接,如果已经达到,就等待一定的时间(timeout)。如果在等待的时间内有连接被释放出来就可以把这个连接分配给等待的用户,如果等待时间超过预定时间timeout 则返回空值(null)。系统对已经分配出去正在使用的连接只做计数,当使用完后再返还给空闲池。对于空闲连接的状态,可开辟专门的线程定时检测,这样会花费一定的系统开销,但可以保证较快的响应速度。也可采取不开辟专门线程,只是在分配前检测的方法。

5、连接池的配置与维护

连接池中到底应该放置多少连接,才能使系统的性能最佳?系统可采取设置最小连接数(minconn)和最大连接数(maxconn)来控制连接池中的连接。最小连接数是系统启动时连接池所创建的连接数。如果创建过多,则系统启动就慢,但创建后系统的响应速度会很快;如果创建过少,则系统启动的很快,响应起来却慢。这样,可以在开发时,设置较小的最小连接数,开发起来会快,而在系统实际使用时设置较大的,因为这样对访问客户来说速度会快些。最大连接数是连接池中允许连接的最大数目,具体设置多少,要看系统的访问量,可通过反复测试,找到最佳点。

如何确保连接池中的最小连接数呢?有动态和静态两种策略。动态即每隔一定时间就对连接池进行检测,如果发现连接数量小于最小连接数,则补充相应数量的新连接以保证连接池的正常运转。静态是发现空闲连接不够时再去检查。

理解了连接池的原理就可以了,没有必要什么都从头写一遍,那样会花费很多时间,并且性能及稳定性也不一定满足要求。事实上,已经存在很多流行的性能优良的第三方数据库连接池jar包供我们使用。如:

其中c3p0已经很久没有更新了。DBCP更新速度很慢,基本处于不活跃状态,而Druid和HikariCP处于活跃状态的更新中。

学习数据库不应该针对品牌来学习,应该针对数据库技术的分带学习, 从现在主流的关系型数据库,到oracle 面向对象数据库,你要学习的包括 *** 作系统基础知识,数据结构,关系型数据库理论,sql结构化查询语言,T-SQL,pl/sql,网络知识等等一系列技术。以下附上一张数据库工程师考试的大纲供你作个参考: (1)掌握计算机体系结构以及各主要部件的性能和基本工作原理; (2)掌握 *** 作系统、程序设计语言的基础知识,了解编译程序的基本知识; (3)熟练掌握常用数据结构和常用算法; (4)熟悉软件工程和软件开发项目管理的基础知识; (5)熟悉计算机网络的原理和技术; (6)掌握数据库原理及基本理论; (7)掌握常用的大型数据库管理系统的应用技术; (8)掌握数据库应用系统的设计方法和开发过程; (9)熟悉数据库系统的管理和维护方法,了解相关的安全技术; (10)了解数据库发展趋势与新技术; (11)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识; (12)了解信息化、计算机应用的基础知识; (13)正确阅读和理解计算机领域的英文资料。

软件与应用技术主要学的课程有:程序设计软件工程与项目管理、软件测试、3G或4G手机软件开发,计算机网络与通讯、多媒体技术与应用、大型数据库处理技术等课程。

软件与应用技术专业有哪些课程

软件与应用技术专业主要专业课程:Java语言程序设计案例教程、Java高级语言程序设计、C语言程序设计、VB程序设计、Java应用系统开发、Java企业级开发、数据库原理与应用、网页设计与开发、计算机网络与通讯、网络 *** 作系统、软件工程、多媒体技术与应用、大型数据库处理技术。主要开设课程:C#程序设计,java程序设计,数据库技术与应用,计算机专业英语,IT职业英语,JSP,ASPNET等专业课,以及高等数学(计算机数学基础),英语等公共课程。

软件与应用技术专业课程:

1、编程语言课程(包括Microsoft公司Windows平台开发技术和SUN公司(已被甲骨文收购)的Java开发技术)

2、支撑课程(如数据库技术、网络技术、XML等课程)

3、专业技能提高和扩展课程(如软件工程、UML、测试技术等课程)

4、公共课程(高等数学、大学英语、思想道德与法律基础等课程)

软件与应用技术专业就业前景好不好

目前我国的软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想。距离大规模的工业化大生产比较还是有一定的差距;原因有管理体制的问题,市场问题,政策问题,也有软件工程理论不全面和不完善的问题。

所以软件与应用技术的研究和应用,以及我国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程科学技术人员来推动。软件工程的前途是光明的。

软件与应用技术专业学生经过专业学习,具备较强的软件分析、设计、开发和应用能力,毕业后可成为从事系统分析、软件设计、软件管理及教学科研工作的高级人才,可以满足军事、安全、税务、证券、政府机关、电子商务、银行、金融、中外企业等部门急需的计算机人才。

以上就是关于数据库系统原理论文全部的内容,包括:数据库系统原理论文、搞软件开发,请你来谈谈数据库连接池的原理吧、数据库原理及应用沈祥玖曹梅红这本书课后习题答案有么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9367777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存