关键词:二次采集数据迁移
关键词:二次采集数据迁移
开发井源头数据迁移是指将开发井的单井地质资料数据从录井源头数据库中通过二次采集、数据迁移技术同步或定时迁移到需方的数据库中。此项技术由地质录井公司于2008年开始推广。目前,迁移系统正在为孤岛、河口、石油开发中心、孤东、桩西、东辛、滨南、鲁胜8个采油厂提供服务,已迁移4000余口井的数据。此项工作不仅为采油厂开发数据库建设提供了便捷、高效、准确的服务,也极大地提高了数据库信息的利用率
开发井源头数据迁移是指将开发井的单井地质资料数据从录井源头数据库中通过二次采集、数据迁移技术同步或定时迁移到需方的数据库中。此项技术由地质录井公司于2008年开始推广。目前,迁移系统正在为孤岛、河口、石油开发中心、孤东、桩西、东辛、滨南、鲁胜8个采油厂提供服务,已迁移4000余口井的数据。此项工作不仅为采油厂开发数据库建设提供了便捷、高效、准确的服务,也极大地提高了数据库信息的利用率
1 开发库录井信息应用现状
1 开发库录井信息应用现状
目前,油田数据库分为勘探、开发两大类,各有自己的数据标准、有自己的管理方案,并运行着相对应的管理系统。录井数据库隶属于勘探一路,信息涵盖单井基本信息、地质地层、岩性剖面以及地层含油性等全套录井过程及成果信息,还包含部分与录井解释相关的钻井、测井等信息,是勘探开发综合研究、生产决策应用的基础。自2006年开发井录井仪以及《录井现场资料处理系统》广泛使用以来,录井信息库除探井信息外还包含了大量的开发井信息,并通过不断改进,使得数据库的信息结构更趋合理、完善。然而这些宝贵资源在完成录井资料整理后,就只有提交勘探数据库,录井库中生产井信息便被束之高阁,造成极大的浪费。
目前,油田数据库分为勘探、开发两大类,各有自己的数据标准、有自己的管理方案,并运行着相对应的管理系统。录井数据库隶属于勘探一路,信息涵盖单井基本信息、地质地层、岩性剖面以及地层含油性等全套录井过程及成果信息,还包含部分与录井解释相关的钻井、测井等信息,是勘探开发综合研究、生产决策应用的基础。自2006年开发井录井仪以及《录井现场资料处理系统》广泛使用以来,录井信息库除探井信息外还包含了大量的开发井信息,并通过不断改进,使得数据库的信息结构更趋合理、完善。然而这些宝贵资源在完成录井资料整理后,就只有提交勘探数据库,录井库中生产井信息便被束之高阁,造成极大的浪费。
由于生产研究的需要,开发数据库中涵盖了部分录井业务相关的数据表。地质所采油矿的方案编制、生产运行及管理措施、井位设计、新区方案部署过程中,需要用到大量录井信息,现在技术人员只能通过录井生产网页查看随钻信息或找现场录井队要,有时根本找不到,需要查找纸质报告,这些已在录井数据库中存在的信息在采油厂却需要开发人员再次重复录入,不仅增加了开发数据库管理人员的工作量,而且录入过程中也极易产生数据错误,增加了数据管理和使用的难度。给应用人员带来了许多不便。在找到资料的情况下,也是以文件方式各自存放,既不便管理,更不便共享。
由于生产研究的需要,开发数据库中涵盖了部分录井业务相关的数据表。地质所采油矿的方案编制、生产运行及管理措施、井位设计、新区方案部署过程中,需要用到大量录井信息,现在技术人员只能通过录井生产网页查看随钻信息或找现场录井队要,有时根本找不到,需要查找纸质报告,这些已在录井数据库中存在的信息在采油厂却需要开发人员再次重复录入,不仅增加了开发数据库管理人员的工作量,而且录入过程中也极易产生数据错误,增加了数据管理和使用的难度。给应用人员带来了许多不便。在找到资料的情况下,也是以文件方式各自存放,既不便管理,更不便共享。
油田开发生产一体化建设和基础性建设,对油藏开发生产提出了更高更细的要求。随着现代信息技术的迅速发展,网络平台和数据库建设逐渐完善,不同开发组织,单元和个人,一线生产和后勤科研之间,更加高效的沟通,协同生产成为可能。
油田开发生产一体化建设和基础性建设,对油藏开发生产提出了更高更细的要求。随着现代信息技术的迅速发展,网络平台和数据库建设逐渐完善,不同开发组织,单元和个人,一线生产和后勤科研之间,更加高效的沟通,协同生产成为可能。
在油田信息化发展的基础上,按照采油厂、油公司的要求,录井公司自2008年实施了开发井源头数据迁移工作。该迁移过程从信息录入着手,合理调整数据库结构,通过数据接口程序,在录井完井数据库中进行二次采集,最后运用迁移程序将合格的信息迁移至需方的开发数据库中。
在油田信息化发展的基础上,按照采油厂、油公司的要求,录井公司自2008年实施了开发井源头数据迁移工作。该迁移过程从信息录入着手,合理调整数据库结构,通过数据接口程序,在录井完井数据库中进行二次采集,最后运用迁移程序将合格的信息迁移至需方的开发数据库中。
2 数据迁移的方法研究
2 数据迁移的方法研究
开发数据库与录井数据库在结构上和数据库类型上都不同,要进行其间数据迁移,必须有专门的工具软件,经综合分析,可由录井现场资料处理软件、数据接口软件、迁移软件组成系统来实现。
开发数据库与录井数据库在结构上和数据库类型上都不同,要进行其间数据迁移,必须有专门的工具软件,经综合分析,可由录井现场资料处理软件、数据接口软件、迁移软件组成系统来实现。
首先对录井源头采集和开发井所需数据进行数据源对比,完成录井现场资料处理软件升级。由于录井数据库与开发数据库内容上的差异,为确保信息量上满足开发数据库需求,必须从源头上做起,由此按照开发数据库的数据需求对录井现场资料处理软件进行升级,基本满足了开发数据库的入库要求。
首先对录井源头采集和开发井所需数据进行数据源对比,完成录井现场资料处理软件升级。由于录井数据库与开发数据库内容上的差异,为确保信息量上满足开发数据库需求,必须从源头上做起,由此按照开发数据库的数据需求对录井现场资料处理软件进行升级,基本满足了开发数据库的入库要求。
其次在录井中间库上编写了一些数据接口程序,对应开发表进行二次采集.由于录井数据库与开发数据库在结构与内容形式上的差异,本系统过在录井服务平台上建立中间数据库表,开发重新进行数据定位的接口软件,如开发的YS_DAA02、YS_DAA02C等表。在接口软件中,以目标库数据表为依据,在源头库多个数据表中搜集、整理出相关数据,通过各种类型上、逻辑上、表现形式上的转换,达到再次采集的目的,即二次采集,从而实现了异构数据库间的数据对接。
其次在录井中间库上编写了一些数据接口程序,对应开发表进行二次采集.由于录井数据库与开发数据库在结构与内容形式上的差异,本系统过在录井服务平台上建立中间数据库表,开发重新进行数据定位的接口软件,如开发的YS_DAA02、YS_DAA02C等表。在接口软件中,以目标库数据表为依据,在源头库多个数据表中搜集、整理出相关数据,通过各种类型上、逻辑上、表现形式上的转换,达到再次采集的目的,即二次采集,从而实现了异构数据库间的数据对接。
最后一步是编写迁移软件,实现开发井录井源头数据的迁移。迁移软件采取了DotNet DBType数据类型作为中间对应类型,解决了录井SQLSERSER数据库与开发ORACLE数据库间的衔接问题。将中间数据库开发的接口软件定制为作业,实现复杂过程的定时更新,针对目标表建立的一个具体迁移过程作为任务,在调度管理中设置调度信息与已有的任务相关联。实现录井数据每日定时向开发数据库迁移、作业与调度的应用实现迁移过程的自动化。
最后一步是编写迁移软件,实现开发井录井源头数据的迁移。迁移软件采取了DotNet DBType数据类型作为中间对应类型,解决了录井SQLSERSER数据库与开发ORACLE数据库间的衔接问题。将中间数据库开发的接口软件定制为作业,实现复杂过程的定时更新,针对目标表建立的一个具体迁移过程作为任务,在调度管理中设置调度信息与已有的任务相关联。实现录井数据每日定时向开发数据库迁移、作业与调度的应用实现迁移过程的自动化。
3 源头数据迁移的意义
3 源头数据迁移的意义
开发井源头数据迁移是录井数据库深化应用的先例,实现了信息管理的创新。它的目的建设目标就是建立一套系统,能够将开发数据库所需要的完井地质资料实时录入和远程传输,并通过数据迁移软件实现录井中心数据库与开发数据库数据资源的对接与应用,保证了开发数据库与现场录井数库库的同步,保证数据源头的唯一性,提高了数据流通效率,减少了开发数据库重复录入数据的工作量,让录井数据库直接服务于开发生产、研究。
开发井源头数据迁移是录井数据库深化应用的先例,实现了信息管理的创新。它的目的建设目标就是建立一套系统,能够将开发数据库所需要的完井地质资料实时录入和远程传输,并通过数据迁移软件实现录井中心数据库与开发数据库数据资源的对接与应用,保证了开发数据库与现场录井数库库的同步,保证数据源头的唯一性,提高了数据流通效率,减少了开发数据库重复录入数据的工作量,让录井数据库直接服务于开发生产、研究。
它的实现具备了以下意义:
它的实现具备了以下意义:
首先,是通过数据迁移,完成数据源共享。
首先,是通过数据迁移,完成数据源共享。
其次,利用数据库迁移软件可以将所钻井录井数字信息转换、迁移到采油厂勘探开发数据库,可实现单井资料自动入库,实现开发数据库源头数据采集、录入工作。既便于管理,又节省了采油厂这方面的费用,大大提高了工作效率。
其次,利用数据库迁移软件可以将所钻井录井数字信息转换、迁移到采油厂勘探开发数据库,可实现单井资料自动入库,实现开发数据库源头数据采集、录入工作。既便于管理,又节省了采油厂这方面的费用,大大提高了工作效率。
再次,系统运行后,保证了录井数据库、开发数据库同类信息的一致性。从源头上实现勘探开发信息一体化。同时提高了数据的准确性和系统性。
再次,系统运行后,保证了录井数据库、开发数据库同类信息的一致性。从源头上实现勘探开发信息一体化。同时提高了数据的准确性和系统性。
最后,由于这种迁移的自动性,保证数据入库的及时性,为采油厂的开发研究人员及时把握新信息,提高工作效率的提供了更大的帮助。为开发研究人员、生产管理人员高效完成井位设计、方案设计、新区方案部署提供有力的帮助,进一步促进录井公司与各采油厂的协作。
最后,由于这种迁移的自动性,保证数据入库的及时性,为采油厂的开发研究人员及时把握新信息,提高工作效率的提供了更大的帮助。为开发研究人员、生产管理人员高效完成井位设计、方案设计、新区方案部署提供有力的帮助,进一步促进录井公司与各采油厂的协作。
今年,在公司领导的大力支持和经营科的组织协调下,在信息中心技术人员的积极努力下,开发井源头数据迁移作为公司的重点推广项目取得了很大的进展。数据迁移工作新增了东辛采油厂、鲁明公司、滨南采油厂、鲁胜公司、纯梁采油厂四家采油厂迁移关系,前不久,公司又召开了东胜公司源头数据迁移推介会,加上原来的河口采油厂、孤岛采油厂、孤东采油厂、桩西采油厂和石油开发中心,开发井源头数据迁移目前已覆盖了油田范围60%的采油厂。
今年,在公司领导的大力支持和经营科的组织协调下,在信息中心技术人员的积极努力下,开发井源头数据迁移作为公司的重点推广项目取得了很大的进展。数据迁移工作新增了东辛采油厂、鲁明公司、滨南采油厂、鲁胜公司、纯梁采油厂四家采油厂迁移关系,前不久,公司又召开了东胜公司源头数据迁移推介会,加上原来的河口采油厂、孤岛采油厂、孤东采油厂、桩西采油厂和石油开发中心,开发井源头数据迁移目前已覆盖了油田范围60%的采油厂。
4 源头数据迁移应用发展规划
4 源头数据迁移应用发展规划
挖掘现有信息资源潜力,拓宽应用领域,努力追求录井信息应用效果最大化,创造效益。
挖掘现有信息资源潜力,拓宽应用领域,努力追求录井信息应用效果最大化,创造效益。
4.1 数据审核:为使迁移数据能在采油厂得到应用,以带动录井信息在油田范围更广泛应用,促进录井生产,迁移审核软件正在研发中。该软件兼具查看与修改功能,可在审核的同时补入综合表中由开发产生的数据项。
4.1 数据审核:为使迁移数据能在采油厂得到应用,以带动录井信息在油田范围更广泛应用,促进录井生产,迁移审核软件正在研发中。该软件兼具查看与修改功能,可在审核的同时补入综合表中由开发产生的数据项。
4.2 建立迁移数据查询软件。设计针对迁移中间数据库的查询软件,让迁移数据在入开发库前就可以使用。由于中间库既包含开发表,又包含录井数据表,不仅可以方便开发人员应用,同时也可供我们的研究管理人员查询。
4.2 建立迁移数据查询软件。设计针对迁移中间数据库的查询软件,让迁移数据在入开发库前就可以使用。由于中间库既包含开发表,又包含录井数据表,不仅可以方便开发人员应用,同时也可供我们的研究管理人员查询。
4.3 各类应用辅助软件研发。在广泛调研的基础上,综合应用录井数据库、开发井数据库信息,进行勘探开发生产研究过程录井信息应用辅助软件研发,让录井信息发挥更大的效益。
4.3 各类应用辅助软件研发。在广泛调研的基础上,综合应用录井数据库、开发井数据库信息,进行勘探开发生产研究过程录井信息应用辅助软件研发,让录井信息发挥更大的效益。
关键词 :软件工程;数据;挖掘技术
软件工程数据挖掘技术是指在海量数据库内使用已有的技术或新的数据挖掘算法,通过选取、分析、表述等一系列步骤,为软件开发者收集有价值信息的过程。为清晰掌握并管理软件开发的过程,软件开发商必须收集所需的数据,这是行业软件开发的惯例。想要完成上述工作,必须从大量的数据内提取所需的数据信息,收集和选取信息的过程就是数据挖掘过程。目前,数据挖掘技术在软件工程中得到广泛的应用,本文将介绍数据挖掘技术的相关知识及在软件工程的应用情况。
1、数据挖掘技术的分类及标准
1.1 数据挖掘的概念及其分类
数据挖掘是由海量数据中获取所需的有价值的数据信息,这一过程被称作“挖掘”或“捕捞。”数据挖掘就是验证驱动分析办法转向驱动分析数据。对驱动进行验证时,用户可以假设信息的存在,随之进行收集和分析,逐步验证原有假设成立。现阶段,数据存储规模极大、有一定的复杂性,单单采用验证驱动法无法把数据库所有的可用数据充分挖掘出来。发现驱动方法能够对海量数据实时有效的筛选,并自动化识别内部所隐藏的有用信息。进行数据挖掘过程中,对信息进行收集能帮助改进自身产品,所以进行数据收集时要使用各种软件度量标准[1]。数据挖掘技术主要可以分为:分类树技术、聚类技术、人工神经网络、关联技术、可视化数据挖掘技术等等。软件度量数据一般具有高耦合性、多维度的特点,软件工程进行数据挖掘时通常使用统计分析、神经网络、回归建模等特殊处理技术,实际应用中,挑选哪一种挖掘技术,对软件工程实践达到理想目标有重要影响。
1.2 软件工程度量标准
随着软件朝着工程化、大型化不断发展,开发者在这部分数据内获得有价值信息的难度明显增加。基于这种情况,软件开发者使用浏览文档、代码等传统方法,取得软件开发需要的数据信息这一方法已无法满足时展需求。软件开发商进行项目开发时,慢慢的把监测和控制软件过程中的各项指标实施量化处理,确保用户能够清晰了解产品整个开发过程。现阶段,度量数据受到更多的重视和关注,软件工程度量必须与数据收集、分析等过程合理结合[2]。设计产品的图表具有多样性的特点,一般采用静态形式进行描述,而图表会因时间的改变而变化,如此导致度量数据实际运用时受到一定的限制。例如:多数图表即使能清晰反应整个产品的生产过程及质量,但却无法当做有利的判断依据。软件工程因其在众多数据上的特殊性,为深入研究数据挖掘带来一定的制约和影响。
2、数据挖掘技术的基本操作流程
通常情况下,数据挖掘技术主要分为以下步骤:挑选数据、预处理、进行数据挖掘、吸收数据。数据挖掘过程具有交互性的特点,有时或许要再次选择数据或要对预处理过程进行改进,基于上述情况,进行数据挖掘时必须设计反馈环。数据挖掘的首要任务是把管理与目标反映至多个挖掘任务内,整个实现过程主要分为以下步骤。①评估产品:产品评估就是对软件产生的生产过程[3]。资源属性实施相对应的检查,且必须根据资源的各类属性,对未知属性进行赋值,必须注意所用的未知属性要进行量化处理,整个评估工作完工后,要对获取的属性值实施预测。②关联属性:关联发现可以识别某一内容中相互存在的关联属性。例如:可以把找到的软件开发属性与产品属性相关联的点找出来。③聚类过程:把某个结构不同的群体划分至另一个拥有相同结构的子群集合内,这一操作称为聚类过程。④数据可视化处理:数据可视化处理就是采用可视化方法对复杂信息进行描述,并对描述的内容进行可视化数据探查,使用数据可视化交互控制对海量数据进行分析和检视[4]。软件工程数据挖掘具体操作过程均满足一般性数据挖掘技术或领域的要求,通常来说,数据挖掘过程主要包括:数据预处理、挖掘、结果评估三个部分,数据挖掘流程如图1所示。数据预处理就是把没有加工的数据转换为适应挖掘出来的形式。预处理过程牵涉各种来源、格式的数据,把非格式的数据转变为格式化数据后,选取与目前数据挖掘任务相关的记录及特征,对数据进行清洗达到消除噪声的目的。挖掘操作就是在海量数据内找出反应本质性或规律性的信息。整个挖掘过程使用一系列的算法,挖掘任务包含频繁序列、关联规则、异常检测等方面的内容。结果评估是对用户展现有用的信息,难点之处为人所理解的信息与计算机理解、表达的信息由一定的差异,数据挖掘能便于人们进行理解。结果评估主要由:模式过滤、模式表示两个步骤,基于不同的设计任务,数据挖掘算法包括分类、估值与预测、聚类、异常检测等步骤。
3、软件工程数据挖掘发展中存在的问题
软件工程数据挖掘的操作过程与传统数据挖掘有一定的相同之处,这是数据挖掘技术的一种特殊形式,该过程主要有预处理、数据挖掘、评估结果三个环节。软件工程数据挖掘对比传统数据挖掘有自身的特殊性,其表现如下:
3.1 数据复杂性更大
软件工程数据不单有软件报告及版本信息等相关的结构化数据,也包含大量的代码、注释这一类的非结构化数据。这两种不相同的数据结构无法采用同一算法展开运算,这两类数据信息又具有极为重要的联系,导致整个工程的数据复杂性明显增大。
3.2 分析结果具有特殊性
传统数据挖掘得到的结果一般通过多种结果形式呈现出来,例如:报表、文字等,软件工程数据挖掘不单单要为用户提供相应的统计结果,也必须给开发软件人员提供详细具体的例子,为其设计结构提供所需的信息。所以,软件工程挖掘会对新型的数据结果提交相应的方法[5]。
3.3 结果评价无法统一
传统数据挖掘技术已经形成相对成熟的评价指标,但从软件工程数据挖掘的角度来说,软件开发人员所需的信息具有复杂性、具体化的特点,相对应的表示方法也呈现多样化,彼此之前无法展开比较,就很难得出相对统一的评价结果。因此,软件工程数据挖掘的难点是在数据预处理和表述挖掘结果这两个环节,深入分析软件开发过程中出现的问题并进行有效解决尤为重要。
4、软件工程数据挖掘技术的发展探讨
近些年,数据挖掘技术被广泛应用在软件工程中,在软件工程内运用数据挖掘能提升软件系统的维护效率,也在一定程度上增加系统的稳定性。
4.1 编程中的数据挖掘
编程作为开发软件的重要内容,对代码进行编写时,开发者要充分理解需要编程代码的结构与功能,根据自身的理解在数据库内选出有价值的信息。通常编程需要的信息分为以下部分:①开发软件者在已有代码库中找出与需要的代码结构、功能相似的、可以重用的模式,如数据结构、对象、方法等等[6];②开发者能够在数据库内找到重用某模式的静态规则,例如:类的方法、继承关系等等;③开发者深入了解分析重用模式的规则,如:API调用顺序。
4.2 开发开源软件的数据挖掘
开源软件是指源代码开发的软件,这一种软件是一种免费为客户提供服务的模式,这是因其免费性的原因,对开源软件的管理和控制比较困难,此时采用数据挖掘技术能提升开源软件的质量。如:牛津大学设计的数据挖掘系统,可以实时跟踪并管理系统的使用者,在一定程度上提升开源软件的使用效率。
4.3 程序代码中使用的数据挖掘
程序代码就是指克隆代码,这种代码是采用复制、粘贴操作可以重复使用的代码。在克隆代码内使用数据挖掘进行检测也比较早,对于克隆代码进行检测主要采用以下形式:文本对比法、基于度量方法、使用潜在语义索引等办法。但在克隆代码内使用数据挖掘还不够成熟,主要因数据挖掘时必须把语义挖掘考虑其中[7]。同时,要对横切关注点进行挖掘,横切关注点使用的挖掘方式较多,例如:对代码文本进行分析过程中,能根据不同的特点划分为基于文本与类型的分析、基于聚类分析法、形式概念分析法等。分析调用关系时候,可以使用扇入分析技术或基于耦合与Page Rank度量办法展开数据挖掘。
4.4 检测软件故障使用数据挖掘技术
数据挖掘技术可以根据程序的执行经历挖掘至程序的规约及交互模式中,从而准确定位和检测软件故障。程序说明中的挖掘技术是指为信息跟踪实施逆向建模,从而强化程序的理解及相应的维护工作。现阶段,通常使用的挖掘方式主要包括基于规则和自动化挖掘这两种形式。基于规则挖掘是根据程序行为找寻相应的规则并采用时态逻辑进行表达,自动化挖掘方式是发展比较成熟的API规则挖掘方法。传统定位软件故障是使用程序切片,这种方式比较复杂,容易出现故障定位不准的情况。随着传统定位方式的逐步改进,目前使用比较成功的是采用程序谱抽象描述程序运行轨迹,并把运行正常的软件与故障运行状态进行对比,根据两者的差异判断故障来源,这些新型的数据挖掘技术能有效提升软件故障检测的准确率和效率。
4.5 软件管理中使用数据挖掘技术
软件项目管理中主要在组织关系和版本控制信息两个方面使用数据挖掘技术,软件项目管理是一项比较复杂的工程,人员组织关系挖掘重点在于合理协调和分配人力资源。如:某一项目或许要有成千上百人参与其中,这个参与过程各个人员需要通过电子邮件、文档等实施交互,交互过程中容易出现秩序混乱的情况,数据挖掘技术能合理区分工作人员之间的组织关系,便于进行项目管理。版本控制能详细记录整个文件内容的变化情况,便于用户查看版本修订状况,把数据挖掘技术应用到版本控制信息内能降低系统后期维护成本。数据挖掘及时可以为日常维护软件系统提供警醒作用,部分挖掘数据能清晰找寻系统修复过程中存在的错误,根据找寻的错误记录便于软件设计者及时避开常见的错误,提升软件项目的修复和管理水平。
结语
总之,数据挖掘技术广泛应用在分析代码、软件故障检测、软件项目管理等方面,能有效提升软件工程的管理和控制能力。值得注意的是,目前数据挖掘技术的研究还不够成熟,必须不断加强软件工程数据挖掘技术的研究,促进软件更好地开发和管理。
参考文献
[1] 李由.基于DMX语言的数据挖掘算法包原型系统的设计与实现[D].华东师范大学,2010.
[2] 孙雪娟.基于Web2.0和数据挖掘技术的软件专业教学系统设计[J].软件导刊,2013,(12):121-122,123.
[3] 金莲花.数据挖掘在软件缺陷管理中的研究与应用[D].长春理工大学,2010.
[4] 张连育,吕立.基于策略模式的中医数据挖掘平台的设计与研究[J].小型微型计算机系统,2011,32(7):1406-1411.
[5] 毛澄映,卢炎生,胡小华等.数据挖掘技术在软件工程中的应用综述[J].计算机科学,2009,36(5):1-6,26.
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密集型数据科研第四范式
由于数据挖掘技术的运算功能较强,常规的数据信息系统在实际的运算过程中,会消耗掉大量的时间,甚至由于数据庞大会对运算系统造成一定影响,在数据挖掘技术的作用下,不会出现这种问题,还能节省运算时间。另外,在对数据进行运算的过程中,不会出现数据丢失的现象。在大规模数据中,有些数据的应用价值不大,属于垃圾数据,会影响系统的整体效率,利用数据挖掘技术,能够保留精准的数据,摒除垃圾数据,为数据质量提供相应的保证。
1.2缩减数据处理时间
利用挖掘数据技术能够进行数据的转换,将杂乱的数据进行整合与处理,转变为试用形式。从这些数据的角度进行分析,能够进行科学化的调用,在进行数据的挖掘过程中,会对于不清楚的数据进行清理,保证得到数据的科学性。从各个不同的角度,对于数据的真实性进行考核,并将数据进行整合。也就是说,将分析的结果提供给管理人员,合理的运用到软件工程中,进而缩减数据处理时间。
2数据挖掘技术在软件工程中的应用路径
2.1数据挖掘技术在软件工程中的发展
首先,由于数据挖掘技术是立足于数据库进行发展的,随着技术的不断发展与进步,已经从理论转换为实践应用,并且在实际应用中发挥着重大作用。另外,软件工程是工程化的学科,能够根据项目任务的差异、资金及客户需求进行产品的研发。由于原有的工程软件开发较为复杂,但经过发展迅速壮大,实际的应用性较强,会更多的被应用于项目当中,与此同时,利用数据挖掘技术主要就是对软件工程的数据库信息进行挖局,对于软件工程的可持续发展有着重大的意义。
2.2挖掘信息
其次,软件工程能够对信息的挖掘进行掌控,实际的应用范围较广,软件工程能够将软件开发时的信息进行统一,进而保证在进行软件开发的过程中,能够将数据进行及时更新,进而从根本上保证开发的质量,保证项目任务的顺利实施。就目前实际情况进行分析,在数据挖掘中还包含着软件开发更改的数据信息,能够更加直观的看出软件内部的差异,还能够利用这一特点及时发现运用过程中产生的问题,并结合实际情况,及时作出有效的解决措施,保证项目目标任务能够顺利完成。
2.3挖掘软件漏洞
再次,数据挖掘技术中,最重要的一点就是对软件漏洞进行检测,在实际的运用过程中,能够及时发现软件开发中产生的错误,并进行修整与优化,及时找到处理的方法,在一定程度上保证软件工程的安全等级与质量。另外,在利用数据挖掘技术对漏洞进行检测的过程中,相关的技术人员要明确检测的内容,还要立足于客户基本需求,进一步找到相对应的测试内容,利用合理的方式对软件进行测试,进而得到各方面都完美的方案。与此同时,由软件工程对数据信息进行处理,在找到漏洞信息后,对多余的信息进行及时处理,进而从根本上保证数据信息的科学性与完整性。在实际的运用过程中,相关的工作人员要根据科学化的方案,合理的将数据挖掘技术运用到软件工程中,利用合理化的方式对于软件工程中的漏洞问题进行分析,及时找出错误根源,使操作者能够更加容易进进行漏洞的挖掘与修复工作。就目前实际情况进行分析,数据库挖掘技术主要就是将数据信息进行转化,并进行整合存到信息库中,再由相关的工作人员结合实际需求,对于软件进行测试,查看是否存在漏洞,利用这种方式保证后续工作的顺利开展,促进软件工程的健康发展。
2.4挖掘软件执行记录
在数据挖掘技术的应用过程中,软件执行记录尤为重要,在进行数据挖掘的过程中,相关的技术工作人员要对数量进行合理分析,对于不同代码之间的关系进行探究。使相关的工作人员能够利用软件系统的行踪进行管理与探究,进而在一定程度上促进软件工程的稳步发展。
2.5挖掘开源软件代码
中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2013)10-0042-02
在任何计算机语言中数据库都占据很重要的位置,可以说如果没有数据库就没有计算机语言的应用,对于Java语言中也是如此。当前主流应用的数据库服务器主要有,微软(MicroSoft)开发的SQL Server数据库、甲骨文(ORACLE)公司的MySQL数据库和Oracle数据库等,使用Java编程语言连接SQL Server数据库时,需要比较繁杂的系统环境配置,所以,在使用Java语言编写应用程序时,在数据库服务器的选择方面,多使用MySQL数据库或Oracle数据库。其中,中小型项目的开发一般多选用MySQL数据库,在大型项目在开发中,大多选用Oracle数据库。
在Java语言中,要对数据库进行显示、增加、修改、删除等操作,主要采用JDBC(Java DataBase Connection)技术。这种技术为开发人员提供了一个标准的API接口,程序员通过调用纯Java API来编写调用数据库在应用程序。除此之外,还可以通过编写程序调用JDBC的API,比较容易的实现对不同数据库的访问。
在计算机语言的学习过程中,对于大多数人来说数据库的连接和操作是一个难点,笔者在多年的Java语言实践中积累的连接和操作数据库的方法和技巧与大家一起分享。
1 Java连接MySQL数据库的方法
使用Java语言访问多种不同数据库的时候,可以通过编写JDBC API调用来实现,在连接不同数据库在时候,安装相应的驱动程序即可。例如:要连接MySQL数据库,就需要安装MySQL数据库的驱动程序“mysql-connector-java.jar”,这些驱动程序大多椒开源的,一般可以到官网或互联网上下载。下载后的驱动程序存放的位置有要求,如果你没有使用开放的开发环境,那么要将驱动程序存放在JDK安装目录下的lib文件夹中;如果你使用了Eclipse或其它的开发环境,那么要在这些环境中配置JDK的位置将驱动程序导入到里面。
安装完成数据库在驱动程序之后,就可以编写程序来实现对数据库的连接。
(1)Class.forName(“com.mysql.jdbc.Driver”);
//此步骤为驱动程序的加载,另外驱动程序的名字还可以为org.gjt.mm.mysql.Driver。
(2)Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/数据库名字”,“用户名”,“密码”);
//创建与数据库的连接
通过以上两步骤后即可以完成与数据库的连接,上面代码1中forName()方法会抛出ClassNotFoundException,代码2中getConnection()方法会抛出SQLException异常,所以在程序中要进行异常的捕获与处理。
2 数据库连接的技巧
2.1 数据库连接代码的复用
在一个项目开发过程中,需要经常的对数据库进行操作,那么我们不能在一个项目中多次写相同的代码,这样不利于代码的更新与维护,所以我们可以将连接数据库的代码单独的写在一个Java文件的构造方法中,这样在需要进行数据库连接时生成该类的对象即可调用到数据库连接的代码。
2.2 数据库连接对象的关闭
在应用程序运行在过程中,当客户端发起查询或更新请求时,应用程序就会通过JDBC API新建一个连接,与数据库进行通信。如果,应用程序有多个客户端需要频繁对数据进行操作,那么,就需要建立相应多个在数据库连接。所以,编写应用程序在时候在每一个客户端使用数据库完成之后,一定要释放连接资源,包括Connection对象、Statement对象和ResultSet对象,否则会因资源耗尽而使应用程序崩溃。因此,程序员在编写应用程序时,在处理数据库操作方面必须谨慎,保证每次的数据操作之后及时释放数据库连接资源,提高应用程序在稳定性和健壮性。
一个数据库通信连接一般可以支持多达几百个的Statement对象。通常,在应用程序中,每个程序在调用都需要构造一个物理连接,而且每个Statement对象需要单独占用一个物理连接。由于建立物理连接的在过程需要通过网络反复沟通,比较浪费时间,所以在连接数据库时,尽最大可能避免或者减少单个Statement对象独占物理连接在情况。这样的设置对于一般的网站来说还可以,如果一些访问量比较大的网站,当连接数超过这个值的时候数据库服务器就会报错,出现网站瘫痪等现象。所以对数据库操作完成后,要调用相关对象的close()方法,将所创建的数据库连接相关对象关闭,通常采取“先创建的对象后关闭”的原则。
在使用java编写应用程序时,通常将将数据库的连接、关闭与异常处理同时写在一个单独的类文件的相关代码。在类的构造方法中编写数据库连接、数据库关闭对象的方法,此外也可以将其它数据库的操作方法写在此方法中,例如数据库的查询、修改、插入和删除等。当需要进行数据库操作时,生成这个类的对象,就可以进行数据库的连接、关闭以及其它相关操作,提高代码在利用率。
(1)public class DBConnection {
(2)private String dbDriver="org.gjt.mm.mysql.Driver";
(3)private String url="jdbc:mysql://localhost:3306/shop";
(4)public Connection connection = null;
(5)public DBConnection() {
(6)try {
(7)Class.forName(dbDriver).newInstance(); // 加载数据库驱动
(8)connection = DriverManager.getConnection(url, "root", "123");
(9)} catch (Exception ex) {
(10)System.out.println("数据库驱动程序加载失败!"+ex.toString());}
(11)}
(12)public void clo(){
(13)try{
(14)if(connection!=null)
(15)connection.close();
(16)}catch(Exception e){
(17)System.out.print(e.getMessage());}
(18)}
(19)}
2.3 数据库连接池的使用
使用JDBC访问网络数据库虽然简单易用,但是这种方法对于Web开发来说,存在很多问题。比如文中前面提到的每一次Web请求都要建立一次数据库连接,即浪费时间又占用内存。而且对于大型的电子商务网站,同时几百人乃至几千人在访问量,在进行数据库连接操作时,要耗费大量在系统资源,影响网站的访问速度。在标准JDBC API接口中,并没有提供资源的管理方法,资源管理必须由应用程序自己负责管理。虽然在JDBC规范中,强调了资源的关闭、回收及合理运用,但最稳妥的方式,还是为应用程序提供有效的管理手段。
对数据库连接资源的管理是很重要的问题。我们可以使用“数据库连接缓冲池”来解决资源的频繁分配与释放所造成的问题。将数据库连接预先放在缓冲池中,当需要建立数据库连接时,就从“缓冲池”中取出,使用后再放回去。我们可以通过设定连接池中的最大连接数来防止太多的连接数量。
3 结语
上面讲述了Java连接MySQL数据库的方法和一些操作技巧,实际在进行数据库操作时还有很多可以优化的部分,除了优化代码部分以外,还可以优化数据库,包括数据结构的调整、SQL语句的调整和服务器内存分配的调整等等。另外在Java Web开发中也可以利用Hibernate框架来操作数据库,它是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库。已经得到了广大企业和Java Web开发人员的认可。
参考文献
[1]黄丹.基于JDBC的数据库访问技术[J].软件导刊,2010(03).
[2]聂凯,曹慢慢.Mysql数据库的访问方法浅析[J].科技资讯,2010(09).
一、大数据时代软件服务工程与群体软件工程
所谓软件服务工程,就是将服务作为主要目标,在应用时需要根据变化不断通过虚拟的手段与分布式手段进行应用,而这种应用方法不仅能够使得软件更加虚拟化,同时也能强化其操作性,与此同时,更能有效解决动态变化与分布变化情况[1]。软件工程在发展过程中能够在大数据领域、云计算中得到更加广泛应用。在网络化、服务化等大环境影响下,软件工程可以得到更好的开放空间。工程师利用数据信息交互、学术交流等多种方式开展合作,对软件进行开发,建设更加具有性价比的软件系统。在软件开发中,目前十分成功的就是开源软件,开源软件的合作模式与结构都是当前学术界最看重的,然而当前常规研究方式却未能实现较大突破。很多学者开始尝试利用网络分析方法对数据进行有效分析,在一些规模较大的开发项目的开发人员中,开发者占据绝对优势,并且模块化特征更加明显。和群体软件工程相比,开源软件有较弱的发展态势,而群体软件工程主要是倡导利用众包形式进行开发。
二、大数据时代众包软件服务工程
(一)创新发展态势
众包软件服务工程作为国际各国都密切重视的一种流式数据处理与集密数据处理方式,特别是在服务中对产生的各项数据尤为重视,如何才能将这些密集型数据的存储设施、平台、价值分析等作为服务对象,是当前大数据软件工程在研究过程中的难点与重点部分。从最开始的服务消费,到后来的众包服务开方,随后再到软件平台管理,运营方都由在线流式数据和离线密集型数据组成。当前开发者版本级别达到GB级别,众多用户数据能够达到PB级别,在线沟通数据更是能达到TB级别,利用直接推送功能可以左右软件服务时间,对软件产生关键性作用与影响[2]。
(二)软件生产开发、运营与管理
密集型数据,因为他们本身固有的动态分布形式、动态交互、复杂演化、动态分配、价值隐藏等,都能够体现大数据的最原始行驶情况。从本质角度来看,这些数据仅仅是用于描述内容模量,但是没有具体含义,并且缺乏语义化作用。想要对其进行创新,必须打破原有的研究方法与思维,将密集数据作为主要材质课题,并且将其看作是研究的主体,在主体领域,大数据所在流域与主体专家需要制造,传播大量的数据。他们不仅是大数据的群体用户,还是最主要的消费者,同时也担任着运营和管理的作用,能够将群体智慧汇到一起,逐渐形成系统化的领域和主体知识。将这些知识作为核心与基础,对研究密集型数据相对应的信息学过程与生命周期进行研究,并且及时推送相应的服务期限,研究数据内容的相关语义和标志,最终赋予其相应的矢量。组织主体部分构建价值服务机制与知识体系,在研究和互通过程中,利用操作式管理方式将关键技术应用在密集型数据上,这些都能展示出众包软件工程发展内容。
三、大数据背景下关于信息处理技术发展情况
与传统数据形式相对比可知,在大数据时代下能够实现各项数据相互联系,并且这些相互关联的结构,能够利用当前所有的框架,对数据进行及时且有效的处理。将硬件作为基础,通过该基础搭建的网络存在相应局限性,并且制约了网络的性能和发展,因此需不断探索与创新网络架构技术,以此实现大数据技术的提高。在日后发展过程中,计算机网络必须为其提供开放式的结构与传输功能,将计算机网络信息处理与软件基础、硬件基础分开使用,随后对网络架构进行定义。相关网络软件使得我国网络技术朝着更高水平发展,随着大数据时代的不断深入,计算机能够实现网络、硬件、软件融为一体,并且产生出新的网络结构,能够为大数据时展提供重要理论与实践意义。这种形式不仅能够突破传统计算机在处理信息时因为网络所带来的限制,同时也能使计算机处理技术开发与应用形式打破单一情况,逐渐朝着多元化方向不断发展。
四、结语
综上所述,随着我国大数据时代的到来,社会各领域都将受到大数据思想和创新技术的影响。大数据对人们的生活方式产生深刻影响,因此将大数据作为当前一种最新兴的网络技术。
一、大数据时代软件服务工程与群体软件工程
所谓软件服务工程,就是将服务作为主要目标,在应用时需要根据变化不断通过虚拟的手段与分布式手段进行应用,而这种应用方法不仅能够使得软件更加虚拟化,同时也能强化其操作性,与此同时,更能有效解决动态变化与分布变化情况[1]。软件工程在发展过程中能够在大数据领域、云计算中得到更加广泛应用。在网络化、服务化等大环境影响下,软件工程可以得到更好的开放空间。工程师利用数据信息交互、学术交流等多种方式开展合作,对软件进行开发,建设更加具有性价比的软件系统。在软件开发中,目前十分成功的就是开源软件,开源软件的合作模式与结构都是当前学术界最看重的,然而当前常规研究方式却未能实现较大突破。很多学者开始尝试利用网络分析方法对数据进行有效分析,在一些规模较大的开发项目的开发人员中,开发者占据绝对优势,并且模块化特征更加明显。和群体软件工程相比,开源软件有较弱的发展态势,而群体软件工程主要是倡导利用众包形式进行开发。
二、大数据时代众包软件服务工程
(一)创新发展态势
众包软件服务工程作为国际各国都密切重视的一种流式数据处理与集密数据处理方式,特别是在服务中对产生的各项数据尤为重视,如何才能将这些密集型数据的存储设施、平台、价值分析等作为服务对象,是当前大数据软件工程在研究过程中的难点与重点部分。从最开始的服务消费,到后来的众包服务开方,随后再到软件平台管理,运营方都由在线流式数据和离线密集型数据组成。当前开发者版本级别达到GB级别,众多用户数据能够达到PB级别,在线沟通数据更是能达到TB级别,利用直接推送功能可以左右软件服务时间,对软件产生关键性作用与影响[2]。
(二)软件生产开发、运营与管理
密集型数据,因为他们本身固有的动态分布形式、动态交互、复杂演化、动态分配、价值隐藏等,都能够体现大数据的最原始行驶情况。从本质角度来看,这些数据仅仅是用于描述内容模量,但是没有具体含义,并且缺乏语义化作用。想要对其进行创新,必须打破原有的研究方法与思维,将密集数据作为主要材质课题,并且将其看作是研究的主体,在主体领域,大数据所在流域与主体专家需要制造,传播大量的数据。他们不仅是大数据的群体用户,还是最主要的消费者,同时也担任着运营和管理的作用,能够将群体智慧汇到一起,逐渐形成系统化的领域和主体知识。将这些知识作为核心与基础,对研究密集型数据相对应的信息学过程与生命周期进行研究,并且及时推送相应的服务期限,研究数据内容的相关语义和标志,最终赋予其相应的矢量。组织主体部分构建价值服务机制与知识体系,在研究和互通过程中,利用操作式管理方式将关键技术应用在密集型数据上,这些都能展示出众包软件工程发展内容。
三、大数据背景下关于信息处理技术发展情况
中图分类号:G642 文献标识码:B
数据库系统是计算机系统的重要组成部分,是企业、机构、互联网乃至整个信息社会赖以运转的基础,在当今信息社会中扮演着越来越重要的角色。正是由于数据库具有重要的基础地位,数据库理论与技术教育已成为现代计算机科学和相关学科教育中的核心部分,所有计算机相关专业的学生都有必要掌握和熟悉数据库理论与技术。
通过多年的数据库课程教学,我们发现学生在学习了数据库课程之后,仍然不会“用”数据库――不会设计数据库,不会管理数据库,不会开发数据库应用程序。带着这些问题,我们进行了一系列数据库课程教学改革探索与实践,并取得了一定的成绩。如我校的“数据库系统及应用”于2007年立项为国家精品课程;清华大学出版社于2009年出版了我们的研究成果――《数据库系统原理与设计》及其配套实验教材《数据库系统原理与设计实验教程》。
本文主要对“数据库系统原理”课程目标及课程体系,出版教材的内容、结构及特色,大作业教学改革等方面进行分析与探讨。
1课程目标与课程体系
1.1目标
我校“数据库系统原理”课程教学主要面向计算机科学与技术专业、信息管理与信息系统专业的本科生。根据由教育部高等学校计算机科学与技术教学指导委员会最新编制的《高等学校计算机科学与技术专业核心课程教学实施方案》中数据库教学实施方案的分类(科学型、工程型和应用型),并结合我校培养特色,我们主要培养应用型复合性人才。该课程强调理论与实践相结合,主要培养目标为:
(1) 培养学生具有较强的数据抽象和数据建模能力,能够深刻理解不同数据模型的特点和适用范围,并具备利用某种数据模型构建实际应用逻辑模型的能力;
(2) 培养学生具有一定的系统分析与设计能力,能够理解数据库系统的体系结构和系统组成,能对数据库管理系统的实现原理进行简单分析;
(3) 培养学生具有较强的数据库设计和应用开发能力,能够灵活运用一种数据库语言及应用开发工具解决实际应用问题;
(4) 培养学生自主学习能力、创新能力和团队协作精神,从应用中发现问题、提出问题、分析问题和解决问题的能力――问题求解能力;
(5) 培养学生使用和维护数据库能力,能够在掌握数据库基本原理的基础上,掌握一种主流数据库管理系统的使用和维护方法。
1.2课程体系
“数据库系统原理”课程体系主要由以下部分组成:
(1) 数据模型――主线。
① 概念模型:E-R模型。
② 逻辑模型:关系模型(数据结构、操作和约束)。
③ 物理模型:存储结构、索引技术等。
(2) 数据库系统――核心。
① 数据库管理系统:存储结构与索引、查询与优化、完整性与安全、事务与恢复等。
②人员:数据库管理员、系统分析员和数据库设计人员、数据库应用程序员以及终端用户等。
③ 支撑软件及硬件系统:操作系统及各种硬件资源。
(3) 数据库应用――动力。
① 应用需求分析:业务需求及处理流程、功能需求及数据需求分析、业务规则分析等。
② 数据库设计:数据库概念模型、逻辑模型和物理模型等。
③ 数据库应用开发:数据库应用系统的体系结构、常用数据库访问技术和数据库应用开发技术等。
2教材内容与结构安排
结合“数据库系统原理”课程培养目标和课程体系,《数据库系统原理与设计》主要内容与结构安排如下:
(1) 数据库系统基本概念(第1章)。该部分介绍了数据、数据管理、数据库、数据库管理系统和数据库系统等基本概念,同时也介绍了数据模型、数据抽象、数据库模式等概念。
(2) 关系数据库基础(第2章和第3章)。第2章介绍了关系模型(关系数据结构、关系操作和关系完整性约束条件)以及关系代数;第3章介绍了关系数据库的标准语言――SQL,包括数据定义DDL语言、数据控制DCL语言和数据操纵DML语言。
(3) 关系数据库设计(第4章至第6章)。第4章介绍了数据库建模方法,包括实体-联系模型基本概念、概念模型设计过程以及如何将E-R模型转化为关系模型;第5章介绍了关系数据库设计理论,着重讲述了函数依赖及规范化理论;第6章通过一个实例演示了关系数据库设计过程。
(4) 关系数据库管理系统(第7至10章)。第7章介绍了关系数据库物理存储结构,包括文件组织、记录组织、索引技术以及物理数据库设计;第8章介绍了查询处理技术,包括查询处理过程、各种关系操作算法以及查询优化技术;第9章讲述了数据库完整性和安全技术,包括数据库安全性、完整性的基本概念和措施,游标、存储过程和触发器以及应用与安全设计;第10章阐述了事务管理和恢复相关技术。
(5) 数据库应用开发(第11章和第12章)。第11章介绍了数据库应用系统的体系结构、常用数据库访问技术和数据库应用开发技术;第12章介绍了Web数据库基本概念,讨论了Web数据库访问技术,并介绍了XML数据库基本概念。
《数据库系统原理与设计实验教程》按照《数据库系统原理与设计》主教材内容的顺序,紧扣数据库理论设计实验,有助于学生深刻理解和掌握数据库系统原理,培养学生的数据库设计及应用开发能力。本书在简单介绍了SQL Server 2000的特点、安装与使用、体系结构、数据类型、函数和流控制语句后,共安排了13个实验:简单查询、复杂查询、数据定义操作、数据更新操作、查询执行计划、安全性定义与检查、完整性定义与检查、游标与存储过程、触发器、事务处理、数据库模式脚本设计、C/S模式的数据库应用开发和B/S模式的数据库应用开发。每一个实验都包括实验目的与要求、实验案例和实验内容3部分,每一类实验中安排了相关知识介绍,以帮助学生回顾实验相关知识。
3教材特色
目前,虽然数据库教材很多,但是很难找到完全满足我们需要的教材。本套教材的编写初衷是写出让学生会“用”且“够用”数据库的教材。虽然不一定完全达到目标,但至少我们已开始了有益的尝试。本套教材主要有4个特色,一是强调数据库模式导航图,二是强调数据库设计,三是强调数据库管理系统,四是强调数据库应用开发。
3.1数据库模式导航图
数据库模式导航图强化对关系数据库模式的理解,以模式导航图为工具,使学生深刻理解关系数据库查询原理,灵活掌握关系代数和SQL查询语言。
例如,学生选课数据库SCDB的模式导航图如图1所示。其中,开课班是弱实体集,它依赖于标识实体集课程,且假设课程班号cClsaaNo可唯一标识某门课程的开课班。那么可使用标识实体集课程的主码courseNo与cClsaaNo结合起来唯一标识开课班中的实体。
给定一个查询需求,基于数据库模式导航图构造其关系代数表达式或SQL查询的步骤如下:
(1) 明确该查询涉及到哪些属性;
(2) 明确该查询涉及到哪些关系;
(3) 根据数据库模式导航图,通过多对一联系(或一对多联系),把所有涉及的关系连接起来,每一个多对一联系(或一对多联系)都可以表示为外码属性的自然连接。
例1:针对SCDB数据库,查找“吴文君”老师教过的2008级学生的姓名。
① 该查询共涉及3个属性,分别是职工名teacher Name、年级grade和学生姓名studentName,职工名teacherName和年级grade都是用于选择条件。
② 共涉及3个关系,分别是教师关系Teacher、班级关系Class和学生关系Student。
③ 学生关系Student与班级关系Class之间是多对一联系;学生关系Student和教师关系Teacher之间是多对多联系,这种多对多联系可通过几个多对一联系进行连通。根据图2所示的数据库模式导航图,可以得到该查询需要涉及5个关系:Class、Student、Teacher、SC和CourseClass,它们之间的联系如图2所示。
④ 根据图2所示的数据库模式导航图,可得到关系代数表达式为:
∏studentName((((σgrade=2008Class ⋈ Student) ⋈ SC) ⋈ Course Class) ⋈ σteacherName='吴文君'Teacher)
3.2数据库设计
数据库设计是以案例为驱动,通过分析应用需求来介绍数据库建模的基本方法,使学生深刻理解关系数据库设计思想,提高数据库设计能力。
数据库设计相关内容安排在第4、5、6章以及第7.6、9.6节等章节,逐层推进介绍。第4、5章介绍了数据库设计的基本原理,第6章通过一个综合数据库设计实例启发式地引领学生学会需求分析、概念建模和逻辑建模。
综合数据库设计实例内容包括:
(1) 需求描述和系统边界;
(2) 需求分析,包括业务需求及处理流程、功能需求及数据需求分析、业务规则分析等;
(3) 确定实体集及属性;
(4) 确定联系集及E-R图;
(5) 检查是否满足需求,并改进E-R图;
(6) 逻辑数据库设计;
(7) 模式求精;
(8) 进一步思考。
该数据库设计过程是启发式、递进式的分析过程,可以配合大作业活动达到教学目的。
3.3数据库管理系统
(1) 增加关系数据库物理存储结构、查询处理和查询优化等内容,一是有利于学生从底层的角度理解SQL查询,二是有利于学生更好地理解关系数据库的物理设计,三是有利于学生更好地理解关系数据库的优点和缺点。该部分内容可根据授课对象的不同有选择地开展教学。
(2) 从使用者的角度,以应用需求为驱动介绍数据库的事务、并发、恢复和完整性、安全性等内容。
3.4数据库应用开发
增加数据库应用开发和Web数据库技术介绍,使学生能了解数据库常用访问方法和Web数据库的原理和实现技术,为后续学习和数据库应用开发实践打下基础。
4大作业教学改革
作为一种培养学生综合能力的教学手段,大作业制度对于创新型人才的培养具有重要的意义。大作业制度的实践使教师主体和学生主体亲密合作、协调互动,构建起学生在学习过程中自主式学习的主体地位和教师在教学过程中引导式教学的主体地位,达到了提高学生综合能力的良好教学效果。
大作业教学活动的整个过程就是学生围绕大作业开展“自主学习”,完成课题任务的过程;大作业教学手段是通过学生充分地展示个性才能,培养学生的自主精神,挖掘学生的潜能;大作业教学的目的是因材施教,发展学生个性。
大作业驱动下的双主体互动式教学模式的主要举措如下:
(1) 教学内容课题化。合理设计课题是大作业驱动的关键,需要教师精心策划。设计选题时,既要有明确的目的、任务和要求,让学生“有事可做”,又要考虑学生已有的知识结构和能力,让学生“有事能做”,还要与学生的兴趣相结合,让学生“有事愿做”。
(2) 分工合作责任化。责任化的目的是实现团队学习、分工合作、共同提高。大作业选题设计时,要有指导性的成员分工安排,形成人人参与、团队合作的大作业共同体。
(3) 完成任务主体化。在完成大作业的过程中,一方面教师不要事先给出具体的方案和技术路线,给学生留有足够的思维空间,充分发挥学生的自主式学习意识,引导学生创造性地提出解决问题的方案、技术路线;另一方面,教师针对学生实践中遇到的问题,要及时地通过互动式讨论,引导学生解决问题,正确引导学生的创新思维。
(4) 学习成果作品化。学生个人或小组的学习成果,需要以作品的形式呈现,并在班级内交流。有利于提高学生的写作能力,使认知系统化、有序化。
(5) 评价标准公开化。要想正确地引导和评价学生,必须先创建客观公正的评价标准和评价方法,让学生明确努力的方向并自我评价,以增强学生的自主意识和对问题的注意力。采用理论考试与实践考核相结合、传统考试与上机考试相结合、大作业与小作业评价相结合的考核方式,注重综合素质的提高,强化实践教学,培养动手能力。
(6) 成果评价民主化。每个小组在完成大作业过程中都付出了辛勤劳动,取得了一定成绩,要为每个小组提供一个展示研究成果的机会,培养学生发现问题、思考问题和解决问题的学习能力,促使学生养成学习他人长处的良好习惯。在答辩过程中,通过回答其他同学的问题和向其他组提出问题,学生的倾听、观察、分析、概括、归纳、讲解、提问、辩论、思维等多种能力得到提高。
本课程采用了上述大作业驱动下的双主体互动式教学模式。大作业过程及进度安排如下:
(1) 选题:说明选题的原因、确定系统目标及边界(第2~3周)。
(2) 需求分析:业务需求及处理流程分析、功能需求及数据需求分析、业务规则分析等(第5~7周)。
(3) 数据库设计:包括概念设计、逻辑设计、物理设计等(第8~10周)。
(4) B/S或C/S结构的应用系统实现(第10~13周)。
(5) 设计报告(第14~15周)。
通过做大作业,不仅增强了学生的自信心,促进了学生主动学习,培养了学生的创新思维和创新能力,提高了学生的综合素质,而且促进了教师努力钻研业务和教学方法,提高了教师的科研能力。
5总结
经过多年的教学改革探索与实践,我们一直在思考:对于计算机相关专业的本科生来说,需要掌握哪些数据库知识?回答这个问题并不容易。这是因为数据库知识非常丰富,而且课时有限,学生不可能了解所有数据库知识。另外,不同用户使用数据库时的视角是不同的。数据库系统的用户大致可分为4类:数据库管理员、系统分析员和数据库设计人员、数据库应用程序员以及终端用户。计算机相关专业的学生既可能做数据库管理员,也可能成为系统分析员和数据库设计员,更可能是数据库应用程序员。
因此,我们试图编写一套让学生会“用”数据库的教材,该套教材的主要特色是强调数据库模式导航图、强调数据库设计、强调数据库管理系统、强调数据库应用开发,并通过配套的大作业活动,使学生在掌握数据库基本知识、基本理论和基本方法的基础上,具有较强的数据库设计、数据库系统管理和应用开发能力,并能够灵活运用数据库技术解决实际应用问题;培养学生自主学习能力、创新能力和团队协作精神,从应用中发现问题、提出问题、分析问题和解决问题的能力――问题求解能力。
参考文献:
[1] 万常选,廖国琼,吴京慧,等. 数据库系统原理与设计[M]. 北京:清华大学出版社,2009.
[2] 吴京慧,刘爱红,廖国琼,等. 数据库系统原理与设计实验教程[M]. 北京:清华大学出版社,2009.
1.引言
大型生产线的自动控制系统,根据控制范围、功能划分、系统功能的抽象层次,可被分为多个层级,其中生产过程控制系统,位于生产管理系统和基础自动化系统之间。随生产线自动化程度的提高、生产的计算机自动化管理的深入和精细,过程控制系统在大型冶金自动化生产线上,成为不可或缺的部分。过去,完备的过程控制系统的底层开发平台,只有国外大型电气公司拥有,国内电气公司在该领域普遍缺乏深入开发和技术积累。
过程控制系统,总的来说是一个具有软实时性特征的实时系统,能实现以下主要功能:同外部系统通讯、原料数据管理、成品数据和质量数据管理、物料跟踪、工艺参数管理、生产设定值计算、人机操作界面、生产过程监控和数据收集分析等功能。过程控制系统的特点是面向对象的分布式系统架构,使各功能由多个不同进程实现,进程间通讯成为最常用和最关键的基础功能。
本文以WISENTBASE开发平台为蓝本,介绍一种先进的过程控制开发平台的设计—基于.net平台的过程控制系统开发平台设计。
2.设计思想和总体框架
按软件功能的实现层次,过程控制系统结构,按面向对象的分布式系统架构设计,整个软件由核心到分成三层:核心业务逻辑层、外部通讯适配层、外部通讯层。
核心业务逻辑层实现最核心和最重要的过程控制业务逻辑,如:物料跟踪、过程数据收集、设定值计算等。外部通讯层,实现和各种外部系统的通讯,如:基础自动化通讯、生产管理系统通讯、各种单体设备通讯。这部分要实现各种不同的通讯协议和数据格式转换。每条生产线的外部通讯内容和格式都不尽相同,为实现具体生产线的通讯内容差异和核心业务逻辑的解耦,需要外部通讯适配层来实现隔离。
核心业务逻辑层和外部通讯适配层的实现技术相同;外部通讯层实现技术特殊,定制内容和变化多。所有软件层都是由一个或多个进程组成,每个进程都需要实现相同的基本功能,如:配置信息管理、进程间通讯系统的初始化和关闭释放、日志系统、消息和报警系统、错误捕捉等。这些功能间的耦合性也很高,在开发平台的设计上,这些功能也被紧密结合在一起,采用Framework模式。
WISENTBASE平台,从结构上看,被分成三个层次:核心库、扩展库、辅助工具。其中,核心库实现了基本的应用程序框架,并封装了每个进程必须实现的基本功能的完整实现,定义了每个进程必须实现的对外服务接口和常用接口,并提供了这些接口的基本功能实现。为方便应用开发人员和扩展库开发人员为基本库添加和修改功能,基本库中留出了扩展点。核心库还封装了常用Win32 API调用的.NET封装和常用工具类,方便应用开发人员使用这些功能。
辅助工具,有如下几个:进程管理、HMI框架配置工具、数据字典管理工具、日志查看工具、各种文档生成工具、报文和通讯测试工具、消息和报警管理工具等。这些工具大部分不直接参与应用程序的运行、数据管理脚本等。
基于.net平台的过程控制系统开发平台设计主要包括以下几个方面:核心功能和结构设计、功能和扩展设计、HMI系统设计、辅助工具设计和数据库访问设计。
3.核心功能和结构设计
核心库实现功能:实现应用程序框架、配置信息管理、进程间通讯、日志功能、多个接口的定义、封装各种常用工具类和Win32调用。核心部分是应用程序框架类,通过该类的派生类,可使用其它所有功能。
WISENTBASE开发库的核心库中,提供了应用程序框架类Application,该类是一个抽象类,每个应用程序必须派生自己的Application子类,并重载部分函数,完成相应功能。
Application类完成功能:初始化参数系统、日志系统、进程间通讯服务系统、对外通用服务、调用用户定制的初始化代码、进入消息循环、关闭所有服务和运行环境、调用用户定制关闭代码。
WISENTBASE开发平台提供了三种进程间通讯手段:远程过程调用、通过共享内存进行数据共享、通过互斥量、事件对象实现同步、互斥操作和事件。
远程过程调用分为双向调用和单向调用,这两种调用方式可满足进程间消息传递、数据报文和带返回值的远程过程调用通讯要求。
.Net framework的远程过程调用规范叫Remoting.NET,可支持多种串行化格式和底层通讯协议。考虑到性能和可靠性,WISENTBASE开发库支持IPC和TCP/IP通讯协议,串行化格式采用二进制编码。
WISENTBASE封装了远程过程调用的底层实现细节,通讯协议、各程序的监听地址和端口等信息,通过配置文件保存,对上层应用程序部分完全透明。
过程控制系统,一般都处于无人值守状态,运行日志成为过程控制系统必须具有的辅助功能。WISENTBASE核心库中,实现了日志功能。缺省情况下,日志输出目的地有两个:控制台窗口和日志文件目录。日志文件,可根据配置信息,按一定规则自动切换,并删除陈旧文件。为方便管理和查看日志文件,WISENTBASE辅助工具中,提供了专门的日志查看工具。
WISENTBASE提供的日志功能,包括:按类别输出运行日志、格式化日志消息、跟踪程序执行轨迹、输出调用堆栈详细信息、对异常进行统一处理和日志输出、通过代码注入和调用拦截自动为远程过程调用生成日志和性能记录。
生产过程控制系统,稳定性要求很高。如果发生进程出错而退出、逻辑错误进入死循环或死锁,要求能够自动强制杀死失去响应的进程并重启该进程。
WISENTBASE核心库的框架中,提供了进程的自我监控。辅助工具中,提供了看门狗程序和进程监视管理工具。看门狗程序根据配置信息,自动监视同一台计算机上的需要被监视的进程。当发现某进程失去响应或退出,看门狗程序将自动强行杀死失去响应的进程,在一定时间间隔后重新启动该进程。
进程监视工具通过看门狗程序,显示每个被监视进程的状况,并提供操作界面,供操作人员管理单个进程,如:关闭进程、启动进程、设置进程为被管理、为进程设置日志输出的过滤级别,查看每个进程处理的消 息线索号。
WISENTBASE的扩展库部分,包括多种外部通讯和HMI开发基础库。这些扩展库都是针对具体应用功能,利用核心库提供的功能,对核心库进行的扩展。
过程控制系统,需要提供人机操作界面,供生产线操作人员和系统管理人员使用。HMI主要功能:原料数据管理、成品数据管理、生产设定值和工艺参数管理、生成过程数据管理、生产线数据监视、数据查询和报表、消息和报警、操作权限管理等。其中,部分数据是纯粹数据库中的数据,变化慢;部分数据是基础自动化上传的数据和过程控制系统的运行数据,数据变化快;还有一部分数据,是和基础自动化系统的监控系统共享的。
在.NET framework中,数据库访问采用ADO.NET技术。WISENTBASE开发库中,支持类型化的数据集和Entity Framework,对数据库操作进行封装。支持数据库:Oracle和MS SQL Server。
4.总结
WISENTBASE开发平台自开发出来后,成功应用于几十条生产线的过程控制系统中,其稳定、高性能、易于使用的特点,大大提高了软件开发的质量和效率,特别是方便现场调试,缩短了软件开发和系统投入周期,为公司和最终用户节约了成本。
《数据库的开发》是一门核心技术课程,在学习本门课程之前,学生已经学习了《JAVA模块开发》课程和JSP网页设计等课程,对于JAVA语言已经有了一个比较深入的了解,学习本门课程主要是为学习其它后续课程做好数据库知识方面的准备。
本课程采用项目教学法,融教、学、做为一体,让学生“在学中做,在做中学”,通过实际分析、设计和实现一个实际数据库应用系统,使学生掌握使用Java语言进行数据库应用系统开发的能力,并可以对数据库数据进行后期的基本维护。本课程主要学习的内容包括:数据库模型设计方法,使用JSP设计开发系统前台页面的方法,使用Java连接数据库的方法,对数据库进行数据的增删改查的基本操作,导入导出数据库数据的方法,备份数据库的方法。通过本课程的学习让学生了解了数据库开发和维护的过程,明确了进行数据库开发和维护的各个环节,在实际操作过程中掌握了相关的知识点,学会了数据库开发和维护的工作方法,可以做到在理论联系实际。
本文就高职《数据库的开发》课程的学习情境设计进行了研究与探讨。为此,我们首先请来了企业专家结合企业实际和岗位需求对课程的职业行动领域、学习目标、工作方法、工作要求、工作对象等方面进行分析,具体内容见表1。
在百度百科上可以找到学习情境的概念是:学习情境主要指在学习获知过程中通过想象,手工,口述,图形等手段使获知达到高效,通常这种情景伴随时代的发展会有不同程度的创新。
我们采用以行动为导向、工作过程系统化课程开发方法进行设计,《数据库的开发》的学习内容由4个学习情境数据库分析与设计、系统原型页面设计、数据库连接与后台设计、系统数据维护来构成。按照这个总体思路我们对《数据库的开发》的学习情境进行了设计,如表2所示。
姜大源先生提出的工作过程系统化,将职业教育的课程开发分为“工作任务分析―行动领域归纳―学习领域转换―学习情境建构”四个步骤。其中学习情境设计是整个课程开发中的重要环节,因此我们必须重视课程开发过程中的学习情境设计。
学习情境是各学习领域内的学习单元,它要在职业的工作任务和行动过程的背景下,按照学习领域的目标和内容,进行教学转换。
学习情境的设计主体必须由主讲教师承担。
学习情境必须由企业实际工作任务或项目作为载体。
以工作过程为主线,将现有的相关知识点融入工作任务中,按照工作过程进行整合、序化,在适度、够用的概念和原理的支持下,通过完成工作任务,使学生习得实际应用的经验和策略。
在教学组织设计中,根据实际情况选择相应的教学方法,比如讲授法、演示法、实践操作法以及小组讨论法等。
通过评价,使教学形成行动―反思―提升的良性循环。
本课程注重学生学习过程的考评,每个小组完成一个开放式的项目,此项目分为4个任务,每个任务完成后,需要提交相关的技术文档资料,各个项目小组分别进行考评,采用教师评价、小组评价、组员互评相结合的评价方式进行,学生各个任务完成的情况和整个项目的最终成果展示和答辩成绩作为本课程评价的依据。