首页 > 文章中心 > 大数据开发的过程

大数据开发的过程

大数据开发的过程

大数据开发的过程范文第1篇

 

数据挖掘,即Data mining,是在海量数据信息中提取有效信息,满足人们实际需要的一种技术手段,该技术手段随着社会经济的发展以及科学技术的应用,得到了较大的发展和进步。软件工程数据挖掘,即Data minging for software engineering侧重于软件信息挖掘领域,是对软件信息进行资源共享的一种技术手段,该手段的关键领域在于对软件技术的研究和应用。软件开发信息库的数据挖掘,注重于数据挖掘、人工智能、模式识别等领域的研究,这三大领域又是软件实现智能化、高科技化的关键。软件开发信息库的数据挖掘,近几年来,以ICSE(International Conference on software engineering)会议提出的相关数据挖掘信息为研究对象,分析了软件数据信息库在软件开发过程中的重要作用。文章在对软件开发信息库的数据挖掘技术分析过程中,探讨了数据挖掘技术在软件工程领域的重要作用,以及数据挖掘与软件开发之间的密切联系,注重对软件开发特色的分析以及数据挖掘作用的阐述,突出了数据挖掘在软件开发算法选择过程中的重要作用。

 

1 软件开发信息库数据挖掘的基本概念与面临的挑战

 

1.1 软件开发信息库

 

软件开发信息库主要是指软件开发过程中的相关数据总和,体现出了“数据化”这一特征。关于软件开发信息库的具体内容,我们可以从以下几点看出:

 

(1)项目开发过程中的“项目数据”,包括了项目开发的过程、细化的任务以及相关资源信息等。“项目数据”是软件开发的关键环节和基础环节,是后续开发的起点。“项目数据”的有效记载和日后的有效分析,将直接影响到软件开发的最终性能。

 

(2)源代码数据。源代码数据是软件程序执行的关键,主要包括了“项目”开发的源代码以及软件版本升级和修改过程中的代码。

 

(3)项目开发的相关文档信息。软件项目开发过程中,需要的文档信息主要包括了需求文档、测试文档、设计文档等,这些文档能够为软件开发提供相应的数据支撑,确保软件开发的目标得以实现。

 

(4)项目开发的历史信息。这一部分包括了E-mail存档、论坛交流的历史记录等。

 

(5)软件存在缺陷的信息。软件缺陷信息是软件开发信息库中的一个重要组成部分,同时,这一部分也是完善软件相关信息,提升软件整体性能的关键。软件缺陷跟踪信息,在后续的软件修改和维护过程中,具有指导性意义。

 

软件开发信息库是软件开发的重要组成部分,其对数据信息进行有效存储。一般来说,软件开发信息库在数据存储过程中,会根据信息的不同分类,有针对性地进行信息存储。

 

(1)软件配置管理系统。该系统是软件开发中的一个重要组成部分,英文表示为“sofware configuration management system”,即“SCMS”,也就是版本控制系统。SCMS关系到了软件开发过程中的源代码数据信息控制,可以保证项目开发的相关文档能够进行有效存储,并对相关历史信息进行有效存档。应用于软件配置管理系统的软件系统主要有:CVS、SVN等。

 

(2)Defect tracking system,即“缺陷跟踪系统”,该系统是软件进行修改的主要依据,其在软件开发过程中,最主要的功能就是软件缺陷报告。目前来看,在进行软件开发过程中,利用缺陷跟踪系统,可以对软件开发过程中存在的问题进行有效分析,并采取有针对性的措施进行解决,保证软件开发的可靠性和质量性。在应用中,以“Bugzilla”系统为主。

 

(3)Project management system,即“项目管理系统”,该系统在软件开发过程中,具有着重要地位,并且在实际应用过程中,发挥着重要作用。项目管理系统主要保证了软件开发的项目计划、资源分配、程序执行,能够按照相关要求进行,更好地提升软件开发的效率。在实际应用过程中,例如微软的Project软件,就是利用了项目管理系统实现了对软件计划、资源分配的有效安排,提升了软件开发的效率,并降低了软件开发的成本。

 

1.2 数据挖掘

 

数据挖掘,即是利用数据库内的相关信息,更好地满足人们的实际需要。数据挖掘,又称数据库中的知识发现,是从一个巨大的数据信息库中,对一些关键性知识的发掘,从而更好地解决实现问题。关于数据挖掘的内容,我们可以从图1看出。

 

图1 数据挖掘过程

 

如图1所示,我们可以看出,数据挖掘的步骤主要包括了以下几个步骤:

 

(1)数据抽取。数据挖掘中的数据抽取,主要是以人们的实际需要为主,即在大的数据信息库中提取有效信息,这些信息可以为人们的实践活动提供有效指导,保证人们能够对相关问题进行有效解决。数据提取过程中,需要对数据信息内容以及来源进行把握,同时也需要对数据类型和相关结构进行有效分析,这样一来,才能够保证数据信息得到更好地应用;

 

(2)数据预处理。数据预处理主要是根据提取的相关数据信息,根据实际需要,对数据进行有效处理,将一些不必要的信息进行有效剔除,使留下的信息能够更好地指导实践活动;

 

(3)知识发现。知识发现是数据挖掘的一个关键环节,同时,这一步骤也是数据信息得到有效应用的关键。知识发现主要是发现知识数据中,一些潜在的、未知的、有用的信息,将这些信息能够提炼出来,更好地在实践中进行运用;

 

(4)知识表示。知识表示是数据挖掘技术的最后阶段,也就是理论应用于实践中的一个表现。随着大数据挖掘技术的发展和进步,知识表现的形式呈现一种多样化的发展特征,通过关键规则,可以对知识进行开拓性的处理,使知识得到更好地应用。

 

综上所述,我们不难看出,数据挖掘技术在软件开发信息库中的应用,主要分为四个步骤,即数据抽取、数据预处理、知识发现以及知识表示。数据挖掘技术与软件开发信息库有着密切的关联性,软件开发信息库实现了信息资源的共享,是数据挖掘的基础和前提,同样地,数据挖掘也在很大程度上促进了软件开发的发展和进步,二者之间,存在着一种相辅相成的关系。

 

1.3 软件工程数据挖掘面临的挑战

 

软件工程数据挖掘面临的挑战,是影响软件开发的主要因素,在实际发展过程中,如何有效应对这一挑战,更好地促进软件开发技术的发展和进步,成为当下软件开发面临的一个重要议题。

 

(1)数据信息复杂化。随着科学技术的发展,人们对高性能软件有着更加迫切的需求,这样一来,数据信息复杂化特征,成为当下软件开发和数据挖掘面临的一个主要问题。数据信息复杂化,主要包括了代码、注释、文档的复杂化,三者之间在应用过程中,对算法选择上,有着较大的差别,并且对算法的要求,表现出一种“苛刻”的特点。

 

(2)分析形式的变化。随着电子商务时代的到来,软件开发过程中,面临着更大的挑战,对相关数据的分析,也变得更加复杂和困难。数据挖掘的最终步骤是将知识提交给用户,而在数据信息提交完成后,如何对图表、文字信息进行分析,如何对其作出有效评价,将成为一个较大的难题。

 

(3)数据挖掘的效果评价。数据挖掘技术在应用过程中,形成了一定的结果表示和评价体系,但是面临着新的发展形势,传统的效果评价呈现出一种滞后性,无法在当下得到有效应用。这样一来,效果评价成为当下探究的热门议题。

 

2 软件开发信息库的数据挖掘综述

 

2.1 软件开发信息库的数据获取

 

软件开发信息库的数据获取,是数据挖掘的前提和基础,一般来说,软件开发信息库的数据来源,主要包括了以下几点:

 

(1)软件开发商自身建立了软件开发信息库。软件开发商在进行软件开发过程中,势必会对自身对软件信息的研究进行有效地总结,并将这些信息进行存储,为日后的发展提供有效依据;

 

(2)软件开发机构对软件信息的存储。一些权威机构为了更好地促进软件开发技术的发展,会将一些研究成果进行信息存储,并且对相关技术进行信息共享,更好地促进软件开发技术的发展和进步;

 

(3)自由软件的软件开发数据。自由软件的软件开发数据是最容易获得的软件开发信息,是研究项目的主要数据来源之一。关于自由软件的软件开发数据,最具代表性的则是Source Forge提供的软件开发数据,包括了源代码、缺陷数据以及相关交流信息等。

 

软件开发信息库获取了相关数据信息后,会根据软件开发的实际需要,对一些重要的软件信息进行有效提取,这一提取过程,是软件开发数据库形成的关键环节。一般来说,在进行数据库信息抽取时,主要包括了源代码、项目数据信息、缺陷数据信息的提取。关于软件开发信息库问题的处理,CVS系统在应用过程中,具有代表性意义。CVS管理系统在应用过程中,注重对相关信息的结构转化,将相关信息进行有效提取,并能够对其进行有效保存,更好地满足实际需要。

 

2.2 软件开发信息库数据的预处理

 

面向软件开发信息的数据挖掘技术应用,对数据库内的信息进行预处理是一个关键环节,在上文中,我们对这一问题也进行了相关阐述。接下来,我们将对这一问题进行具体的研究和分析。一般来说,软件开发信息库数据的预处理,主要包括了以下内容:

 

(1)对配置系统进行有效管理。配置系统的数据信息处理,主要是对一些无效信息进行去除,并将重要信息和所需要的信息进行提取,并对其进行有效性分析,将提取的信息进行存储,以便更好地进行应用;

 

(2)对缺陷数据进行处理。缺陷数据的处理,注重对缺失属性值的分析,包括了类别、状态、级别等相关缺陷的有效分析。缺陷数据的处理,还包括了对一些缺失信息的处理,对数据的属性值进行有效地补充;

 

(3)项目过程数据中存在一定的噪声数据的处理。项目过程数据中的噪声污染,将会对软件的整体性能产生主要的影响,“除噪”步骤必不可少。噪声去除过程中,主要是为了更好地保证软件开发的可靠性和稳定性,可采取分箱、聚类以及回归分析的方式对这一问题进行解决。

 

2.3 软件的演进分析

 

软件演进分析是软件开发信息数据挖掘的一个重要环节,在实际应用过程中,要对软件的代码演进进行有效分析。关于软件代码演进分析,较为常用的方法则是对程序语义进行有效分析,并且对软件的具体结构进行考虑,包括了方法、类型定义以及相关变量等内容。关于软件的演进分析,较为代表性的有D.Jackson和D.A.Ladd采用的语义分析方法,可以对内容变量和外部变量的变化进行有效分析,并能够对相关信息进行正确识别。除此之外,M.W Godfrey等人则针对于开源软件的演进过程中进行了分析,验证了软件演进法则。文章对软件的演进分析,则基于软件静态程序进行了相关分析。

 

在分析过程中,由于软件开发过程中的架构演进较难控制,我们需要在开发过程中,对软件源代码进行有效设计,并对源代码的修改进行慎重考虑,对其架构演进情况进行合理把握。在分析时,可采用Zinmer mann提出的“关联规则”方法,对演进过程中的模块关系进行合理、有效把握。

 

2.4 软件缺陷分析和动态建模方法

 

面向软件开发信息库的数据挖掘技术中,软件缺陷分析和动态建模方法,是数据挖掘必须注意的一个重要议题。

 

2.4.1 软件缺陷分析

 

软件缺陷分析主要是根据实际情况,对不同属性的软件缺陷情况进行研究和分析,包括了决策树、回归分析以及神经网络等三种方法。其中,Patrick Knab等人,则应用了决策树方法对软件缺陷问题进行了分析。Patrick Knab等人分析的方面在于源代码缺陷密度问题,对代码行数、源代码密度选择问题展开了研究,为源代码的选用,提供了有效依据。而针对于软件缺陷数据和缺陷位置的研究,则主要以二项回归模型方法为主,能够对软件缺陷数据进行有效分析和统计。

 

2.4.2 动态建模方法

 

软件开发信息库的数据挖掘技术中,动态建模方法应用,能够更好地对软件开发过程中的事件动态关系进行有效把握。关于这一问题的研究,具有代表性的是Jonathan.E.Cook和A lexander L.Wolf在上个世纪末提出的语义推论方法,并应用神经网络算法建立动态模型,更好地实现了对软件事件的动态监控。同时,该方法在应用过程中,能够利用动态建模方法,为用户提供一个有效的软件开发过程中,并且这一过程的提出,主要基于历史事件的关联分析基础上。

 

3 结束语

 

综上所述,我们可以看出,软件开发数据在软件开发中将发挥着日益重要的作用。这样一来,把握软件开发信息库数据挖掘技术的应用,使其在软件开发过程中发挥应有作用,成为当下软件开发过程中必须把握的一个重要议题。同时,数据挖掘技术在软件开发信息库中的应用,对未来软件开发领域,也将产生更为积极的作用。

大数据开发的过程范文第2篇

1大数据技术和软件工程技术

大数据技术事实上是将人类日常生活中产生的各种数字信息,将这些信息收集起来之后分类处理,设定不同类别的存储空间,按照类别存储。大数据技术从功能的角度出发可以划分为多个类别,诸如分析技术、机器学习技术、遗传算法技术、自然语音处理技术等。应用大数据技术分析,就是基于当前的科学技术发展起来的一种分析技术。它主要依靠现代科技手段发挥技术的作用,特别网络技术发挥着基础性的作用。整理基础数据,对数据信息进行分类整理,应用相应的计算机算法,将相似特性的数据划分为一类,最终得到大量的数据,应用大数据技术对这些数据进行分析。大数据分析应用于互联网行业中,所发挥的优势是有目共睹的,而且还不断地引入新技术,在软件工程技术中应用,对该技术的发展起到了促进作用[1]。

大数据时代,社会各个领域都已经实现了信息化发展,人们对软件工程的概念越来越熟悉。事实上,软件工程的历史始于20世纪的中期,其研究重点是软件技术和工程管理。将相关工程内容引入其中,使得工程系统化运行,其中所涵盖的研究内容包括软件的生命周期、软件工程设计、软件的技术维护等方面。因此,在软件设计的过程中,要控制好技术开发成本,保证工程质量,使其生命周期不断延长,不同项目的技术需求和用户的各种技术需求都能够得到满足。

2大数据背景下的软件工程基础

处于大数据时代环境中,软件工程的发展中关乎到不同的领域,需要高度重视。大数据技术具有专业性的特点,还具有很强的实用性价值。在软件工程技术的研究中,要从应用需求出发不断创新软件技术,对于传统的技术要不断摒弃,对软件工程的发展创造良好的客观条件。大数据技术环境下,软件工程基础是基于互联网技术建立起来的,对各种数据信息系统化管理,根据需要进行处理,对工业的发展非常有利[2]。在软件工程技术中,大数据的安全性问题是需要高度重视的,否则,就会对软件工程技术造成不良影响,引起严重的后果。

2.1软件服务工程

在软件工程的研究范畴中,软件服务工程的数量不断增多。软件工程服务化方向发展,就是发挥服务的作用,使其成为软件开发的基本原则,按照服务项目内容为用户展开服务。由于软件工程发展的主题有所,服务内容也要做出相应的调整,同城是对软件工程的进行技术维护。在具体的服务工作中,需要软件开发人员使用分布式应用程序,在管理工作中采用虚拟操作的方法为用户2019.08提供服务[3]。软件工程技术应用中,结合使用大数据技术,可以对网络数据进行编程,使得软件具有互操作性,对于数据主动协调,使其符合动态场景的变化节奏,软件系统的集成度有所提高。

2.2软件开源

软件开源更为注重用户对软件技术的体验。在对软件开源进行研究的过程中,采用常规的方法,虽然获得一定的成果,但是应用价值不是很高。一些研究人员在研究软件工程技术的时候,就是将软件开源作为突破口,将开发项目划分为多个模块,将每个模块分给指定的研究人员进行开发。

2.3群体软件工程

群体软件工程是通过网络的方式进行软件开发,具体的实施中采用工程众包的形式,使得软件开发技术发挥作用。群体软件工程是一个分布式软件开发模型,这个工程项目的运行中,可以通过网络实现,对各项任务进行分配,也可以进行创造性的查询,通过众包解决软件开发过程中遇到的一些困难和重要问题。同时,在软件工程开发过程中,软件工程可以在任何阶段通过众包进行开发[4]。

3大数据与软件工程技术的未来发展方向

3.1大数据与软件工程技术开放式的发展

大数据技术的主要前提是大量的数据流,需要技术不断地升级和创新,寻求开发的研究途径是非常必要的。计算机网络的发展意味着计算机可以在开放的环境中相互通信,共享数据资源,软件等信息的有效利用能力也会有所提升。通过网络运行可以增加利润,使得用户的各种需求得到满足,提高资源的利用率。

3.2大数据与软件工程技术融合到其他领域

软件工程技术在当今许多科学领域有着广泛的应用。由于软件工程技术给予各个领域非常大的帮助,从航空到生活中都发挥着软件工程技术的作用[5]。应用程序的运行,可以使用数据平台对信息进行收集并分析。比如,用户在进行股票交易的过程中应用大数据技术,可以使用软件工程技术构建数据模型,通过对数据模型的分析,预测股票的变化趋势。

4众包软件服务工程中的大数据技术

在软件开发过程中,必须有足够的硬件和软件基础来支持数据流,随着数据流的量逐渐增多,对硬件和软件就有了新的要求。专家学者在分析数据流的时候,还对在线服务进行了研究。数据流是重点内容,主要是对数据流的使用方法进行研究,对支撑数据流的软件和硬件进行研究[6]。从软件工程开发的角度而言,软件运行中都会产生大量的数据流,包括服务端、用户端等,都会有很多的数据信息产生,这些数据流对软件和硬件的使用寿命起到了决定性的作用。软件工程的开发中,要做好数据流的管理工作。有必要对原始数据进行深入的研究,为提高软件的使用寿命创造条件,对数据流的分析要高度重视[7]。

5密集型数据科研第四范式

第四种科学研究范式是指根据实际情况建立独立的科学研究方法,探索第四种范式的理论基础,以及大型数据存储设备在发展中的重要性。软件工程中,采用传统的大数据研究方法,大数据的有效分析是不可能的,大数据的研究还没有取得突破性的成果。因此,目前大多数软件不能在短时间内同时实现数据信息的存储、数据信息的传输和有效识别。在探索第四范式理论和研究方法的过程中,首先需要对集成大数据的软件服务价值进行估计,抛弃传统的大数据统计方法,建立新的大数据信息统计方法和分析方法[8]。此外,有必要从多个方面研究大数据的处理,对大数据信息进行管理并深入分析,讨论大数据的价值以及存在的可变性,这对软件工程的发展起着重要的作用。在研究软件工程技术的时候,必须更新传统的软件开发理念,重视软件处理和分析大数据能力的发展,使得软件产业呈现出新的发展面貌。

在当今大数据时代,软件工程技术的研究已经区域复杂。随着数据的指数的不断增长,软件技术对硬件设备数据处理能力产生一定的影响。因此,在对软件工程技术的研究中,就需要对大数据技术的特点进行研究,基于此研究软件工程技术,使得硬件设备的数据处理能力有所提高。在研发开发软件技术的过程中,要从应用领域的需求出发对大数据技术进行分析,在大数据开发理论的基础上创新软件开发理论,促进软件技术更好地发展。

参考文献

大数据开发的过程范文第3篇

关键词:; 连接方式的数据访问; 断开方式的数据访问;DataReader;DataSet

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)03-0013-03

A Discussion on Data Access Mode in

LIN Jia-yi

(Guangdong Communication Polytechnic,Guangzhou 510650,China)

Abstract: In development of .NET database application, how to choose the right data access mode becomes the key problem. This paper firstly technology and two kinds of data access, and then from the three aspects of resource utilization, implementation and usage scenarios, the impact on the performance of system and the execution efficiency in two kinds of access mode is discussed in detail, compared the application effect of a specific example of two access methods, and finally gives a reasonable choice of data access proposal, which has practical reference significance to the development of database application system.

Key words: ; connected data access;disconnected data access; DataReader;DataSet

随着互联网+时代的到来,各行各业正经历着前所未有的管理模式的改变。无论单位规模大小,数据的存储、查询、统计和修改等操作是单位的日常工作中一个重要部分。为了满足目前网络环境下提出的对海量数据处理的新任务,开发应用系统时,软件开发者始终需要将如何加快数据处理的速度和提高数据的利用率放在首要位置。

数据库应用系统的开发作为软件开发的一个主要的分支,已经广泛应用到社会各个领域。大型的数据库应用系统一般采用C/S或B/S架构[1],当前两大主流开发语言系JAVA和.NET都可以在这两种架构上开发系统。.NET作为微软推出的面向Internet的新一代应用程序平台,其中涉及数据库访问的最关键技术是。比起以前的数据库访问技术,在实现程序之间的数据共享上具有优越性,它提供了连接和断开两种数据访问方式。对于这两种方式,以往文献中过多侧重于讨论访问过程,本文则从不同的角度,分析了的两种访问方式的操作执行,具体探讨了两者在查询、增加、删除、修改以及执行存储过程时的差异,并在实际中分别用两种不同的访问方式来实现系统,通过比较来总结出一些经验,这些对我们在开发过程中如何选择数据访问方式提供了一些参考借鉴。

1 相关技术

1.1 NET技术和

1.1.1 NET技术

随着互联网技术的飞速发展,需要开发出大量支持跨平台和多种架构的应用程序。而原有的开发平台已不能适应这种新变化。为了快速开发兼容性更好的大型应用程序,1998年12月,微软公司提出了.NET的新战略。微软对.NET的定义为:.NET是Microsoft面向XML Web服务的平台,它使用一种统一的、个性化的方式将信息、设备和人员紧密地联系在一起[2]。经过近二十年的发展,.NET已经成为当前主流的企业级应用开发平台。

.NET平台的核心是NET Framework。可以从两个角度来解读它,一方面.NET Framework是一个基础工具,用于构建基于互联网平台的各种应用程序;另一方面.NET Framework是一个丰富的类库,用于开发WinForm、Web、、GUI等各类应用程序。

.NET Framework由两个主要组件组成[3]:公共语言运行库(Common Language Runtime,CLR)用于代码编译和执行的集成托管环境,.NET应用程序并不直接和操作系统打交道,而是在CLR上执行,受CLR的管理;.NET Framework 类库,这个类库可以供不同的编程语言调用,诸如C#、VC++、等,从而实现了跨语言编程。

1.1.2

通常我们将数据库应用系统划分为前台和后台两个部分,前台可以用C#、JAVA等多种高级语言实现,后台数据库可以用多种数据库管理系统来创建,常见的有SQL Server、Oracle、DB2和MySQL等。显然,不同的语言访问不同的数据库时,用到的也是不同具体的数据访问方法。为了让前台程序方便访问后台数据库,有必要在它们之间建立一种数据访问模型来统一操作数据库的方式。至上世纪80年代以来,业界上相继出现了ODBC、OLE DB、ADO、JDBC等各种数据访问模型,而伴随着.NET技术出现,微软推出了面向Internet版本的、能高效地连接和访问数据斓哪P。

作为.NET Framework 的一个重要组件,实质上是一个类库,它在很大程度上封装了数据库访问和数据操作的动作。主要包含五个非常重要的类,分别是Connection类、Command类、DataReader类、DataAdapter类和DataSet类。使用访问数据库主要有三大特点。一是跨平台。可以访问多种关系型数据库,也可以是非关系型的数据,比如Email或者XML数据。二是效率高。在断开连接数据库的方式下,应用程序可以直接从临时数据集DataSet中获取数据,大大提高数据访问速度。三是安全性高。可以使用数据库中的存储过程和视图,并结合权限提供安全保障。

1.2 中数据访问方式

相比较ADO、JDBC等其他的数据库访问技术,微软的在数据库访问上处理得更为精细、过程更为复杂。完美融合了数据库中表、存储过程、视图、事务等各方面的应用,特别是对于同出一家SQL SERVER数据库管理系统。随着Internet发展,集成了XML,适应了Web应用程序的开发。面对各种不同数据库应用系统需求,提供了多样性的数据处理方式。根据数据库的使用状态,将划分为两种数据访问方式[4],如图1所示:

1)连接方式的数据访问

首先应用程序创建Connection对象,并设置好连接字符串后打开与数据库的连接,然后通过创建Command对象向数据库服务器发出执行SQL命令的请求,数据库服务器在执行完命令后将结果返回给应用程序。此时如果还需要执行其他数据库命令,就不用再次创建连接和打开连接,只需要用Command对象发出执行SQL命令的请求即可。最后当应用程序不再需要访问数据库时,才关闭数据库的连接。

2)断开方式的数据访问

首先应用程序创建Connection对象,并设置好连接字符串后打开与数据库的连接,然后通过创建与Command对象相关联的DataAdapter对象,通过DataAdapter对象的Fill方法将数据库中需要的数据取出存放在本地的缓存DataSet中,此时自动断开与数据库的连接,随后应用程序直接对DataSet进行相关数据操作,除非需要重新从数据库中取出数据或对将DataSet中的数据更新至数据库时,才会连接数据库。

这两种数据访问方式大量应用在系统的开发中,但是在具体实现中又有多种途径,总结为三种方法。第一种是使用控件,Visual Studio的工具箱中提供了各种控件,通过一次性拖放控件来实现与后台数据库的绑定,并可以在前台的显示控件中操作数据。这是最简单快捷编程方式;第二种是使用对象,在程序中使用对象提供的各种方法完成数据库操作。虽然这种方法需要更多编写代码,但是给编程者有更多拓展空间,编写出满足个性化需求的功能;第三种是混合使用控件和对象,兼顾两者优缺点,可以精简部分代码。

图1 数据访问方式

2 两种访问方式的比较分析

2.1资源利用率

连接方式的数据访问要求在整个程序运行过程中一直要和数据库保持连接。虽然数据库可以支持多用户连接,然而连接的资源毕竟有限,如果让一个数据库长时间连接并处于打开状态,将浪费较多的系统资源,从而会限制应用程序实现更多功能。

断开方式的数据访问则是将应用程序要经常要用到的数据存放在本地的DataSet中,于是应用程序可以直接到DataSet中提取数据,就不再需要与数据库保持连接了,这样可以让别的应用程序有更多的机会使用数据库,提高资源使用效率。

2.2执行方式

1)查询操作

在数据库中执行频率最高的是查询操作。使用SELECT语句执行完后会得到一个结果表,应用程序通过连接和断开两种数据访问方式获取到结果表。

对于连接访问方式,当查询到结果表只包含一个结果值,比如:执行一些带统计函数的SELECT语句,则执行Command对象的ExecuteScalar方法,获得的是一个Object类型值。将该值转换成其他类型后可以直接在程序中使用;当查询的结果表包含一行或多行记录时,则使用DataReader对象,它类似于一个读取数据的指针,指向服务器缓存中的结果表,读取一行数据就处理一行,如果读不到返回false。因此只需要一条数据记录的内存,内存占用非常小,但只能读取结果表中数据而不能对其修改,这种方式速度快。

对于断开方式的数据访问,无论查询的结果集中有一个还是多行数据,始终用DataSet存放。可以把DataSet看成是内存中的一个临时数据库,只要内存够大,可以在里面放一个表或多个表,甚至View都可以。但也有上限要求,DataSet可以容纳不超过十几万条数据。由于DataSet在本地内存中,里面的数据是从数据库中筛选出来的,因此在查找DataSet中数据时,耗时短,访问效率高。

2)增加、删除和修改操作

查询操作不会造成数据库中数据的改变,增加、删除和修改操作会对数据库产生实质的影响。应用程序在两种数据访问方式下更改数据库的具体实现方式截然不同。

连接访问方式下,通过Command对象的ExecuteNonquery方法执行Insert、Delete和Update这些SQL语句。应用程序可以获得执行完SQL命令后数据库受影响的行数,这往往是判断数据库是否修改成功的依据。该方式对执行SQL语句的表没有太多要求,单表或多表都可以。同时整个执行过程简单,一句代码直接即可完成稻菘獾母新。

断开访问方式下,应用程序不能直接修改数据库,只能修改DataSet。如何让DataSet修改后的数据同时反映到数据库中,此时,DataAdapter对象在DataSet和数据库之间架起了一座沟通的桥梁。执行DataAdapter对象的Update方法,会重新连接数据库,使Dataset与数据库实现同步更新。当更新数据库完成后,自动关闭连接。这种更新数据库的方式在应用时有一定条件限制,首先要求必须是针对单个表的操作;其次必须要求操作的表必须定义好主键;最后还要使用SqlCommandBuilder对象来自动产生与DataAdapter相关的修改命令对象Command。该方式具有较大的局限性,代码中涉及对象多,编写相对复杂,因此只是作为一个补充选择方案,实际中应用较少。

3)执行存储过程

将一段SQL操作命令设计成存储过程执行,有利于提高系统安全性,同r减少网络流通量。连接访问方式下执行存储过程首先需要设置Command的CommandType属性,然后将存储过程名赋给CommandText属性,最后根据存储过程返回值的类型选择相应的执行方法。整个执行过程简单,易于编程。断开访问方式下,可以通过设置DataAdapter的SelectCommand属性和调用Fill方法来完成,但是并不是所有的存储过程都可以正常执行,如果存储过程中有修改语句或没有返回值,代码会出问题。只能用于执行特定的存储过程。

2.3适用场景

面对多种访问数据库的方式,在不同的应用中选取合适的数据访问方法显得尤为重要,这直接影响决定着系统运行的效率。一般来讲,连接访问方式比较适合以下的一些场景。场景一:系统部署在一个局域网环境中并采用C/S架构,如果存在大量的查询数据库操作,不需要修改查询结果,DataReader是最好的选择。场景二:系统要求及时反映数据的变化,比如环境、交通监控系统,连接访问这种方式速度快,适用于实时要求高的系统。断开访问方式在下列场景中发挥更好的作用。场景一:系统有大量的用户使用,如果用断开方式,那么只有在更新数据库时才会连接数据库,提高资源利用率。场景二:系统部署B/S的环境中,比如网上办公,电子商务系统。这样先把数据库中所有数据都放到内存,然后都在本地机器中操作。选择用哪种方式也不是绝对的,要根据实际场景将两种方式结合起来,更好发挥各自优势。

3 基于两种访问方式下的应用实例

图2 运动员信息管理界面

以下实例基于C/S架构的学校运动会管理系统,开发中前台采用了Visual Studio2012,后台使用SQL Server2012。选取了其中一个运动员信息管理的编辑界面,如图2所示,分别用两种不同的数据库访问方式实现了查询、增加、删除和修改运动员信息的功能。下面列出了主要步骤代码。

3.1采用连接方式的数据访问

if (type == 1) //添加

{

s = string.Format("insert into athlete values('{0}','{1}','{2}','{3}','{4}','{5}')", txtID.Text.Trim(), txtName.Text.Trim(), cbGender.Text.Trim(), Convert.ToDateTime(txtBirth.Text.Trim()), txtPlaceOfOrigin.Text.Trim(), txtMemo.Text);

}

if (type == 2) //修改

{ … }

if (type == 3) //删除

{ … }

conn = new SqlConnection();

conn.ConnectionString = ConfigurationManager.ConnectionStrings["AthConn"].ConnectionString;

conn.Open();

SqlCommandcmd = new SqlCommand(s,conn);

cmd.ExecuteNonQuery();

3.2采用断开方式的数据访问

if (type == 1) //添加

{

dr = dt.NewRow();

dr["a_athleteid"] = txtID.Text.Trim();

dr["a_name"] = txtName.Text.Trim();

dr["a_sex"] = cbGender.Text.Trim();

dr["a_birth"] = Convert.ToDateTime(txtBirth.Text.Trim());

dr["a_address"] = txtPlaceOfOrigin.Text.Trim();

dr["a_memo"] = txtMemo.Text;

dt.Rows.Add(dr);

SqlCommandBuildersqlBuild = new SqlCommandBuilder(da);

da.InsertCommand = sqlBuild.GetInsertCommand();

}

if (type == 2) //修改

{ … }

if (type == 3) //删除

{ … }

da.Update(ds, "athlete");

ds.AcceptChanges();

dgvStudent.Refresh();

3.3实例分析

在上面的实例中,虽然两种数据访问方式都可以实现相同的功能,但是综合考虑各方面因素,往往会采用芍址梦史绞较嘟岷系哪J健T谑迪纸sportsmeet数据库中的athlete表数据 (下转第22页)

(上接第15页)

查找出来并显示在DataGridview控件的过程中,显然用DataReader读取速度快,但它只能一行行读取数据,也不能直接绑定到显示控件上,因此在这里最好用Dataset直接作为数据源,处理更简单。如果对athlete表数据进行修改,用DataAdapter对象的update方法受限制的条件多,用连接访问方式执行Command命令处理更为合适。综合上述分析,这里我们最好用断开访问方式做查询,用连接的方式做增加、删除、修改。

4 结论

在数据库应用系统开发过程中,我们的目标是追求运行的高性能和提高资源的利用效率。作为访问数据库的.NET技术,使得程序员从原来繁重编码工作中的解脱出来,以更方便、更直观的方式来操作数据。随着LINQ、Entity Framework、 MVC等各种软件开发新技术不断发展,虽然这些技术对简化对数据库操作做了不少改进,但还有很多的新问题摆在面前。例如,如何结合当前大数据云计算技术[5],让.NET应用程序更高效访问数据;如何提高数据库应用程序的可维护性;如何保障数据的安全有效[6];这些还有待不断地探索和研究。

参考文献:

[1] 严勋,孙虎. 企业管理信息系统实现模式研究[J]. 微计算机信息,2007(11):31-32.

[2] 刘晓刚,吴俊峰. C# WEB数据库编程[M]. 北京:清华大学出版社,2010.

[3] 修乾. 基于Web的.NET应用系统开发[J]. 计算机工程,2003(21):185-186.

[4] 庄越,王槐彬. C#程序设计与项目实战[M]. 北京:电子工业出版社,2014.

大数据开发的过程范文第4篇

关键词:大数据;软件工程;群体软件;关键技术

一、大数据时代软件服务工程与群体软件工程

所谓软件服务工程,就是将服务作为主要目标,在应用时需要根据变化不断通过虚拟的手段与分布式手段进行应用,而这种应用方法不仅能够使得软件更加虚拟化,同时也能强化其操作性,与此同时,更能有效解决动态变化与分布变化情况[1]。软件工程在发展过程中能够在大数据领域、云计算中得到更加广泛应用。在网络化、服务化等大环境影响下,软件工程可以得到更好的开放空间。工程师利用数据信息交互、学术交流等多种方式开展合作,对软件进行开发,建设更加具有性价比的软件系统。在软件开发中,目前十分成功的就是开源软件,开源软件的合作模式与结构都是当前学术界最看重的,然而当前常规研究方式却未能实现较大突破。很多学者开始尝试利用网络分析方法对数据进行有效分析,在一些规模较大的开发项目的开发人员中,开发者占据绝对优势,并且模块化特征更加明显。和群体软件工程相比,开源软件有较弱的发展态势,而群体软件工程主要是倡导利用众包形式进行开发。

二、大数据时代众包软件服务工程

(一)创新发展态势

众包软件服务工程作为国际各国都密切重视的一种流式数据处理与集密数据处理方式,特别是在服务中对产生的各项数据尤为重视,如何才能将这些密集型数据的存储设施、平台、价值分析等作为服务对象,是当前大数据软件工程在研究过程中的难点与重点部分。从最开始的服务消费,到后来的众包服务开方,随后再到软件平台管理,运营方都由在线流式数据和离线密集型数据组成。当前开发者版本级别达到GB级别,众多用户数据能够达到PB级别,在线沟通数据更是能达到TB级别,利用直接推送功能可以左右软件服务时间,对软件产生关键性作用与影响[2]。

(二)软件生产开发、运营与管理

密集型数据,因为他们本身固有的动态分布形式、动态交互、复杂演化、动态分配、价值隐藏等,都能够体现大数据的最原始行驶情况。从本质角度来看,这些数据仅仅是用于描述内容模量,但是没有具体含义,并且缺乏语义化作用。想要对其进行创新,必须打破原有的研究方法与思维,将密集数据作为主要材质课题,并且将其看作是研究的主体,在主体领域,大数据所在流域与主体专家需要制造,传播大量的数据。他们不仅是大数据的群体用户,还是最主要的消费者,同时也担任着运营和管理的作用,能够将群体智慧汇到一起,逐渐形成系统化的领域和主体知识。将这些知识作为核心与基础,对研究密集型数据相对应的信息学过程与生命周期进行研究,并且及时推送相应的服务期限,研究数据内容的相关语义和标志,最终赋予其相应的矢量。组织主体部分构建价值服务机制与知识体系,在研究和互通过程中,利用操作式管理方式将关键技术应用在密集型数据上,这些都能展示出众包软件工程发展内容。

三、大数据背景下关于信息处理技术发展情况

与传统数据形式相对比可知,在大数据时代下能够实现各项数据相互联系,并且这些相互关联的结构,能够利用当前所有的框架,对数据进行及时且有效的处理。将硬件作为基础,通过该基础搭建的网络存在相应局限性,并且制约了网络的性能和发展,因此需不断探索与创新网络架构技术,以此实现大数据技术的提高。在日后发展过程中,计算机网络必须为其提供开放式的结构与传输功能,将计算机网络信息处理与软件基础、硬件基础分开使用,随后对网络架构进行定义。相关网络软件使得我国网络技术朝着更高水平发展,随着大数据时代的不断深入,计算机能够实现网络、硬件、软件融为一体,并且产生出新的网络结构,能够为大数据时展提供重要理论与实践意义。这种形式不仅能够突破传统计算机在处理信息时因为网络所带来的限制,同时也能使计算机处理技术开发与应用形式打破单一情况,逐渐朝着多元化方向不断发展。

大数据开发的过程范文第5篇

关键词:软件开发;数据库设计;重要性;理论;实践

中图分类号:TP文献标识码:A文章编号:1673-9671-(2012)042-0136-02

随着计算机科学技术迅速发展,互联网的日益普及。人们对软件产品的要求日益提高,尤其软件开发企业对软件产品的要求越来越高。作为一门应用性很强的学科,数据库技术是目前在软件开发中应用越来广泛,软件开发中数据库设计理论实践研究也越来越受到业界人士的注重。

1软件开发中数据库设计的重要性

在软件开发过程中,一般会分为五个阶段,即需求分析、软件设计、软件编码、软件测试和对软件的维护。在具体的设计阶段,首要的任务就是设计出模块的程序流程、设计出算法和数据结构,次要的任务是对数据库进行设计。数据库技术作为信息处理的重要方式,在各种各样的软件开发中,大多数的软件开发都要运用数据库技术,进行数据库设计,管理信息系统的开发就是典型表现。通常,数据库的设计主要是指根据不同用户的不同需求,在一定的数据库管理系统的基础上来实现通过设计出的数据库的结构并建立起数据库的过程。它是建立数据库及其应用系统的一种很强的技术,所以,数据库设计是信息系统的开发和建议中的一项核心技术。因为Visual C++具有强大的处理图像能力与强大的计算数值能力,同时其具有良好的面向对象特性,因此其成为全球内各种各样的机械工程软件系统的主要开发工具。同时,在开发这些软件时,常常要进行许多数据线图与数据表格的处理查找的工作,若在每次运行程序过程中,都是人工查找这些数据,不仅使用户有了许多麻烦,也使开发出来的软件表现的相当不专业。此时运用数据库编程技术,能够把许多的数据及数据表格事先存储起来,当需要使用某个数据时,可以通过数据库进行查找,还能够把用户设计过程中需要的某些设计数据存储起来,使后续设计过程更加方便,进而使软件产品生产的速度以及质量得以提高。由此可见,在软件开发过程中,数据库设计是相当重要的。

2软件开发中的数据库设计的理论分析

1)Visual C++系统能够支持许多种DBMS(数据库管理系统),很多数据库管理系统都有SQL语言接口,同时SQL语言能够在Visual C++系统中直接运行。Visual C++系统对数据库有了全方位的支持,能够和Vsual Basic以及Fox Pro等许多系统软件相媲美,同时在对一些特性的支持上,Visual C++甚至比这些技术更完美。在用Visual C++开发的应用程序时,一方面应该访问数据库;另一方面能够把Visual C++作为数据库应用程序的前端开发工具运用。Visual C++中应用最广泛的就是ADO技术和ODBC技术,ADO是Microsoft公司推出的产品,以保证在Internet网络上数据库的,能够使远程数据访问复杂性降低,可以使数据库得到高效访问。在ADO编程上,其更方便,更简单,数据源和前端之间的网络通信最小。同时ADO能够进行高性能以及一致的数据访问,可以满足各种各样的软件开发要求。

2)在进行数据库与数据库管理系统的设计时,必须重点考虑数据模型。当进行数据模型的选择时,以下几个因素至关重要:数据模型因素,根据不同的应用需要,应该选择相关的数据模型,在一般情况下,应用者往往希望采用关系模型,由于该模型是非过程的,当用户给出需要查询的条件时,无须考虑实际的物理存储路径等因素,就能够得出正确结果,使用起来极其方便,但是在大型数据库管理系统中,应该优化查询,使关系模型中查询的效率得到提高,比如在公路设计中,分析管理内容,发现其实体间的关系不复杂,能够采用扩展关系模型(关系表加指针);数据库结构因素,根据实际情况的分析设计,能够确定具体的数据库系统结构;管理对象因素,根据实践情况,要把数据库中的实体进行分类,同时保证每个实体都有非几何数据及几何数据;数据操作因素,当进行数据库操作时,按照实践情况的要求,操作并存取某个图形,把图形作为整体进行处理,简单的接口程序使应用程序更具有灵活性,运用整体图形,能够减小指针占有的存储空间。

3数据库设计的几个原则

3.1命名的规范化

我们知道,不一样的数据库产品对于对象的命名是有不同要求的。在数据库设计中,对于各对象的命名以及在编写后台程序的代码上都应采用大小写的字母形式,命名长度不超过30个

字符。

3.2慎用游标

对大表或者多表定义的游标,即大的数据集合而言,程序中使用游标逐行遍历数据线,容易导致进入了漫长的等待或挂起状态,使用游标,我们可以创建一个临时表,那些符合条件的满足的数据 转换成临时表中的行,临时表定义游标操作,这样做可以大大提高游标的性能。

3.3索引的使用

显然,索引一般是用于快速访问表中的数据。通常,大型的数据库会有两种索引,一种是簇索引,一种是非簇索引。无论是添加哪一种索引,都可以使按索引列查询的速度大大提高,虽然在速度上有所提高。但是在插入、更新、删除等操作上性能会有所降低,特别是在填充因子比较大时,降低效果更明显。因此,对索引较多的表进行频繁的插入、更新、删除操作时,在对于表和索引的建立上,应该设置较小的填充因子。这样才能方便在各项数据页中留下足够的自由空间,以减少页分割或重新组织的工作量,才能够有效提高性能。

3.4数据的完整性和一致性

为了有效保证数据库的完整性和一致性,通常设计人员会设计比较多的表间关联,以最大程度地降低数据的冗余。由于表间的关联是一种强制性的措施,所以建立表后,对于父表和子表的插入、更新、删除等操作都会占用系统整体的开销。还有,尽量不要选用Identify属性的字段作为主键与子表关联。另外,为了能够很好地提高系统的响应时间,选择合理的数据冗余也是很有必要的。

3.5事务的使用

事务一般是要一次性完成的操作。这些操作都是单个的操作,但数据库系统可以保证事务这一组操作全部完成或者一点都不做。大型数据库的这一优越特性,使数据的完整性在很大程度上得到了保证。

3.6数据库性能的调整

在网络设计和计算机硬件配置确定的情况下,影响应用系统性能的因素主要是客户端程序设计和数据库性能。大部分的数据库设计员都会采用两步法开展数据库设计。具体的设计步骤是:首先是逻辑结构设计,其次进行物理结构设计。逻辑结构设计,有效地遏制冗余数据,可以大大提高数据吞吐率,从而确保数据的完整性,清楚地表达数据元素之间的关系。对于一个关系查询表,其性能可能会降低,但也提高了客户端编程的难度。因此,需要在物理结构设计中妥协,按业务规则,以确定关联表的数据大小,数据访问频率,这个数据表上频繁关联查询应适当提高数据冗余的设计。

3.7数据类型的设计

数据类型的合理选设计会在很大程度上影响到数据库的性能和操作。因此,要根据数据库具体的要求与规则设计合适并合理的数据类型。

4软件开发中的数据库设计的实践分析

以下以图书管理软件开发中的数据库设计为例进行了分析。

1)应该重视系统的总体设计,在进行软件编制时,系统的总体设计相当重要,不仅与软件项目顺利开展的进度有关,还与是否可以达到预期的项目开发的要求有关,下面我以图书管理软件开发为例简单进行说明。

2)首先我们对图书管理软件所涉及的数据类型和结构进行详细的分析,按照上述的设计思想,共设计了如下的多种表,例如:读者表,书目表,馆藏表,流通表等。然后创建视图和存储过程。

①读者表:JNO(借书证号),NAME(姓名),UNIT(单位),Readership(读者类别)等字段,关键字为JNO(借书证号)。

②书目表:Collection No(馆藏号),ISBN,Title(题名),Author(作者),Press(出版社),Language(语种),Type(文献类型)等字段,关键字为Collection No(馆藏号)。

③馆藏表:Collection No(馆藏号),Type No(分类号),Kinds of times No(种次号),Collection location(馆藏位置),Unit price(单价),等字段,关键字为:Collection No(馆藏号)。

④流通表:JNO(借书证号),Collection No(馆藏号),Bdate(借期),Rdaye(还期),Renew(续借),Yhdate(应还期),Operator(操作员)等字段,关键字为:JNO(借书证号),Collection No(馆藏号)。

⑤借阅规则表:Readership(读者类别),Book Category)图书类别),Limited(限借册数),Days(每期天数),Xdays(续借天数),Fine calculation(罚金计算)等字段。

⑥图书类别表:Book CategoryNo(图书类别编码),Book Category(图书类别)等字段。

建立索引是加快查询速度的有效手段,数据库的每一个表建立了主键,主键由一个或几个字段组成,每一个表都按主键建立了索引,部分表为了满足查询和排序的需要,除建立主索引外,还建立了次索引。例如在查询时要用到“馆藏号”、“作者”、“题名”等条件来查找图书,因此,在书目表上除了对主键“馆藏号”建立了主索引外,也对“作者”、“书名”等建立了次索引。由此可见,这种从属关系的建立不但对空间从属关系进行了考虑,而且考虑到了时间上的顺序。同时在关系数据库中,数据在各个表中保存,按照主键与外键的关系,各个表之间能够建立关系。再对各属性对象的数据库表进行设计,此时可以对属性数据进行储存,并对它们之间的从属关系进行描述,创造了进行下一步查询的条件。

3)合理实现单文档以及多窗口视界面,在该图书管理软件开发中,对单文档以及多窗口视界面结构进行了设计,其不仅具备多文档界面的风格,还能够使多个输入的Form View同时打开,可以进行随时切换,使数据查看与录入更加方便。当用户在输入某图书进行数据查询时,该图书的属性窗口能够被看到。同时图书管理软件必须具备强大的容错功能,当用户误操作以及误输入时,其能够自动提示并取消输入。

5总结

随着科学技术快速发展,人类对各种软件开发的需求日益增加,软件开发中的数据库设计也越来越重要。显然,使整个数据库的设计更加的工程化、规范化和便捷化将是我们今后要不断去争取做好的。未来数据库设计的研究方向是数据库设计理论方面的内容,通过完善的理论研究来建立起准确的模型,在整个数据库的设计中充分体现出其先进的思路和方法,最终达到数据库的设计更加的工程化、规范化和便捷化的目的。

参考文献

[1]石红兵,曾学贵,魏庆朝.勘测设计一体化软件开发过程中数据库的设计[J].公路,2000,10.