复杂数据环境论文

2024-10-15

复杂数据环境论文(通用7篇)

复杂数据环境论文 篇1

随着数字信息化进程的飞速发展,各行各业的数字化工程都在如火如荼的进行,由于各应用系统建立的先后不同以及需求多样化的缘故,数据资源分布比较扩散,同时也出现了资源重复建设现象1]。在日常工作中需要的信息往往存在于不同的应用系统之中,而这些应用系统又都是各自独立,互不通信,给信息的获取带来严重障碍[2,3]。为了方便、快捷获取共享资源,将各应用系统中的资源进行整合,建立异构数据交换平台就显得尤为重要[4,5]。

本文以湖南地税系统中各个应用系统的数据交换平台为背景,构建一个基于复杂网络环境的高容错松耦合的RDF/XML模式的数据交换平台,为解决异构系统间的数据交换提供一个可供参考的方案。

1 数据交换平台的系统框架

数据交换平台是一种总线式的数据交换、异构系统同步方案,主要由适配器、数据邮局中间件、设计中心、数据交换中心、监控中心和数据标准化工具六个部分组成。其系统框架图如图1所示。其中,适配器是与各外部数据源和应用系统的连接器。数据交换中心完成由一个数据交换的核心引擎构成,负责一个数据交换双方(信息提供者或信息需求者)的交换管理、数据的发送接收和格式转换等任务。数据邮局中间件是一个基于JMS技术和Web服务以及RDF/XML模式的通讯中间件,它是由一系列服务、WebService接口、数据库以及中间件组成。设计中心是对平台进行统一配置、管理、监控的人机交互模块,负责数据交换任务的配置与定义、对外服务接口、数据队列管理和管理与监控等任务。监控中心是用来绘制交换中心的节点关系和部署,实时观察各个节点的状态。数据标准化工具用来维护数据标准化维护与管理。

2 数据邮局中间件技术实现

数据邮局是利用消息的耦合方式来实现系统间的互连,通过节点间的相互联系构造出数据交换环境,建立即插即用的应用消息总线,降低系统间的耦合性。数据邮局运行在数据交换平台/应用系统端,由数据交换平台/应用系统调用。数据邮局是数据交换平台/应用系统和适配器通信的桥梁,它通过消息收发器模块与适配器进行连接通信。数据邮局只有一个消息收发器,但这个消息收发器可以与多个适配器节点进行连接,从而使得适配器节点和数据邮局之间是一对多的关系。各个模块之间采用松耦合技术,可方便系统进行升级扩展。其功能框架图如图2所示。

1) 信道设计。实现信道时,出站信道和入站信道是按照通信协议成对实现的,主要由SOCKET、HTTP、TCP、SMTP等多种协议来实现的。同时,还要保证目的适配器入站信道的协议必须与出站信道使用的协议一致。交换路由管理模块来实现信道和通信端口的选择。信道包括入站信道DrtpReadMessage类和出站信道DrtpSendMessage类。

DrtpReadMessage类是入站信道的核心进程,主要负责Socket连接的监听和建立,用异步传输方式来接收消息,并将接收到的消息存入入站队列,信道关闭时清理其所占用的系统资源。DrtpReadMessage类主要是用来监听适配器的连接请求,由线程 (LCRe-quest)来进行循环监听。收到连接请求后,建立接收请求会话类(DRMSession)对象,并在会话管理的哈希表中加入请求会话类对象,然后调用Socket异步接收函数来接收消息数据包。当接收完毕后,在入站队列中写入消息,等待消息收发器的下一步操作。

DrtpSendMessage类是出站信道核心进程类,主要负责读取从持久出站队列或出站队列中的消息。将消息数据包的目的地址从路由表中的信息解析出来,并将该消息数据包发送出去,若是发送失败的消息是需要写入异常队列的,信道关闭时清理其所占用的系统资源。DrtpSendMessage类主要用来循环读取出站队列或持久出站队列中的消息,根据从路由表中解析出的消息目的地址连接远程服务器,连接成功后建立新的会话调用线程池中的线程发送当前会话中的数据。

2) 队列管理设计。一般来说,所有的队列的消息都是存放在内存中的,便于数据的读取。但持久出站队列的消息则是保存在硬盘外的。所有的队列都是采用先进先出的模式进行管理。只能被读取一次,一旦读取后就会被系统删除。

3) 交换路由管理设计。交换路由的管理是数据邮局实现消息交换的基础,数据邮局在交换路由的管理上,使用的是距离向量的方式,数据邮局的交换路由信息,是由相临的节点的路由信息推导而来。路由信息中包含了节点的距离和线路的带宽。数据邮局总是使用节点距离最短的路由,在节点距离相同的时候,使用带宽最高的路由。其主要工作是数据邮局交换路由表的维护。路由表包含两个部分的信息:发送端即本地适配器及接收端即远端适配器的信息。

数据邮局实现“点到点”或“发布/订阅”的路由转发主要是通过分析路由策略。根据交换路由表的设置,交换中心的交换引擎实现消息发送方和接收方的数据交换。数据邮局根据消息头中的控制信息的不同,而选择对应的路由方法。第一种方法是点对点的方式,主要由消息发送者指定消息的目的地,交换中心根据消息头中的目的地进行消息的路由。第二种方法是发布/订阅方法,交换中心在消息服务总线建立主题组别,每个客户端都可以向这个主题发布消息或订阅消息,类似于一种广播方式。并且通过适配器通过监控服务获得所有发布或订阅的组别ID(GROUP_NO),如果发布或订阅的组别ID相同,则可以将它们相连保存,生成路由表信息。消息到达后,数据邮局会获得消息头里的组别ID,根据ID查找路由表信息,对找到的订阅适配器ID在设计中心中查找其提供的配置连接信息并调用它将数据推送到目标适配器。

交换中心引入缓存数据库和消息中间件MQ以保证数据可靠地传送到每个目标适配器。交换中心采用存储转发策略,先将数据存放到缓存数据库中,并根据路由表来选择路由,最后将消息发送到对应的数据队列中。通过MQ可以屏蔽不同的通信协议之间的差异,简化网络编程的复杂性,以松耦合的方式独自运行。交换路由表如下所示:

4) 消息收发器设计。消息收发器是适配器与数据邮局交互的枢纽,主要是实现触发转发消息到其他适配器的功能。对于消息入站,入站队列或异常队列中的消息经由消息收发器读取,然后将这些消息发送到数据邮局,由数据邮局转发给数据交换平台/应用系统。对于消息出站,数据邮局将消息发送给消息收发器,发送消息到出站队列中,并通过出站信道发送出去。如果接收消息是路由消息时,路由管理模块将更改交换路由表。如果接收消息是需要转发到其他适配器时,将直接保存在出站队列中,并等待出站信道的读取和转发送。

3 实际应用及分析[6,7,8]

根据本文提出的数据交换平台的体系框架,开发了数据交换平台原型系统。系统开发中的Linux系统运行在Red Hat Enter-prise Linux 4(64位)的系统中,Window系统运行在Windows Server 2003系统中,数据库采用Oracle 11g,并配置设计服务器、适配器、数据标准化服务器、监控服务器、数据交换引擎服务器和数据库服务器的网络地址,最后,将数据交换平台原型系统在株洲地税系统进行运行测试,经过半年的运行,效果比较好。

根据实验运行结果,分析本平台的优势具有以下特点:第一,解决了地税领域中已经建立的基于Java、.Net等技术,Windows、Linux等不同平台的大集中系统、税源管理系统、统一流转审批平台、纳税服务平台、湖南地税门户网站群、网上申报系统、财税库银系统、12366短信平台、外部数据平台、统一支撑平台、核心业务接口系统等的数据共享问题。第二,基于地税领域中的各业务应用系统,建立了可供单位共享使用的数据中心,实现了地税信息系统数据的有效整合和集中。第三,平台采用了安全可靠的数据加密和数据传输技术。第四,平台的数据采集功能强大,能够实现从Excel、FoxPro、SQL Server、Oracle等不同数据格式的数据采集和集中转换。第五,平台用户界面友好,操作简单易用。

4 结束语

本文研究的解决方案能很好地解决了地税领域中已建立的十几套业务应用系统存在的缺乏信息共享和互通互联的信道和平台,以及协同应用困难等问题。本平台在株洲地税系统实施后,运行良好,效果显著,为促进湖南地税系统的数据共享提供了确实可行的方法,顺应了税务系统的信息化建设要求,具有较大的推广价值和广阔的应用前景。

摘要:针对现有税务领域中各应用系统之间的异构性、非关联性和共享数据难度大,提出构建一个复杂网络环境下的基于RDF/XML模式的高容错松耦合的数据交换平台。该平台由高可靠并行数据传输路由、数据邮局、跨平台异构数据适配器构成,建立基于软总线的异步消息传输机制,采用基于规则的元数据表示方法,通过数据邮局的路由管理实现一对多、多对一和多对多的松耦合高容错RDF/XML数据交换。最后,用实际应用证明了该数据交换平台的可行性和有效性。

关键词:RDF/XML,公共元数据,适配器,数据邮局,交换监控中心

复杂数据环境论文 篇2

在机械产品创新设计的过程中,随着计算机技术持续深入的应用,仿真分析已经从单纯的设计方案验证逐步转为对产品设计全过程的支持。随着产品复杂程度的不断提高,产品的性能分析会涉及多学科问题,需要设计人员、管理人员和不同领域的仿真分析人员协同工作。此外,在对产品进行各类型仿真分析的同时,会伴随产生大量的形式各异的模型数据和相关文档。如何解决异地、异构平台下的数据资源共享,在协同仿真过程中实现对CAE数据的有效管理已成为产品研发阶段的重大挑战。近年来,许多国内外研究机构与商业公司围绕协同仿真以及数据管理集成等技术展开了广泛的研究[1,2,3,4,5,6,7]。

协同仿真环境(collaborative simulation environment,CSE)是针对仿真数据的异构性、仿真流程的复杂性和多变性,以及仿真对象的多样性等问题,建立的一种以流程和数据管理为核心的复杂机械产品仿真解决方案。针对机械产品设计初期的多学科性能仿真要求,CSE采用面向服务架构(service-oriented architecture,SOA)集成各种异构仿真软件,利用仿真任务的流程化实现软件调用与人员工作的协同。平台为仿真分析人员和管理人员提供不同层面的仿真数据和报告管理功能,结合仿真流程的实时可视化监控,有效地帮助管理人员及时作出正确决策。

构建适合机械产品仿真特点并满足流程管理要求的数据库系统,成为协同仿真环境开发的重要环节。因此,需要通过对仿真数据的特点、类型进行详细分析,基于CSE的技术架构,设计既符合机械产品特点,又满足仿真分析人员管理需要的数据库系统。笔者利用Java内容仓库[8,9,10]模型构建了仿真分析数据库结构,结合关系型数据库管理系统MySQL[11]管理仿真流程数据,为协同仿真环境提供关系数据库与内容仓库协同工作的底层组件。

1 数据管理系统技术

1.1 Java内容仓库

在复杂机械产品的仿真过程中,产生结构化数据的同时,也伴随有大量的非结构或半结构化信息。结构化数据可以通过现在主流的关系数据库系统进行管理,半结构化信息可进行转化处理,而且也有专用数据库,近年来涌现的内容管理系统(content manage system,CMS)能够解决非结构化信息的管理问题。但是,由于各种内容管理器产品之间使用不同API提供服务,不具有可互换性,因而无法实现数据资源的自由共享。Java内容仓库是一个高级的信息管理系统,该系统是传统的数据仓库的扩展,它提供了诸如版本控制、全文检索、内容分类、访问控制、内容事件监视等内容服务。尽管很多现有的CMS或多或少包含有与内容仓库类似的功能,但CMS不是内容仓库,它只是将内容仓库用于底层组件,以用来实现业务逻辑。JSR-170规范[12](Content Repository for JavaTM Technology API,JCR API)规定了一个能与内容仓库互相访问的、独立的标准方式,从而实现了内容管理器模块的标准化。

JSR-170主要规范了数据模型、数据存储,以及与数据存储相关的管理功能。Java内容仓库总共分为3个层次,层次的划分主要根据读、写、扩展功能三方面制定,以适应提供横向功能的厂商。读就是可以读取数据信息以及模型信息;写就是不仅可以读,还可以将数据保存到存储空间;扩展就是除数据模型外的附加功能,如SQL搜索、版本控制、发现机制、锁机制、事物机制等,这些功能形成了一个完整的企业内容存储领域空间。

图1给出了遵循JSR-170规范开发的应用系统的结构。在该系统运行的时候,它可以操作内容仓库1、2、3中的任意一个,数据可使用关系数据库、文件系统和XML来存储。在这些内容仓库当中,只有内容仓库2是直接支持JCR API的,另外两个都需要JCR API驱动来和应用系统交互。

1.2 Java内容仓库模型

Java内容仓库模型[8,9]是一个树状结构,树上的元素分为两类:节点(node)和属性(property)。从根开始,内容元素的定位采用UNIX文件系统风格,例如“/A/B/ccc”表示根下面A节点的B子节点的ccc属性,而且可使用相对定位符“.”和“..”。仓库模型是由单一内容仓库构成,有一个或多个工作区。每个工作区都包含一个项目树,项目用节点的方式来表达。节点可以有零个或多个子节点以及零个或多个相关属性,每个属性有且仅有一个父节点,不能有子元素,而实际的内容保存在节点的属性中。每个节点都有且只有一个主节点类型,主节点类型定义了节点的特征。除了主节点类型之外,节点还可以有一个或多个混合类型等。内容仓库模型如图2所示,其中,圆圈代表节点,矩形代表属性。节点A和B都衍生自一个根节点,同时根节点可以有属性,例如整型属性“Value”值为100。节点B有1个子节点D和2个属性,字符型属性“Name”的值为“flow”,整型属性“ID”的值为1。

1.3 关系型数据库

关系型数据库采用关系模型,这种模型概念简单、清晰,并且具有严格的数据基础。与内容仓库的操作相比,这种数据库操作直观、容易,存取速度快,而且能够避免数据冗余。目前主流的关系型数据管理系统有Oracle、MySQL、SQL Server和DB2等。其中,MySQL是当前较为流行的开源数据库,可以存储大量的种类繁多的数据,并且提供服务以满足任何组织的需要,因此CSE的数据管理系统中选择该数据库作为底层组件的一部分。

2 协同仿真环境中的数据管理系统

2.1 协同仿真环境中数据的特征与分类

复杂机械产品的仿真分析涉及各种结构与系统,分析类型包括静力学、动力学、运动学等。由于分析对象与分析类型的差别,也就存在种类繁多的结构化数据、半结构化信息和非结构化文档。结构化数据包含有用户、流程信息、仿真任务参数与仿真结果等,如分析对象的主要结构尺寸和材料属性、分析过程中的边界条件、分析结果中的应力和位移等各种类型的数值。半结构化信息有Web页面、流程与仿真数据映射成的XML文件。非结构化文档表现形式有文本、图形图像、业务文档、数据库文件、音频/视频等,仿真分析的中间过程和最终结果有很大一部分是以图形、动画等形式表现的,因此对这部分数据的管理是仿真数据库的一个主要内容。此外,有限元软件、动力学分析软件、结构优化软件、绘图软件等辅助工具在仿真分析过程中将产生必不可少的二进制文件,这些仿真数据文档需要占用大量存储空间。在协同仿真环境中的仿真流程控制模块中,除了以上提到的仿真分析数据,还包含许多仿真流程信息、仿真任务信息和用户信息。

根据信息与用户、流程和仿真的关系,将各类数据分为三类:用户管理信息、仿真流程数据以及仿真分析数据,详见表1。而仿真流程数据实际上包含了仿真流程在建模过程中的参数,也包含了部分在流程运行过程中施加的仿真分析参数,这类参数与仿真分析数据的仿真任务参数是一致的。

2.2 协同仿真环境中的数据管理系统技术架构

建立为协同仿真环境服务的数据管理系统,需要先了解CSE的体系结构。CSE的功能框架可分为三层:数据支持层、环境集成与服务层、用户界面层。数据支持层包括数据库、模型库和知识库,为设计及仿真平台提供数据与模型的提取与存储管理,是整个系统的底层支撑;环境集成与服务层是系统功能的中枢,包括仿真流程管理系统、协同运行平台支撑、知识与报表管理系统等;最前端是用户界面层,包括Web浏览器和仿真流程编辑与执行工作台,通过这些前端界面实现具体的机械系统仿真任务和管理,如流程的定义、数据与报告的查看;同时也能完成仿真分析,如三维模型的建立、虚拟样机的构造、样机仿真及结果分析等。

图3为协同仿真环境中的数据管理系统技术架构。按照协同仿真环境管理与分析功能这两条主线,用户分别通过Web浏览器端与Eclipse RCP客户端与平台进行交互。

在Eclipse RCP客户端的工作台(Workbench)中实现仿真流程的建模与控制执行,采用.NET、COM等技术对流行的商用CAE软件和自主研发的仿真工具进行开发整合,完成仿真数据的采集并保证向数据库服务器与内容仓库服务器的同步存储。利用Web Services技术和 REST Service技术集成本地、远程以及网络服务,利用DAO(database access object)接口与CAO(content access object)接口通过JDBC与JCR访问数据库,保证系统的安全性能,方便用户通过Internet/Intranet进行多种功能的查询。

Web用户界面以Java为工具进行开发,可以进行用户管理、仿真数据管理、仿真流程管理和仿真报告管理。J2EE服务层是连接客户端与数据库的桥梁,采用REST Service架构,REST是一种针对网络应用的设计和开发方式,能够提供标准的简单的接口。该层同样通过接口DAO和CAO来访问数据库。

DAO模式是一种在J2EE中大量使用的设计模式,它主要的特点和目的是将跟持久层相关的问题与业务逻辑层相分离,通过DAO向业务逻辑组件提供数据库访问的接口。Hibernate作为数据访问层的底层持久框架,实现面向对象的域模型到传统关系数据库的映射。基于数据映射原理,提出使用与DAO类似的CAO,建立一种面向对象域模型映射到内容仓库的机制,使得数据使用者无需关心内容仓库访问的具体方法,同样也实现了业务逻辑层与内容仓库的隔离。

数据服务层中采用Hibernate的轻量级ORM(object relational mapping)模型和用于Java内容仓库的自定义ORM进行数据持久化,仿真数据的存储采用文件服务器和数据库服务器联合的方法。为了保证数据传递的准确,通过数据驱动组件处理CAE软件操作异常、断电等事务,实现数据回滚。

2.3 协同仿真环境中仿真数据的存储

针对以上协同仿真环境中的数据特点和分类,数据库系统使用MySQL和Java内容仓库协同工作。图4为协同仿真环境中的数据存储关系图。数据库服务器存储与用户、仿真流程相关的所有信息以及部分仿真参数,由于这些数据使用频率高、占用空间小,故采用目前常用的关系型数据库管理系统——MySQL以提高数据存储速度,减少数据冗余。

对于与仿真分析相关的使用频率低、占用大量存储空间的文件,以及重要仿真任务参数和结果则存储于采用Java内容仓库技术的文件服务器上。根据机械系统从系统到部件、从部件到零件的层次逐级分解(与机械产品系统的BOM相类似)的数据展示形式,仿照仿真分析人员利用文件夹管理仿真数据文档的方法,采用Java内容仓库提供的树形结构对这类数据进行存储,最后,通过Web表示层提供给用户友好的产品零部件树状关系图。

根据仿真分析本身特点,在Java内容仓库中,需要通过自定义设计仿真数据仓库的一套节点类型,以便有指定的数据类型来描述节点的数据结构。为了便于区分和存储,将仿真分析数据分为元数据与数据文档。仿真元数据指的是仿真分析人员根据分析要求和仿真经验提取的仿真任务参数与仿真结果参数。仿真元数据可以定义成不同类型的数据,直接存入Java内容仓库的节点属性中。仿真数据文档又分为两类:一类是仿真分析人员在分析过程中提取的各种文件;一类是仿真计算过程中需要自动生成的计算模型与结果文件,包括几何模型文件、仿真分析模型文件、仿真过程与结果文件、图形图像与文本文件等。对于第一类仿真数据文档,需要根据数据文档的格式进行相应固定位置的存储。对于第二类仿真数据文档,由于它主要供仿真分析人员以后查看和计算所用,故对于数据库开发人员而言,不必关心数据文档的具体格式,只需将这些文件存储入相应的节点,利用WEBDAV方式[13,14]就可以实现对仿真数据文档的上传和下载。

需要指出的是,关系数据库与内容仓库中均存储了仿真任务参数。这些参数决定整个设计过程的一致有效性,在流程运行、报告管理与数据管理中都需要用到。在协同仿真环境中,CAE服务器已经保证了以上数据的同步。

3 协同仿真环境中数据管理系统的应用

为了符合机械产品“整机→子系统→部件→零件”的四层关系,利用内容仓库的树形结构实现对仿真分析数据的存储。仿真数据的元数据信息以节点属性的形式来实现存储,而数据文档则放在相应的节点目录下。关系数据库则存放仿真流程、用户相关信息以及部分仿真任务参数,以供仿真报告生成的快速调用。

为验证系统的有效性和实用性,选取某天线传动锁定装置在协同仿真环境中进行分析。该装置较为复杂,包含许多典型机械零件,需要进行仿真分析的类型较多,包括结构静力学与动力学、多体动力学与运动学,其数据管理的应用具有一定的代表性。图5为协同仿真环境的数据管理页面,左侧为项目树,项目树反映了Java内容仓库的真实存储结构。项目下包含有传动锁定装置这个子系统,针对该子系统需要进行各种类型的仿真分析,页面仅列出静力学分析下的结构。

在静力学分析类型下包含有多次不同分析状况,分析状况的不同会导致不同的模型属性、边界条件与仿真结果。为了便于实现仿真任务的流程化,需要将仿真过程进行步骤的划分,划分原则是保证常用软件的操作习惯和仿真数据在各步骤提取时不重复。将仿真过程划分为:原始模型、计算模型、模型属性、约束设置、载荷设置以及分析结果。针对这些分类,可以将静力学分析过程中的相关数据进行存储,原始模型和计算模型中主要存储CAD和CAE初始模型;模型属性中存储分析对象材料信息;约束载荷主要记录约束和载荷的类型、数值与位置;分析结果主要存储一些应力数据、位移数据、图片和动画。以上所有信息,通过树形结构就可以完全展示各级之间的关系。

图5右侧显示了元数据的管理页面,以最直接简洁的表格形式描述节点的所有元数据信息,元数据只包含两列信息:属性名与属性值。仿真分析人员无需在众多的文件夹中找寻与元数据对应的数据文档,在页面上就可以直接查看元数据并下载文档,包括查看与下载图形、视频以及二进制数据文档。图5中显示了天线传动锁定装置几何模型的相关参数,包括质量、体积、材料信息,以及系统构成等。

由于协同仿真环境中智能报告生成的基本参数来源于关系数据库,因而能够获得较快的数据读取速度。所有报告内容的选项都与关系数据库保持相同的结构,即在级联菜单中,每级菜单的选项都与上级菜单关联,其关联结构与数据库一致,实现报告内容的动态级联。此外,各级菜单选项的添加均不需要刷新页面,缩短了用户等待时间,把对资源的浪费降到最低。

4 结论与展望

通过对复杂机械产品协同仿真过程中各类仿真数据的特点分析和分类,构建了协同仿真环境的数据管理系统的技术架构。基于协同仿真环境的功能框架,设计了关系数据库与内容仓库协同工作的数据库系统。选取某天线传动锁定装置在协同仿真环境中进行分析,可以快速、准确地获得仿真分析相关数据,表明了这种数据管理系统的有效性和实用性。由于协同仿真环境尚处于开发阶段,验证实例仅为包含静力学、动力学与运动学分析所产生仿真数据的应用,整个系统还需要多学科分析与耦合的验证来不断完善。

随着机械产品设计模式的转变,建设具有多领域协同仿真能力环境将为提高产品质量、缩短产品设计生产周期作出重要的贡献。协同仿真技术在产品制造业领域的广泛应用,能够进一步加强企业的研发能力,提升企业的核心竞争力。

复杂数据环境论文 篇3

近来,笔者在开发应用程序过程中,也遇到了这样的问题,经过不断的研究和优化,终于找到了一种相对简单的操作方法,实现了数据库与电子表格本文档间的数据交换,本文以学生电子成绩表格为例,说明如何将学校教务处下发的电子成绩单中的信息保存在VFP数据表中,并将数据表中数据导出到电子表格文档中(见图1),希望对同行有所帮助。

1、基本算法

1.1 导入算法

数据库从电子表格文档中导入数据,大概分以下四步:

第一步:获取XLS文档的路径与名称字串;

第二步:在VFP中定义OLE对象,启动Excel软件,找到电子表格文档并打开;

第三步:在VFP中利用VBA操作工作簿、工作表和单元格,获取相应数据;

第四步:将数据导入到VFP数据表。

当有多个表格存在于工作表中时,可重复第三步与第四步,直到扫描完毕。

以上各步均需做大量的细致工作,做好信息的比较与判断,以适应复杂表格中数据提取的需要。

1.2 导出算法

数据库将数据导出到电子表格文档中,与导入过程大致相似,稍有不同,大致分以下四步:

第一步:获取预设的默认的XLS文档的路径与名称字串;

第二步:在VFP中定义OLE对象,启动Excel软件,找到默认电子表格文档并打开;

第三步:在VFP中利用VBA操作工作簿、工作表和单元格,将相应数据写入到电子表格文档中的指定单元格;

第四步:保存电子表格文档。

其中第四步,因具体名称可能存在具体差异,可以由人工完成。

2、VBA基础知识

V B A全称为Visual Basic Application,是Visual Basic的应用程序版本,是面向对象的程序语言[1],主要应用于自动执行的重复操作与“智能化”处理,还可以进行“第三方开发”。处理电子表格文档时要用于以下几个概念:

2.1 VB A对象:包括Application(Excel应用程序对象)与Work Books(Excel工作簿对象)。

2.2 所使用的方法:见表1。

2.3 所使用的属性:见表2

2.4 在VFP中执行VBA对象的方法,取得对象属性的数据,可以在其命令前加一个“.“。

3、算法实现

3.1 获取文档

F ilen ame=GETF ILE(“XLS”,”查找Excel电子成绩单”)

IF Len(AllTrim(filsname))>0

执行相关后续操作

ENDIF

3.2 定义对象与打开文档

oleapp=CREATEOBJECT("Excel.Application")&&定义Excel应用对象[2]

oleapp.application.visible=.f.&&设置Excel应用对象不可见

oleapp.application.workbooks.open(filename)&&打开指定XLS文档

3.3 选取并保存工作表单元格中的数据

WITH oleapp.application

.range(cellid1).select&&选取由变量cellid1指定的单元格

xuehao=.activecell.value&&由变量保存当前活动单元格的数据值

ENDWITH

注意,此处为执行VBA、指定OLE对象属性,应将相关命令放在WITH语句中。WITH语句提供了为单个对象指定多个属性的便捷途径。同样也可以在WITH...ENDWITH结构中执行方法[3]。

3.4 判断何时结束扫描

何时结束扫描,取决于被扫描单元格中的数据是否为空,当其值为.NULL.时,表明扫描结束,判断程序为:

IF VARTYPE(yy)='X'&&判断是否还有数据

执行相关操作

ENDIF

3.5 将获取的数据添加到数据表

有了变量保存的数据,将其追加到现有的目的数据表中,技术非常简单,只用下面代码即可实现。

INSERT INTO学生成绩(成绩代号,学号,姓名)VALUES(rr,xuehao,xingming)

3.6 将数据表中的数据写入Excel表格

此步实际上是3.3步的逆过程,只需将保存在数据表中的数据放到相应工作表单元格的value中。

.range(cellid).select&&cellid变量中保存着欲选取单元格的地址

.activecell.value=ALLTRIM(学号)&&将“学号”字段内容赋给当前单元格

在实际操作中,只需适当控制单元格地址与所要赋给的值,就能将指定的数据写入到Excel表中的指定位置,完成数据导出过程。

上述算法的实现,只是描述了简单的技术实现过程,远没有达到应用状态,在设计开发中还要考虑到个重复表格内容的电子表格文档的处理,就使应用变得更加复杂。另外,将数据添加到数据表时还要有视图的前期制作。

4、制作实例

以哈尔滨医科大学大庆校区的学生电子成绩单的导入模块为例,模块可以从一张工作表中提取1个以上班级的学生成绩单中的学号与姓名信息数据,但没有考虑到一个工作簿中更多工作表的这种状况,如果需要,请读者在此基础上自行考虑解决办法。在提取信息前,要提前设置课程及时间等项内容,然后选取要提取的电子表格文档,由模块自动完成信息提取工作,中间不需人工干预,导入数据完成后,会有相应信息显示,见图2。

表单上“导入”按钮的Click事件代码略。

数据导出过程与导入大致相同,这里不再讲述。

5、结束语

对于利用VFP导入Excel数据的文章以前也有过一些,但都不是很具体,不能真正的给出相对完整的代码以供读者使用,其设计思路也不尽相同。本文是在放弃Import导入命令的前提下,提出的一种相对简便易行的方法,实现了Excel复杂电子表格与数据库间数据的选择性交换。此方法主要针对特定单元格进行数据导入,但需要事先确定单元格位置,然后再进行数据交换。导入数据过程中要时刻判断是否已经读到没有数据的单元格,以确定是否继续下一单元格的数据提取。提取数据时,也可以使用进度尺控件表明当前进度,这样做需事先统计数据交换量,相当于遍历了两趟电子表格,效率上有点低。也可以让Excel软件OLE对象可见,以便用户能看到操作过程,了解进展状况。

总之,在实际设计过程中,可能会遇到各种问题,读者可以对上述技术进行灵活应用,以满足实际需要。

参考文献

[1]John Walkenbach.Excel2003高级VBA编程宝典[M].北京:电子工业出版社.2005

[2]陈宗兴.中文版Visual FoxPro完全OLE应用手册[M].北京:宇航出版社.1998

复杂数据环境论文 篇4

1 G1000系统维修平台结构

系统维修平台能对G1000系统电子设备的各种信号等进行快速精确的测试, 它由信号模拟机, 系统选择面板, 数据组合、采集、转换模块和终端主控系统四大功能模块组成。使用时系统生成模拟信号, 用户选择被测件及其测试项目进行测试, 根据测试结果自动给出提示或者告警信息, 找出故障点。其中系统选择面板, 数据组合、采集、转换模块构成数据转换子系统, 用来选择测试组件, 采集输入信号并转换为适合主控计算机总线的格式, 在维修平台中是关键环节 (如图1) 。

2 数据转换子系统硬件电路设计

2.1 硬件总体结构

数据转换子系统由上位机、USB/UART转换电路、LPC2132单片机、供电电路、复位电路、时钟电路、显示电路及外围继电器电路等部分组成 (如图2) 。

数据转换子系统由上位机软件选择要选通的数据, 对外部信号进行采集, 对系统选择面板传出的数据进行整合, 把数据包发给控制器, 解码后由单片机控制外部设备选通需要的数据, 并在液晶屏幕上显示相应的选通信息。测试信号通过接口数据转换模块的继电器矩阵选择后, 最终到达GARMIN G1000系统自动测试终端设备。

2.2 主要电路设计

2.2.1 USB/UART转换电路

FT232RL主要功能是在内部硬件逻辑作用下实现USB和异步串行传输接口的转换。在上位机软件控制下, 经由U S B/U A R T接口的硬件电路把上位机发送的控制码传送给LPC2132控制器, 通过LPC2132控制器的解码然后控制相应的继电器吸合, 并通过LCD液晶显示器显示相应的控制信息。该U S B/U A R T模块采用总线供电方式。总线供电的优点是无需外接电源, 移动性强。

2.2.2 供电电路

系统电路需要3.3V电源并提供大约600mA电流才能满足要求, 采用BM1117-3.3V芯片将5V电源转化成3.3V作为主芯片以及其他部件的电源。

2.2.3 时钟电路

L P C 2 1 3 2可以使用外部晶振或外部时钟源, 通过内部P L L (Phase Locked Loop) 电路可以调整系统的时钟, 提高系统的运行速度。本设计中, 外部石英晶体振荡频率选择为11.0592MHz。在调试程序时, 根据程序要求, 相应的进行片内锁相环P L L设置, 使C P U的指令执行速度满足要求。

2.2.4 复位电路

系统采用上电自动复位和人工复位结合。MAX809T是一种单一功能的微处理器复位芯片, 具有低电平有效的RESET输出, 小型的三管脚SOT-23封装, 无需外部器件, 它可以在上电、掉电和节电情况下向微控制器提供复位信号, 当电源电压低于预设的门槛电压时, 器件就会发出复位信号, 直到在一段时间内电压又恢复到高于门槛电压为止。当需要进行单片机复位时, REST S2按下, 即可实现手动复位功能。

2.2.5 MJTAG接口电路

为了将编制好的硬件控制程序拷贝到单片机各个模块, 系统采用精简版的10脚MJTAG仿真调试接口, 用于下载程序。如果用户需要用单片机中的P1.26~P1.31作I/O口, 不进行MJTAG仿真调试, 则可以在用户程序中通过设置PINSEL2寄存器来使LPC2132内部M J T A G接口禁止。

2.2.6 外围控制电路

控制电路使用G5V-1继电器, 因继电器工作电流比较大, 单纯的采用ARM的I/O口来驱动是不能正常工作的, 所以为了驱动继电器, 采用ULN2803芯片。

2.2.7 液晶显示模块

采用L C D 1 2 2 3 2 F型点阵图形液晶显示器, 在L P C 2 1 3 2与L C D 1 2 2 3 2连接处使用总线接口, 数据通过总线接口传送到LCD12232F进行显示。

3 软件的设计与实现

3.1 总体设计

子系统软件设计本着易维护、精简、实时、可靠性高的原则, 包括系统初始化、时钟设置、串口接收、解码校验和控制等部分。其中重点是数据的解码校验部分, 应该保证数据在受到干扰的情况下仍能准确的传输。

系统选用LPC2132高性能单片机作为主控芯片。首先用PC上位机软件选择并打开系统占用的COM口, 然后选择要选通A或B路信号和这一路的某几位信号, 然后点击发送。上位机就会把这些信息打包通过USB/UART模块发送给控制器LPC2132, LPC2132对数据进行校验解码, 丢弃无效数据包, 选择有效的数据包并提取出相应的选通信息, 然后输出控制选择某路继电器通, 然后控制选通的这一路继电器的相应位, 实现数据选通输出 (如图3) 。

4 上位机程序设计与实现

上位机源程序用V C++语言编写, 并加入了功能强大的M F C (Microsoft Foundation Class) 类库。用MSComm控件实现串口通讯。M S C o m m控件有两种处理通信的方式, 即事件驱动和查询方式。事件驱动方式实时性较强。查询方式适合于应用程序较小、实时性要求不高的系统。由于对实时性的要求, 本系统主要采用了事件驱动方式和响应中断的通信方式。

5 结语

本文以LPC2132为主控核心, 设计了一种由上位机软件选择要选通数据, 把信息打包发给控制器, 解码后控制数据选通单元选通所要选通数据, 并在液晶上显示相应的选通信息的系统。经过实物验证, 该系统稳定可靠, 高速, 便于操作, 人机交互性强。上位机软件界面简洁, 操作方便, 并采用了可靠的数据校验算法, 大大减少了数据传送的误码率。本系统选通的信号高速同步延时小, 通用性很强, 可以推广到其他类似系统使用。

摘要:研制了GARMIN G1000系统维修平台的数据转换子系统。在分析GARMIN G1000系统及其内部总线规范的基础上, 利用VC++和LPC2132单片机实现了数据转换子系统设计, 包括硬件、软件和上位机的设计等。硬件设计主要包括MCU最小系统电路、外围控制电路、液晶显示等;软件设计主要包括程序初始化、串口接收、解码校验等;上位机设计主要用MSComm控件实现了串口的通讯功能。

关键词:复杂航电设备,LPC2132单片机,数据转换系统

参考文献

[1]任可, 苟江.GARMIN G1000航空电子系统原理及维护方法[J].自动化与仪器仪表, 2009, 142 (2) :87-89.

[2]吕毅清.新一代的航空电子自动测试设备[J].国外电子测量技术, 2000, 1:8-11.

[3]董勤鹏, 熊华钢.基于某航空电子设备的自动测试系统设计与实现[J].自动化技术, 2008, 284 (21) :146-149.

复杂数据环境论文 篇5

互联网以及云计算等信息技术的快速发展以及应用,催生了大数据技术的出现,大数据目前的发展已经备受瞩目,大数据时代的来临已经成为不可阻挡的趋势。大数据作为最新的信息技术之一,其应用价值极高,所以电信公司对大数据进行了深化研究,并对大数据进行了进一步的应用,其应用效果较为明显。但是,在大数据不断发展的背景下,电信公司所面临的数据以及管理等方面的压力日益增加,在这样的情况下,电信公司如何对大数据进行有效处理就成为了其当前亟待解决的问题。

2. 电信公司对大数据的实际应用

2.1 在语音数据分析中应用

在大数据技术的发展下,其中包含的语音数据部分应用越来越广泛,此部分在电信运营商中的应用已经十分普遍,电信运营商可以通过对此部分的应用来对其自身所具有的产品进行服务,然后对产品用户的新需求等进行分析,之后以此为基础为客户提供其满意的产品和服务,这样的方式使得电信旗下的客户满意度日益提高,而且客户的信息消费也随之大幅度增加。

2.2 在网络流量分析中应用

在当前社会发展过程中,网络流量的应用已经十分普遍,而且人们对流量的要求逐渐提高,在这样的情况下,电信运营商若是想要为客户提供满意的流量服务,就需要利用大数据来对网络流量进行系统地分析,从而获得流量的变化趋势,然后根据实际情况来对网络流量资源进行合理的优化配置,在此基础上还需要对网络日志进行分析,之后对网络进行整体的优化,以此来实现提高网络质量的目标[1]。

2.3 在企业经营战略制定中的应用

当前经济市场的竞争日益激烈,在残酷的竞争环境中,企业想要站稳脚跟,就必须要制定合适的发展战略。因此,电信企业在运营的过程中,利用大数据技术对市场竞争以及企业自身发展情况进行了深入地分析,在此分析基础上,企业可以制定正确的发展战略,并提出合理的企业管理方法,以此来提高企业的核心竞争力,为企业的长远发展奠定良好的基础。

2.4 在企业业务创新中的应用

企业想要长远的发展下去,就要坚持走创新道路,企业在创新的过程中,必须要对客户的隐私进行有效的保护,若是创新是基于客户因素侵犯的基础上那么创新的意义就不复存在,因此,企业在利用大数据技术进行创新的过程中,需要对客户隐私进行严密的保护,同时进行信息加工,通过提供信息服务的方式来实现创新,从而推动企业的进一步发展。

3. 电信大数据面对的挑战

3.1 数据仓库无法线性扩容

在电信企业业务不断增加的过程中,企业网络规模日渐扩大,这样就使得大数据处理的难度增加,而传统数据库的存在也无法满足当前数据存储数量的增加,进而导致数据仓库无法线性扩容问题出现[2]。

3.2 数据仓库以及架构更新速度较慢

在大数据应用越来越广泛的基础上,电信运营商中的大数据服务日益多样化,而为了对其进行更好应用,需要对应用内容等进行多方面的深入分析,分析所产生的数据存储对数据仓库以及架构提出了新的要求,但因为数据仓库和架构更新速度较慢,从而使得两者的应用无法满足当前信息服务的要求,鉴于这样的情况,加快数据仓库以及架构更新是非常有必要的。

4. 复杂网络的电信大数据处理

基于复杂网络的电信大数据处理研究可以从以下几个方面入手,具体内容如下。

4.1 从静态数据方面入手进行研究

电信公司中所出现的运营数据并不是一层不变的,在时间渐渐流逝的过程中数据结构也发生了相应的改变,在这样的情况下,基于复杂网络进行电信大数据处理需要从三个方面入手:

第一方面是度和度的分布。所谓的度,就是指和此页面节点有关联的其它页面节点的数目。在对电信大数据进行研究的过程中,本质就是对一个用户和其它用户通话的信息数目进行研究,而用户通话的呼出和呼入可以被称为出度和入度,所有用户节点的平均值就是网络平均度。而网络平均度从复杂网络背景中进行分析后可以发现其和用户的重要程度有着密切的联系。而出度和入度数据比较大的用户就是网络的核心节点,是其它节点联系的中心。

第二方面是平均路径。在电信大数据处理中,平均路径是非常重要的组成部分之一,此部分主要是指网络中两个节点之间最短路径的边数。随便抽取两个节点所能得到的最大值就是网络的直径,平均路径长度可以作为参数来对网络转发能力进行有效的衡量,同时最短的平均路径就是网络传输最快的,和网站查找有着密切的联系。

第三方面是聚类系数。此系数主要是对网络连接的聚集程度进行描述,若是网络聚集十分密切,那么相应的网络节点之间也会联系较为密切,通俗一些说就是当一个网络节点有很多邻居的时候,这些邻居之间也可能是邻居[3]。

4.2 从动态数据方面入手进行研究

在对电信大数据进行分析后可以发现,其自身特点十分地显著,具体表现为用户动态性十分突出,其生命周期这一特征十分鲜明,而其中的时间演化是复杂网络中必然存在的属性之一,每一个网络在应用一段时间之后都会出现演化规律,但是因为这些数据无法以分或者是秒为单位进行研究,所以为了找出其中掩藏的核心价值,通过是以季度或者是月为单位来进行通话数据研究的。通过对通话数据的研究,可以得到两方面有价值的信息,一方面是通话聚集效应。在进行分析后可以发现,在众多数据中有部分数据的概率是明显高于其他用户的,而与这部分用户相关的数目越多,这部分用户就越无法脱网,所以电信公司可以以此为基础来构建流失模型,采取有效的措施来留住这部分客户。另一方面是发现客户个人通话特征。通过对客户通话数据进行分析后可以发现,有部分客户的通话大多是在夜晚进行的,还有部分客户是在早晨进行的,但通过数据得出这样的结论之后,电信公司就可以以此为依据来构建新的用户模型,然后根据用户的通话习惯来制定相应的通话套餐,通过为用户提供其需求的通话套餐来留住老客户,吸引新客户[4]。

4.3 从社团挖掘方面入手进行研究

所谓的复杂网络社团,就是指网络中的顶点可以划分为多个小组,每个小组内部顶点之间的关系是十分密切的,而小组和小组之间的顶点连接也比较疏远,所以在对电信大数据进行处理的过程中,需要此方面内容考虑在内。大数据中的社团大小是未知的,而用户之间的联系又会因为时间的流逝而发生改变,但网络社团结构的变化却是比较鲜明的,在这样的情况下,可以通过对社团挖掘来对大数据进行处理。

5. 结语

综上所述,在大数据应用日益广泛的前提下,大数据对电信运营商提出的要求也更高,在这样的情况下,若是想要充分发挥大数据的作用,电信运营商就应该对大数据进行有效的处理,规避其中的弊端,注重其优势的应用,以此来为电信运行商的发展奠定良好的基础。

摘要:我国经济和科技的快速发展,为电信公司的发展提供了机会,但同时网络的日益复杂,也对电信大数据处理提出了更高的要求。在复杂网络发展过程中,电信大数据如何处理受到了人们的广泛关注,若是此方面处理工作不到位,那么所产生后果将会十分严重。面对这样的情况,本文对复杂网络背景下的电信大数据处理进行了深入地分析,并阐述了自己的见解,希望可以为电信大数据处理工作更好地开展提供一点帮助。

关键词:复杂网络,电信大数据,处理研究

参考文献

[1]张瑞.电信大数据管理应用技术研究[J].甘肃科技纵横,2014,43(11):29-30,55.

[2]白宝丹.基于递归复杂网络的房颤预测分析方法研究[D].复旦大学,2012.

[3]王波,柯红红,蒋天发等.基于复杂网络理论的杭州公交网络建模与特性分析[J].武汉大学学报(工学版),2011,44(3):404-408.

数据库中面向复杂应用的查询方法 篇6

数据查询是从数据库中检索符合条件的数据记录的过程。以图书借阅管理系统为例介绍使用SQL面向复杂对象的查询方法,由SQL Server 2005创建的关系如图1。

1.1 多层嵌套的SQL查询

1.1.1 多表查询

关系数据库中的大部分管理和操作都是建立在互有联系的多个数据表之上。

SELECTXs.觹,Xs_Ts.觹FROM Xs,Xs_Ts WHERE Xs.Xh=Xs_Ts Xh/觹查找每个学生的情况以及借阅的图书情况觹/

SELECT Xs.觹,Sh FROM Xs LEFT OUTER JOIN Xs_Ts ON Xs Xh=Xs_Ts.Xh/觹查找所有学生情况及借阅的图书书号,若学生未借阅任何图书,也要包括其情况觹/

SELECT Xs_Ts.觹,Sm FROM Xs_Ts RIGHT JOIN Ts ON Xs_Ts Sh=Ts.Sh/觹查找被借阅了的图书的借阅情况和所有图书的书名觹

1.1.2 嵌套查询

在SELECT语句中嵌入SELECT语句称为嵌套查询。SELECT觹FROM Xs WHERE Xh IN(SELECT Xh FROM Xs_Ts WHERE Sh='P00301')/觹查找借阅了书号为P00301的图书的学生情况觹/

1.1.3 多层嵌套查询

SELECT觹FROM Xs WHERE Xh NOT IN(SELECT Xh FROM Xs_Ts WHERE Sh IN(SELECT Sh FROM Ts WHERE Sm='计算机组成原理'))/觹查找未借阅″计算机组成原理″这本图书的学生情况觹/

1.1.4 嵌套查询注意事项

(1)由谓词EXISTS引出的子查询SELECT之后通常使用通配符觹。

(2)不能在ORDER BY、GEOUP BY和COMPUTE BY之后使用子查询。

(3)子查询中不能使用UNION关键字。

(4)LOB(大对象数据)类型的字段不能作为子查询的比较条件。

(5)子查询的嵌套层次可达到255层。

1.2 相关子查询

子查询需要根据主查询来进行计算,并把查询结果再影响到主查询。

1.2.1 使用谓词的相关子查询

SELECT Xm FROM Xs WHERE EXISTS(SELECT觹FROM Xs_Ts WHERE Xh=Xs.Xh AND Sh='P00301')/觹查找借阅了书号为P00301图书的学生姓名觹/

1.2.2 使用比较运算符的相关子查询

SELECT觹FROM Xs WHERE Csrq

SELECT Xh FROM Xs_Ts WHERE Sh='P00302'AND Jsrq>ANY(SELECT Jsrq FROM Xs_Ts WHERE Sh='P00301')/觹查找书号为P00302且借阅日期在书号为P00301的最早借阅日期之后的学生的学号觹/

1.2.3 使用HAVING关键字的相关子查询

SELECT Xh,COUNT(觹)AS未还总数FROM Xs_Ts WHERE Hsrq IS NULL GROUP BY Xh HAVING COUNT(觹)>=3/觹查找有3本书尚未还的学生的学号和未还书的总数觹/

1.3 处理统计功能的SQL查询

1.3.1 使用聚合功能

SELECT MAX(Dj)AS P_最高定价,MIN(Dj)AS P_最低定价FROM Ts WHERE Sh LIKE'P%'/觹求书号以P开头的图书的最高定价和最低定价觹/

1.3.2 使用汇总功能

SELECT Zy,Xb,COUNT(觹)AS人数FROM Xs GROUP BY Zy,XB WITH CUBE/觹统计每个专业的男生人数、女生人数、总人数及男生总数、女生总数、学生总数觹/

1.4 SQL查询注意事项

查询设计的好坏将影响数据库管理和应用服务的效率。

1.4.1 提高代码的可读性

(1)合理使用注释性语言对脚本进行描述。

(2)使用统一的命名风格。虽然T-SQL中不区分大小写,但可以使用Test Database的方式,用于说明其用途(Test,用于测试)和类型(Database,此对象是一个数据库),每组含义间的首字母采用大写的方式等。

(3)通常情况下,T-SQL提供的保留字(包括关键字、函数、运算符等)使用大写,以表明其身份。

(4)对于较长和复杂的表达式尽可能使用括号对它们进行定界,将具有特定含义的部分用括号括起来有利于对复杂表达式的理解。

(5)在执行多表查询时,如果涉及的数据表较多,则应为各个数据表设置易于理解和使用的缩写字符即别名。

(6)T-SQL代码的书写格式应遵守可读性原则,如编写代码时,每条主要的T-SQL子句可单独占一行,以便于阅读,使用多层嵌套和控制语句时注意代码的缩进等问题。

1.4.2 常见错误的快速定位

(1)在编程时,可能经常将某个数据表名、字段名拼写错误。解决方法可以在“查询编辑器”中,单击“分析”按钮后“消息”窗口中将会以红色信息向用户报告错误,此时只需双击某条错误信息,“查询编辑器”就可以自动定位到出现错误的位置。

(2)检查括号是否已配对使用。

(3)缺少逗号。查询语句中查询字段间的逗号丢失通常无法被“查询编辑器”发现,就会造成查询结果的错误。

(4)执行多表查询或表联接时,需要在一个表达式中使用多个数据表中的同名字段,如没有使用别名进行区分,那么当“查询编辑器”无法区分一个字段到底属于哪个数据表时,“查询编辑器”将向用户报告字段模糊错误信息。

(5)对关键字和默认函数的理解不清。如使用关键字DISTINCT可有效去除重复记录,此关键字的作用域是整条记录,不是单个字段,因此使用时应将其置于首位。

2 MDX查询

多维表达式(Multi Dimensional Expressions,MDX)是用于Microsoft SQL Server 2005 Analysis Services(SSAS)中处理和检索多维数据的查询语言。基于XML for Analysis(XMLA)规范,并带有特定于SQL Server 2005 Analysis Services的扩展。

根据农业银行统计报表信息系统数据库Statisticsreports创建一个数据仓库Statisticsreports_test及多维数据集Statisticsreports,使用MDX查询的方法如下。

SELECT邀([Measures].[Quantity])妖ON COLUMNS,邀([Ge0901].[111100000]),([Ge0901].[111300000]),([Ge0901].[113100000])妖ON ROWS FROM Statisticsreports/觹查看现金及银行存款(111100000)、存放中央银行款项(111300000)和单位存款(113100000)的总量觹/

MDX最多可有128个查询轴,对于前5个轴可以使用COLUMNS、ROWS、PAGES、SECTIONS和CHAPTERS别名。访问涉及n维时,可使用ON AXIS(n)的形式来定义查询的轴向信息。上例可使用下面的代码来实现:

SELECT邀([Measures].[Quantity])妖ON AXIS(0),邀([Ge0901].[111100000]),([Ge0901].[111300000]),([Ge0901].[113100000])妖ON AXIS(1)FROM Statisticsreports

下面使用数据仓库Statisticsreports_test进行查询。

SELECT邀([Measures].[Ge0905 Quantity])妖ON AXIS(0),邀([Ge0905 Date].[Calendar Year].[2004]),([Ge0905 Date].[Cal-

[Statisticsreports_test]/觹查看2004-2007四年来的各项贷款数据觹/SELECT邀([Measures].[Ge0901 Quantity])妖ON AXIS(0),邀([

ter].[Q3 CY 2007])妖ON AXIS(1)FROM[Statisticsreports_test]/觹比较2004-2007年以来第3季度的资产情况觹/

属于一个维度轴上的各数组必须属于同一个级别,否则查询是不允许的。

3 MDX与T-SQL的比较

在许多方面MDX所提供的功能与SQL相似,但MDX并非SQL语言的扩展,二者之间主要区别如下:

(1)处理的行列与维度不同。MDX具有引用多个维度的能力,T-SQL仅涉及行和列两个维度。

(2)关键字SELECT和WHERE的功能不同。在TS-QL中,SELECT子句定义查询的列布局,WHERE子句定义行布局,用于筛选查询所返回的数据。在MDX中SELECT子句定义维度的个数,WHERE子句将多维数据限制于特定的维度或成员,提供查询所返回的数据切片。

(3)查询对象不同。T-SQL查询的对象是基于二维表的数据结构,MDX查询的数据对象是多维数据集。

(4)生成的数据集视觉不同。T-SQL结果集的视觉形象直观,集合是一个行与列组成的二维表格。MDX结果集可以有3个以上的维度,所以将此结构形象化比较困难。

(5)创建SQL与MDX查询的过程不同。SQL是将二维行集的结构形象化并加以定义,编写一个或多个表查询并对此结构进行填充。MDX是将多维数据集的结构形象化并加以定义,编写单个多维数据集查询并对此结构进行填充。

参考文献

[1]谢维成.SQL Server2005实例精讲[M].北京:清华大学出版社,2008.

逆向工程中复杂曲面的数据采集 篇7

逆向工程(Reverse Engineering,RE)是从实物样本获取产品数学模型并制造得到新产品的相关技术,已经成为CAD/CAM系统中一个研究和应用热点,并发展成为一个相对独立的领域。随着航天、航空、造船、汽车和模具工业的飞速发展,逆向工程已经成为制造业的一个重要环节[1]。

在逆向工程中,获取物体表面的三维数据是关键的第一步,这样才能进行后面的三维建模及误差检测,测量数据的质量及精度也将会直接影响后期建模的品质。随着逆向工程技术的发展、应用范围的扩大及工件复杂程度的增加,如何准确获取复杂曲面物体的三维轮廓数据是整个逆向工程的关键。本文以两个典型工件为例讨论如何对具有复杂曲面的工件进行数据采集。

1 数据采集方法

数据采集是指采用某种测量方法或测量设备测出实物各表面的若干组点的几何坐标。按测量方法分类,数据获取可分为接触式测量和非接触式测量两种。

接触式测量是指利用接触式测量仪器对实物外表面进行测量,记录样件表面的坐标位置。接触式测量方法对物体表面的颜色和光照没有要求,物体边界的测量相对精确,测量精度高,但缺点是测量速度慢,效率低;不能对软质材料和超薄形物体进行测量,应用范围受到限制;测头易磨损,损伤工件表面精度。

非接触式测量是用非接触的光电方法对曲面的三维形状进行快速测量。非接触式测量的优点:测量速度快;可测量柔软,易碎,不可接触,薄壁件等公建;不会损伤工件表面精度。非接触测量的缺点是:测量精度差;无法测量特定几何特征;无法测量陡峭面;工件表面质量对测量精度影响较大[2]。

2 典型工件扫描方式分析

下面以鼠标和奥运会福娃的外形扫描为例,在逆向数据扫描前,先分析要进行扫描的工件的外形结构特点。

2.1 鼠标工件分析

鼠标工件如图1,上表面前部分为按键,类似于柔性物体,使用接触式扫描时,微小的触发力也会导致工件变形产生较大的测点误差,而鼠标的中后部分呈一定弧度的自由曲面。如果使用接触式扫描,数据采集的工作量将比较大。综合两种因素考虑,鼠标的外形扫描应采用激光与接触式探针复合扫描的方式进行。

通过分析,鼠标上表面的塑材不透明、不反光也没有存在色差明显的问题,所以用激光扫描是最可取的办法;从工件侧面可以看出,鼠标工件上宽下窄,在一次装夹的情况下,激光无法完全扫描到工件的侧面。而侧面是透明的硬质塑材,所以鼠标侧面可以采用接触式探针更换四次测头角度的方式进行扫描。

2.2 福娃工件的分析

福娃工件如图2,表面形状凸凹不平,曲率变化很大,福娃前面和后面不是完全对称的,因此为了能够完成对福娃完整的逆向造型,就必须对福娃进行全面的数据采集。福娃工件是合成树脂材料,不反光,若采用接触式扫描,工作量会很大,速度很慢,所以采用激光扫描的方法,并且要在回转工作台上旋转三次角度,完成福娃的全面扫描。

3 设备的选用

根据上面扫描方式分析,我们确定使用BQC系列复合式四轴自动扫描测量机,这种测量机是一种多用途的质量检测与逆向工程数据采集仪器,能实现数字化扫描与三坐标测量的完美复合,四轴自动操作与手动操作的自由选择,接触式与非接触式扫描的复合,直角坐标系与柱面坐标系扫描/测量的高效融合。此测量机不仅能够满足鼠标工件激光与接触式探针复合扫描方式的要求,还满足了福娃工件需要旋转角度采集数据的要求。

4 工件的扫描

4.1 鼠标的数据采集步骤

4.1.1 工件装夹

由于鼠标上表面色调较均匀且不透明,所以无需喷涂反差剂。鼠标是塑料制品不易装夹和过程扫描,可以使用热熔胶枪在鼠标底部粘少许热熔胶,固定在测量机工作台扫描范围内合适的位置。鼠标的扫描是一次定位,所以不需要重复移动工件重新定位扫描。

4.1.2 激光测头原点标定

打开机床及操作系统桌面的Byscan软件,安装激光测头,及在工作台上安装直径35mm的标定球,为实现激光扫描数据和接触式探针扫描数据的相对坐标原点统一,在扫描前必须对通过标定记录被标定球的中心位置,作为参考原点。

4.1.3 鼠标上表面的激光自动扫描

首先确定扫描区域。移动机床激光探视鼠标上表面的最高位置,用手操器调整激光与工件表面的焦距在扫描范围内。然后移动X、Y轴将激光点移到鼠标的左上角,并点击Byscan软件“扫描规划”标签页的“左上角点”;再移动X、Y轴将激光点移到鼠标的右下角,点击“右下角点”;最后点“确认区域”完成鼠标上表面的自动扫描区域的确定,如图3。

其次扫描初始参数设定。进入Byscan软件设定扫描参数为点距2、行距2、速度20,进行鼠标上表面的自动扫描。扫描结束后,在ByModel数据处理系统中查看数据。

4.1.4 鼠标四周接触式扫描

鼠标上面扫描结束后,用手操器将Z轴抬高到安全高度,卸下激光测头更换成接触式测头,为完成鼠标左侧面数据采集,需将测座A角转至30度,B角转至90度,为实现激光扫描数据和接触式探针扫描数据的相对坐标原点统一,进行接触式测头标定。标定完后,移动测头到对应角度的鼠标左侧面,开始接触式手动扫描,如图4。扫描时应尽量保持竖直网格方式取点,遇特征较为明显的区域(如圆角)应增加取点密度,便于后期的逆向造型。完成了鼠标左侧面的扫描。

鼠标右侧、前端、后端的扫描,与鼠标左侧的扫描方法一致。扫描前,将测头A、B角旋转至对应扫描面(应确保在扫描时,测针的最前端与工件触发),再进行角度的标定,最后开始各侧面的扫描。扫描鼠标右侧、前端、后端时,不需要重新创建文件名,与扫描左侧所保存的文件同名就可以。

4.1.5 鼠标扫描数据合并与转换

在ByModel数据处理系统中将激光扫描点云和接触式扫描点云合并。为方便扫描数据在逆向工程软件的导入,利用ByModel数据处理系统的“IGES转换”功能将合并后的DAT文件转换成IGES文件。点云数据可导入逆向软件进行后置造型处理。

4.2 福娃的数据采集过程

福娃的数据采集步骤与鼠标的数据采集步骤类似,其中需要注意三点:第一,为了能够采集福娃工件前后左右四面的数据,要把福娃放在回转工作台上,同时为了保证激光测头的安全,需用方形小垫块把福娃在工作台上垫高;第二,每次回转工作台旋转角度时,都要进行回转工作台的标定;第三,福娃上部曲面最为复杂,扫描到此区域时,扫描的点距、行距和速度都要降低,保证打点密集程度,方便后期的逆向造型。

5 结论

本文通过对具有复杂曲面的典型工件鼠标和福娃的结构分析,确定了两工件的扫描方案、选定了适合的扫描设备,详细阐述了复杂曲面工件的数据采集过程,从而得出结论:

5.1 数据采集是一项技术比较严密而繁琐的工作,由其是复杂曲面的数据采集难度更大,因此我们应根据实际工件采取合适的扫描方法,通过造型需求和分析确定合适的扫描方案:工艺品、曲面、特征明显、扫描重定次数位少、精度要求较低或者是柔性物体的工件可以采用激光扫描方式;结构件、缸体件、硬质透明件、需多次定位或精度要求高的工件等可采用接触式扫描。

5.2 数据采集的过程中,每次更换测头、改变测头角度或者转台旋转都要进行标定,根据曲面复杂程度的大小设置不同的扫描参数。

摘要:本文通过对具有复杂曲面的典型工件鼠标和福娃的结构分析,确定了两工件的扫描方案、选择了扫描设备,详细阐述了复杂曲面工件的扫描步骤,为其他具有复杂曲面工件的数据采集提供了借鉴作用。

关键词:逆向工程,复杂曲面,数据采集

参考文献

[1]陈君梅,邓学雄,周敏,徐旋波,戴水锋.反求工程中基于三坐标测量机的数据采集技术.机电工程技术,2004,33(08):82-84.

[2]李进亮.逆向工程中数据测量和数据处理技术研究.江南大学硕士学位论文,2005.1:2-3.

上一篇:智能远程监测系统下一篇:芦笋高产种植技术