历史数据库范文

2024-09-12

历史数据库范文(精选10篇)

历史数据库 第1篇

历史数据库主要用于存储HIS服务器产生的历史数据,并方便用户对历史数据的查询统计。

随着医院信息化建设的迅速发展,依托于HIS数据库的业务系统越来越多,造成HIS数据库数据量的迅速增长。数据库数据量的增长会增加数据库维护的工作量如:数据库备份时间越来越长,数据库的存储管理越来越频繁等,同时,数据量的增长会增加数据检索的资源消耗,降低HIS数据库的性能,进而影响到整个信息系统的效率。因此,随着医院信息系统的扩展,必须严格控制HIS数据库的数据量。通过建立历史数据库,可以将HIS服务器上的历史数据转储于历史服务器,然后再将过期的数据从HIS服务器删除,这样既保存了历史数据,又可以有效地控制HIS数据库的数据量。同时,通过历史数据库可以对历史数据进行大规模的查询统计和数据挖掘,从而极大地减轻HIS数据库在这些方面的负担。

2 HIS历史数据库的配置

HIS历史数据库与HIS数据库相比较,HIS数据库接近于随机事务处理系统(OLTP),主要用于处理大量并发的小事务;历史数据库更接近于辅助决策系统(DSS),主要用于处理大量数据的查询统计事务,并发用户较少。因此,相对于HIS数据库,HIS历史数据库的配置有着很大的不同。主要体现在以下几个方面。

2.1 数据库运行于非归档模式

发生于历史数据库上的操作主要有两种:对历史数据的查询统计;从HIS数据库转储数据。单纯的查询统计不会产生日志信息,对日志归档也就没有什么要求。当从HIS数据库数据转储时,会对大量的数据进行DML(数据库操纵语言命令)操作,从而产生大量的日志信息,如果数据库运行于归档模式,就会频繁地启动日志归档进程,从而增加了数据转储的资源消耗和时间消耗,从而影响了数据转储的效率。因此,历史数据库可以配置为非归档模式。数据库默认为非归档模式,如果数据库已经配置为归档模式,可以通过以下操作将数据库改为非归档模式:

(1)修改参数文件init.ora中的参数:log_archive_start=false;

(2)关闭数据库;

(3)将数据启动到mount状态;

(4)将数据库打开。

2.2 使用大的日志缓冲区和日志文件

日志缓冲区(Log Buffer)是系统全局区(SGA)的一个组成部分,用于对日志信息进行缓存,当日志信息达到日志缓冲区大小的三分之一时,日志写入进程(Lgwr)开始将日志缓冲区的信息写入日志文件。如果日志缓冲区较小时,转储数据时产生大量的日志信息会使日志写入进程频繁启动,从而增大服务器的磁盘读写(I/O)负担。虽然日志缓冲区过小,会严重损害数据库的性能,但日志缓冲区一般不超过2M,大于2M的日志缓冲区对数据库性能提高作用微乎其微[2]。

当日志文件写满后,会发生日志文件切换事件(Log file switch),日志切换会触发检查点事件(Check Point),检查点会启动数据文件写入进程和日志写入进程。如果过日志文件太小,数据转储操作产生的大量日志信息会使日志切换频繁发生,同样会增加服务器的磁盘读写负担。因此,历史数据库中可以使用尽量大的日志文件。

2.3 建立数据库连接

当需要从HIS数据库获得符合转储条件的数据时,需要建立对应HIS的数据库连接(DBLINK)。建立数据库连接时,如果以下发生错误:ora-12154 TNS:could not resolve service name,则需要对数据库的配置参数进行以下修改:

(1)修改历史数据库网络配置参数:%oracle_home%networkadminsqlnet.ora中的参数SQLNET.AUTHENTICA-TION_SERVICES=(NONE);

(2)修改init.ora文件中的参数:Globle_Names=NULL。

2.4 使用大的排序区

排序区是内存中用于完成用户SQL语句所需的排序操作的内存区域,有关索引的数据定义语句如创建索引(CREATE INDEX)或修改索引(ALTER INDEX),包含OR-DER BY、GROUP BY、IN、NOT IN等关键词的查询语句,都会使用到排序区。当排序操作较大时,排序操作会超出内存中的排序区,进而在临时表空间中进行排序,磁盘操作会产生大量的磁盘I/O。因此,应尽量使排序操作在排序区中完成。历史数据服务器的一个重要任务是对历史数据的查询统计,这种查询统计涉及数据量往往很大,且常用到排序操作,因此历史数据服务器应使用较大的排序区。排序区的大小由参数SORT_AREA_SIZE决定,且该参数可以在会话一级指定。当然,需要经常进行排序操作的字段应建立索引,避免使用排序区和临时表空间[2]。

2.5 使用大数据块

数据块是数据库物理存储的基本单位,是操作系统定义的数据块的整数倍,由参数db_block_size决定的;大的数据块定义有利于提高数据的读写速度,但对存储空间要求更严格,对数据缓存也有较高的要求。历史服务器专门用来存储历史数据,其磁盘空间不应该存在问题,而历史数据库的并发访问用户较少,即便数据块很大,数据缓存的竞争压力也不会太大。因此,历史数据库应该设定大的数据块。

参数db_file_multibock_read_count用于指定每次磁盘读操作读入的数据块的数目,在并发性不强、数据缓存竞争压力不大的情况下,该参数可以指定较高的数值。

3 数据转储的实施

HIS历史数据库建立后,需要定期从HIS数据库转储历史数据以保证历史数据能够完整的得到保存,保证用户对历史数据的查询统计的准确性、及时性。

3.1 转储什么样的数据

需要从HIS数据库转储到历史数据库的数据主要有三种:病人的医疗业务数据、医院的物资流通数据、医院的经济管理数据。转储的数据应该是2月~3月之前的数据,这是因为越靠近当前的数据,其稳定性越差,越容易发生改变,而只有稳定、不再发生变化的数据才能称之为历史数据,满足数据转储的要求。

3.2 转储的时机和方法

数据转储应该按月自动、定时执行;执行时间应选择晚间HIS数据库最为空闲的时候;每次转储一个月的数据。

实施的方法:

(1)按表空间编写脚本;

(2)通过批处理文件调用脚本文件;

(3)针对批处理文件制定计划任务。

3.3 保证转储数据的完整一致性

数据的完整一致性包含两个方面的含义:数据行的完整性;数据之间的参照完整一致性。

3.3.1 数据行的完整性

首先保证转储数据满足域约束如:主键约束,唯一约束、非空约束等。此外还应该保证进行转储的每一行数据都是完整的。有些业务数据从产生到最终完成有一定的时间跨度,转储时一定要对标示数据最终完成的字段进行判断,如:住院病人主记录pat_visit,该表的数据产生于病人住院的时间(admission_date_time),但该表的数据完成时间不是我们经常使用的病人出院时间:(discharge_date_time),而是病人病历的归档时间(catalog_date_time);那么,转储时必须根据病人病历归档时间判断数据是否完成,如果根据病人出院时间判断则不能保证数据的完整性。

3.3.2 数据之间的参照完整性

数据的参照完整性是指出现在表的某个字段中得值,必须包含于另外一张表的对应字段的值的集合之中[3]。典型案例如:inpbill用户下的病人费用明细inp_bill_detail、病人结算主记录inp_settle_master和收款员结账主记录inp_acct_master[4],它们的参照完整性关系如图1。

这个参照完整性要求数据转储时:病人费用明细inp_bill_detail的每一行完整的数据的收据号必对应一行病人结算主记录inp_settle_master的数据;病人结算主记录inp_settle_master的每一行完整的数据其收据号必对应一行收款员结账主记录inp_acct_master的数据。

只有保证表之间的参考完整性,才能保证使用表连接的历史数据查询能够得到正确结果。要保证历史数据库中数据的参考完整性,则必须准确把握HIS数据库中数据之间的逻辑关系。

3.3.3 保证数据参照完整性的方法选择

用来维护数据之间参照完整性的方法有三种:触发器;外键;通过程序或SQL语句。触发器和外键都是通过行级操作来维护数据间的参考一致性,这两种方式适用于数据操作涉及的数据量小情况;当大规模操作数据时,对插入、修改或删除的每一行数据进行逐行触发或外键检查,将极大的降低数据操作的效率。因此,在向历史数据库转储数据时,应通过SQL语句来维护数据间的参照完整一致性。

3.4 保证数据转储正确、高效的执行

(1)将数据文件设定为无限扩展。数据转储时应该尽量避免段不能拓展错误(ORA-01652:unable to extend table table_name by string in tablespace tablepsace_name),减少增加数据文件或增大数据文件上限值等不必要的存储管理操作,将数据文件设定为无限扩展。

(2)在进行大量数据的插入、修改、删除操作时,为避免产生回滚段范围达到最大值错误(ORA-failed to extend rollback segment seg_name)错误,在开始该事务之前指定使用大的回滚段[4]。

(3)尽量避免数据间的级联操作。不使用外键或触发器,以提高操作大量数据时的效率;减少不必要的索引,如果索引是必须的,则可以先进行删除索引(drop index)操作,数据操作完成后,再重建索引;减少不必要的约束,如果约束是必须的,则可以先将约束失效,数据操作完成后,恢复约束的有效性[2]。

(4)合理的使用索引。索引对提高数据查询有着重要的意义,特别是通过使用索引列,避免效率低下的全表扫描(table scan)、排序操作(sort in、sort out)等操作,可以显著的提高数据查询、转储的效率。但数据量特别巨大的表,建立索引有时反而导致数据检索效率降低,这是由系统全局区(SGA)的管理特点决定的[5]。

(5)必要时创建临时性的中间表。

(6)使用数据定义语句(DDL)时,使用nologging关键字。

(7)定期对磁盘的存储空间进行检查,保证有足够的磁盘空间来满足数据库的使用。

(8)定期对数据库数据文件的存储情况进行检查,必要时增加数据文件。

(9)当HIS数据库的数据结构发生改变时,对历史数据库也要进行相应的调整。

(10)执行数据转储时,使用spool工具,生成SQL的执行日志;转储完毕后,检查日志文件,如有错误应及时纠正。

摘要:历史数据库用于存储HIS数据库中的历史数据,并承担对历史数据的查询统计和数据挖掘任务。根据HIS历史数据库的用途,论述了HIS历史数据库的数据库配置特点;总结了HIS历史数据转储的方法和实施要点。

关键词:HIs,HIS数据库,HIS历史数据库

参考文献

[1]刘志敏.Oracle数据库应用管理解决方案[M].北京:电子工业出版社,2002.

[2]吴越胜,张耀辉.Oracle9i数据库性能调优与优化[M].北京:清华大学出版社,2005:68-72.

[3]Abraham Silberschatz,Henry F Korth,s Sudarshan,et al.杨冬青,唐世渭,等,译.数据库系统概念[M].北京:机械工业出版社,2003:141-142.

[4]Kvine Loney,Marlene Therianlt,et.ORACLE8i数据库管理员手册[M].北京:机械工业出版社,2000:57-61.

[5]周鸾杰,等.从ORACLE体系结构方面对医院信息系统进行优化[J].医疗设备信息,2006(5):32-33.

历史数据库 第2篇

本文讨论了历史政区数据库的性质和特点,以清代陕西历史数据库的建立为例提出了编制底图及数据库设计的原则和方法,并建立了以政区境界为主要内容的`县级数据库,最后探讨了政区数据库的应用.

作 者:王均 王红 何凡能 WANG Jun WANG Hong HE Fan-neng  作者单位:王均,WANG Jun(中国测绘科学研究院,北京,100039)

王红,WANG Hong(中国测绘科学研究院,北京,100039;辽宁工程技术大学,辽宁阜新,123000)

历史数据库 第3篇

一、数轴图表题

历史是一门以时间延续来构成系统的学科。历史数轴图表题是通过公元纪年的标尺来呈现历史事件的时序概念、发展线索的,它类似于数学学科中的数轴。

例1.(2014年高考上海卷历史)为了完成下列“中外文化交流”时间轴,在“?”处应填上()

A.日本派出遣唐使

B.严复所译《天演论》发表

C.火药传入阿拉伯地区

D.利玛窦和徐光启合译《几何原本》

【考点】早期的西学东渐。

【解析】从图中历史时间轴可看出,“?”所处时间点应处于明朝时期,日本派出遣唐使是在唐朝(618年—907年),不符合题意,故A项错误;严复所译《天演论》发表于1897年,处在维新变法运动时期,不符合题意,故B项错误;火药是在13世纪由商人经印度传入阿拉伯国家的,不符合题意,故C项错误;明朝后期17世纪的利玛窦和徐光启合译《几何原本》,符合题意,故D项正确。

【答案】D

二、折线数据题

折线数据图能显示数据的变化趋势和发展规律。解答此类题时,考生要依据折线数据的增减,对比各变量之间的关系,并根据设问要求判断相关历史现象发展变化的趋势,揭示图表数据所反映内容间的关系。

例2.(2014年高考上海卷历史)以下图表反映了五口通商后各口岸的关税收入变化,其中口岸甲是()

A.宁波B.广州C.上海D.福州

【考点】鸦片战争与《南京条约》——五口通商与战后中国社会的变化。

【解析】口岸甲发展最快,1897年后发展更是迅速。1882年至1902年,宁波、广州、上海、福州这四个城市发展最为迅速的当属上海,故C项正确,A、B、D项错误。

【答案】C

例3.(2014年高考安徽卷文综)有学者认为,加入多边国际公约是衡量一个国家对国际社会认可度的重要指标。下图中最高点(H)出现的直接原因是()

中国加入多边国际公约的情况(1949—2005年)

(注:1984年中华人民共和国政府承认了国民党政府在20世纪20年代和30年代所签署的所有国际劳工公约)

A.中国恢复了联合国的合法席位B.两岸关系发生历史性变化

C.中国正式加入世界贸易组织D.中国成为世界第二大经济体

【考点】世界贸易组织和中国的加入。

【解析】中国恢复联合国的合法席位是在1971年,而题中H点出现的年份是2001年,故A项错误;两岸关系发生历史性的变化是在1987年,台湾当局开始被迫调整“三不”政策,允许台湾民众到大陆探亲,与“2001年”不相符,故B项错误;2001年11月中国加入世贸组织这一多边组织,故C项正确;2011年2月,中国已正式超过日本,成为仅次于美国的全球第二大经济体,时间与图中的“2001年”不符,故D项错误。

【答案】C

三、柱形数据题

柱形数据图能形象显示具体数据,一目了然。

例4.(2014年高考四川卷文综历史)下图是某国两个城市的人口总数变化示意图。这两个城市最可能是()

A.北京、上海 B.东京、大阪

C.利物浦、曼彻斯特 D.莫斯科、圣彼得堡

【考点】工业革命——第一次工业革命。

【解析】据图表可知,1800—1850年间该国城市化迅速发展。根据这一时期的历史阶段特征可知,此时该国发生了工业革命,而此时期的中国还未开始工业化,城市化在短时期不会迅猛发展,且图表中人口规模远小于北京,故A项错误;日本此时还处于闭关锁国的状态,还未进行工业革命,故B项错误;此时率先完成工业化的主要是英国,工业革命极大地推动了英国城市化的进程,利物浦、曼彻斯特均为英国城市,故C项正确;19世纪中期,俄国才开始工业革命,其城市不会出现图表中所示的飞速发展,故D项错误。

【答案】C

例5.(2014年高考安徽卷文综)博物、物理、化学等自然科学课程从清末开始列入中学课程。下图显示中学自然科学课程比重的演变情况。据此,下列表述正确的是()

自然科学课程比重趋势图

(注:1922年始专指高级中学自然科学课程)

A.1902年自然科学课程的设置标志着中国教育近代化的启动

B.1922年自然科学课程比重体现了“五四”时期科学思潮兴起

C.1929~1936年自然科学课程比重表明国民政府重视科学教育

D.自然科学课程比重的变化反映了清末民国时期轻视人文教育

【考点】近代中国思想解放的潮流——西学东渐思潮(西式教育发展)。

【解析】1905年清政府在全国废除科举制度,兴办学堂,标志着中国教育步入近代化,故A项错误;1922年自然科学课程比重与以前相比并不算高,并不能体现“五四”时期科学思潮的兴起,故B项错误;1928年国民政府形式上统一了中国,国民政府在经济上重视民族资本主义的发展,在教育上重视科学教育,故C项正确;自然科学课程比重的变化反映了清末民国时期向西方学习科学技术,并不能说明轻视人文教育,故D项错误。

【答案】C

例6.(2014年高考福建卷文综)下页图为1972—1978年中美进出口总额示意图。它表明()

A.中美贸易随着两国关系发展变化出现过波折

B.中美关系正常化导致双边贸易始终保持增长

C.文革结束以后中美贸易随即进入了发展阶段

D.中国重返联合国消除了中美贸易的持续波动

【考点】中美关系正常化。

【解析】从中美进出口总额示意图可以看出,中美贸易在1972—1978年间出现了波折,这与两国关系发展变化有关,故A项正确;1972年中美关系开始走向正常化,但从图示可以看出,中美双边贸易并没有始终保持增长,而是有波折,故B项错误;中美贸易在1972—1974年间处于发展阶段,文革结束是在1976年,之后中美贸易虽然也处于发展阶段,但并不是“随即进入了发展阶段”,故C项错误;中国重返联合国是在1971年,与材料显示时间“1972—1978年”不符合,故D项错误。

【答案】A

四、表格数据题

表格数据图呈现的数据更精准,便于统计、对比、整理。

例7.(2014年高考福建卷文综)下表是1980、1996年世界不同类型国家进出口依存度表。据此判断正确的是()

【考点】经济全球化的趋势与影响。

【解析】从表格数据可以判断,1996年与1980年相比,世界不同类型国家进出口依存度不断增加,说明国际贸易总体发展较快,经济全球化趋势加强,故A项错误,B项正确;20世纪90年代后,区域经济集团化趋势不断增强,故C项错误;材料只是反映世界不同类型国家进出口依存度,没有反映各类国家经济发展水平差距缩小情况,故D项错误。

【答案】B

例8.(2014年高考四川卷文综)下表是俄罗斯一咨询机构1990—2006年就“十月革命给俄罗斯人民带来了什么”所作四次调查的结果。这表明俄罗斯人()

【考点】俄国十月革命;战时共产主义政策与新经济政策;“斯大林模式”。

【解析】据表中数据可知,俄罗斯人对相关问题的思考仍在进行,故①正确;据图表可知,不同意见所占比重均不小,这表明俄罗斯人对这段历史分歧很大,故②错误;从图表中数据可知,很多人关注这段历史,认为其“推动了社会经济的发展”、“开辟了新时期”,这反映了昔日苏联大国荣光,表明了俄罗斯人依然怀有大国情结,故③正确;据图表可知,俄罗斯人关注十月革命对俄国的历史影响、经济影响、社会影响等,而非仅仅经济影响,故④错误。

【答案】B

例9.(2014年高考江苏卷历史)下表据《一个大国的崛起与崩溃》相关内容编制。阅读该表,造成苏俄(联)农民年平均税款变化的主要原因是()

【考点】从“战时共产主义”到“斯大林模式”。

【解析】余粮收集制的推行导致了1920年至1922年较高的平均税款,但这并不是1922年以后平均税款降低的原因,故A项错误;1921年以后,苏俄推行新经济政策,用固定粮食税代替了原来的余粮收集制,从而导致了1922年至1924年较低的平均税款,故B项正确;实物配给制的废除属于产品分配领域,不是造成农业税变化的主要原因,故C项错误;农业集体化是在“斯大林模式”之后出现的,在1930年开始推行,不在本题的时间范围内,故D项错误。

浙江省公路统计历史数据库管理系统 第4篇

关键词:公路统计历史数据库,全文检索,AJAX

公路统计资料是反映公路发展状况的重要信息, 可为制定公路发展战略、公路建设规划等一系列工作提供重要依据。但是过去较长一段时间内的公路统计资料主要是以分散的文件形式存储, 没有进行有效整理与集中存储, 难以很好地利用现代计算机技术对历年统计资料进行分析利用。为使交通统计信息工作更好地适用公路交通快速发展的需要, 改进公路交通统计信息的加工和使用技术手段, 提高其服务能力, 很有必要建立公路历史统计数据库管理系统, 以发挥历年统计数据在公路管理中的作用。

1、公路统计历史数据分析

浙江省现有自1949年以来的所有公路统计汇编资料。通过对所有公路统计汇编资料的数据内容的分析, 发现1949—2000年公路统计年鉴数据分组类型和指标与2001—2010年公路统计年鉴数据分组类型和指标相差比较大, 所以需要对这两个时间段的数据统计指标分别进行了整理分析。经过分析, 1949-2000年公路统计年鉴的每年分组条件和统计指标的差异较大, 难于统一规范, 不能全部入库管理, 所以采用只对其主要指标, 如按技术等级、路面类型分的里程数据进行整理入库, 其他采用文件存储的方式管理。2001-2010年公路统计年鉴的数据中每年的统计报表类别基本一致, 且每类报表的主要统计指标基本一致, 所以对此类数据采用求同存异的原则, 整理出历年统计口径一致的指标, 并对不一致的统计指标进行对比整合, 对这些2001年之后的统计数据可以全部入库管理。

2、系统设计

2.1 系统架构设计

本系统设计中采用了基于B/S结构的多层结构。系统从层次上可以分为用户层、应用层和数据服务层三个主要层次, 如图1所示。

用户层是用户访问系统的公共接口, 其主要通过浏览器将用户请求通过Internet转发到WEB服务器, 并且负责将服务器返回的信息经过一定的逻辑组织后展现给用户。

WEB层负责接受表现层用户发送的请求, 并且通过防火墙将非法的用户请求屏蔽在外, 从而保障系统运行的安全性。在WEB层部署了应用系统, 负责处理对公路统计历史数据的处理分析功能。

数据层管理公路统计历史和系统维护数据, 它的任务是接受服务器对数据的请求。

2.2 系统功能设计

浙江省公路统计历史数据库管理系统主要由公路统计信息查询系统和公路统计数据处理与交换系统两个子系统构成, 公路统计信息查询系统包括统计信息浏览、统计信息查询、统计信息检索和统计信息分析功能模块, 公路统计数据处理与交换系统包括数据导入、数据导出、用户管理和系统维护四个功能模块, 其功能结构如图2所示。

(1) 统计信息浏览。提供对自1949年以来浙江省公路统计年鉴以电子书的形式, 浏览全省公路统计信息, 并能以Excel文件格式将浏览信息下载保存。

(2) 统计信息查询。可根据需要灵活的选取所需要的统计指标, 设置一个或多个查询条件, 查询公路、桥梁、隧道、渡口以及养护资料等历年的统计信息。

(3) 统计信息检索。可通过关键字对公路统计数据进行全文检索, 能够便捷地获取自1949年以来的浙江全省公路统计数据。

(4) 统计信息分析。可以对各种对比分析的指标 (如等级公路里程、好路率等) 按行政区域来进行各地市之间对比分析, 或按年份进行多年的变化趋势分析, 分析结果以专题图和对比表的形式展示。

(5) 数据导入和导出。数据导入主要通过标准的数据交换标准, 实现每年新的统计数据的入库管理。数据导出为其他业务发布系统的数据交换提供数据来源的导出接口。

(6) 用户管理和系统维护。系统为主要实现用户信息的管理、数据字典维护、电子书目录树的更新、电子书全文检索索引的建立等功能。

2.3 数据库设计

根据浙江省历年公路统计汇编资料数据的分组条件和统计指标的差异性, 以及结合系统功能的需求, 对浙江省历年公路统计汇编资料数据库进行设计, 其包括统计资料数据库和系统维护数据库。各数据库存储的数据内容及数据关系如图3所示。

3、系统实现

本系统采用关系数据库SQLServer2008存储管理公路统计历史数据, 并在MyEclipse开发中实现基于Hibernate的数据库访问采用Struts2+Spring+Hibernat的开发模式实现系统的开发。基于开源全文检索引擎Lucene实现电子资料的快速检索查询, 并使用AJAX技术解决页面局部刷新问题, 大大减少了服务器的负担并提高了客户的响应速度。

4、结语

通过对浙江省历年的公路统计资料的梳理分析, 整理了公路统计指标, 建立公路统计历史数据库。采用全文检索技术以及AJAX技术实现了对公路历史统计数据的存储、浏览、查询、对比分析和数据交换等功能, 为公路管理提供了方便、及时、丰富的公路统计信息支撑。

参考文献

[1]宋珍香.公路统计数据库建设的组织和管理[J].湖南交通科技, 2000 (4) :68-69.

历史数据库 第5篇

赵京:主持人好,观众们好。

主持人:是的,今天的这个话题,很多家长朋友们非常非常关心,已经有朋友发来了我们家孩子全市排名多少名,请赵老师给指导一下,究竟要填报什么样的学校。再次给大家强调一下,参与我们今天的节目,大家可以发送手机短信息到10628821073,除此之外也可以拨打热线电话65150822、65150833,当然也可以关注微信《教育面对面》的公众账号,在微信上面给我们留言,我们今天将会请赵老师给大家做相应的报考指导。我们都知道201*年的高考录取数据教育部应该是在今年的4月中下旬才发布呢,所以我们现在只能够选用201*年的数据来说明,所以先请赵老师给广大的考生和家长朋友,我们先总结一下201*年高考的录取的数据情况。

赵京:今年因为是实行平行志愿,所以家长对于这个数据关心比往年重视,如果我们看各种数据,应该先看一下总体的数据,总体数据有哪些呢?最重要的就是招生计划,这个招生计划往年的时候你可以不用关心整体的,但今年就不太一样,因为今年这种录取的方式,你的成绩所报考的学校和比你成绩高分的这些学校的招生计划的变化,可能都会影响你的结果。所以除了关心整体的招生计划的变化以外,可能还要去考虑一下你考虑的学校和往年比它分高的学校的招生计划的影响。比如有家长就会把北航分数高的学校的招生计划都加起来,发现在理科可能只有800多名,所以就得出一个结论,会不会今年北航的录取分数线在1000人左右,这不是一个特别科学的算法。但是毫无疑问,如果学校的招生计划有比较大幅度的减少,的确会影响你的判断,这是一个要注意的。还有一个数据其实是我们可能没有特别关心,就是以往考试院给的一本的人数或二本的人数是怎么划分的,比如说一本的人数你看看往年的北京考生的划线,基本上是按照一本的人数,理科乘以1.3,文科乘以1.4这么一个人数画的这么个线。平行志愿的报考方式下会产生一个变化,就是高分学生可能会落榜,对吧。排名越高的学生,他的选择机会更大一些,如果他们报考失误的少,我们低分学生可能能选择的就比较少。往年有多少学生从一本掉下来去了二本,有多少学生因为报考不好,这个数字其实是我们今年去研究的,但那个数字的话,应该说是研究起来比较费劲,所以大家应该关注的一个整体的数据就是招生计划,以及招生计划的变化的情况。

以往来说,看起来,比如说一本,201*年是一万3000多名的招生计划,上一年是一万四,一本人数接近8000名左右,从整体来看,似乎有4000多名学生不会被一本录取,但实际上不是,实际上不是。实际分析的话,提前批会录走几百人,小1000人,还有一部分学生虽然在考试院公布的大本上没有体现出他被哪儿录走了,但实际上有很大一批学生,大概几百名学生会被各个学校通过自主招生的形式给录走,再有一部分学生可能去了港校,还有一部分学生如果他的一本没有被录取,他会直接放弃中国的学校就出国了,所以最后几千人里面可能落到二本的人数,我统计过大概不到1000人,所以这样的话,这是这么一个整体的变化。

文科可能就变化更大一些,因为它是按照1:1.4这么一个比例划的人数,所以就造成了一本落榜的人数更多一些,因为往年文科一本的招生计划只有3000名,所以它是4200名,有1200名的灵活的度,到二本的人数可能就会达到小1000名,正好跟二本中比较热门的学校的人数差不太多,所谓热门学校,就是一本也招生,二本也招生的这个人数。所以今年报考的时候,成绩越往后的学生,越应该关注我刚才说的这些数据,这个数字的变化,对我们的影响可能会造成,比如说成绩在一本线左右的学生他的变化,所以这个数据是一个整体的变化。

主持人:这样,您给我们的家长再总结归纳一下,是哪几项数据让大家在今年的数值参考过程当中着重要注意的?一、二、三、四。

历史数据库 第6篇

文件映射又叫内存映射文件。与虚拟内存相似,内存映射文件允许开发人员预订一块地址空间区域并给区域调拨物理存储器。不同之处在于,内存映射文件的物理存储器来自磁盘上已有的文件,而不是来自系统的页交换文件。一旦把文件映射到地址空间,我们就可以对它进行访问,就好像整个文件都已经被载入内存一样[1]。

与常规地使用文件I/O系统函数进行文件操作相比,分析使用文件映射的优势如下。

1)所有文件I/O系统函数均涉及到磁盘的操作以及磁盘与内存之间的数据交互,直接对磁盘内容的操作比进程地址空间的操作效率要低很多,且处理函数涉及到文件内容的缓存,执行起来消耗时间较长;而文件映射到地址空间后,所有对文件内容的操作都是在进程地址空间中进行的,文件内的数据可以用内存操作来操纵文件,而不是用读写文件的I/O系统函数在文件里来回地读、写、移动文件指针,从而提高了文件的存取等处理速度[2]。不必对文件执行I/O操作,不必对文件内容进行缓存。尤其在频繁读写文件的情况下,文件映射在处理效率方面优势明显,而利用实时历史数据库查询历史数据的过程就属于此种情况。

2)文件内容处理相关的I/O系统函数比较有限。而文件一旦映射到进程地址空间中,文件内容的操作是通过调用内存读写指令来访问的,内存读写指令调用的是程序语言函数库中的函数,函数种类丰富,处理方便。

3)文件缓存需要对文件分配适当大小的内存,在大型文件处理过程中,由于操作系统会限制应用程序调拨物理存储器的大小,需要通过多次的定位文件指针、读取文件等操作,将文件的指定内容读取到文件缓存中来,执行时间较长;而文件映射虽然也受操作系统应用程序调拨的物理存储器大小的限制,但其提供了将文件中的指定部分映射到进程地址空间中的功能,减去了多次定位文件指针的过程。

2 实时历史数据库中文件映射的应用

实时历史数据库是非安全级DCS平台Nic Sys1000系统软件的重要组成部分,它相当于一个数据处理中心,起到数据交换区的作用。实时历史数据库维护系统调用时产生的动态数据和系统调用所需的各种内部信息,保证实时数据的完整性和实时性以及时间一致性,是控制器与客户端之间数据交互的桥梁。

实时历史数据库对历史数据的查询过程,需要对文件进行多次打开、关闭和读写的操作。为实现历史数据的快速查询,设计了下面的历史数据文件的文件结构和处理机制。

2.1 历史数据文件结构的设计

Nic SysTM1000实时历史数据库的历史数据文件的结构可分为三部分:文件头、变量索引、变量值,如图1所示。表2列出了三部分的数据结构体的各成员变量的含义。

2.2 历史数据文件的处理机制的设计

Nicsys 1000系统实时历史数据库中有多种查询模式:单点时刻查询、单点时间段查询、多点时间段查询、单点时间间隔查询、多点时间间隔查询,每一种查询模式都需要对历史数据文件进行打开、读取和关闭的操作。利用文件映射机制,并对历史数据文件的处理机制进行合理地设计,尽可能地缩短历史数据文件的处理时间,从而得到较快的历史数据查询速度。

下面基于历史数据文件的结构,并利用文件映射机制,设计单点时刻查询模式和多点时间段查询模式下的历史数据文件的处理机制。

2.2.1 单点时刻查询

单个变量某一历史时刻的值的查询过程中,数据库对历史文件的处理过程如图2所示。其中,步骤2、9利用文件映射的基本使用过程(见表1),步骤3、5、6、7将直接在进程地址空间中完成,计算出所需取出的信息所在的地址后,直接得到并进行处理。若利用文件I/O系统函数,这4个步骤将包含大量的移动文件指针和读取文件的操作,会降低处理速度,影响查询效率。

2.2.2 多点时间段查询模式

多点时间段查询是用于在DCS上位机HMI生成多条历史趋势曲线。其原理是对查询时间段进行平均插值计算,得到多个时刻值,依次对每个变量点和每个时刻做单点时刻查询,得到多点多个时刻的历史值,将同一变量点的所有历史值连接形成该变量的历史趋势曲线。

实时历史数据库从上位机HMI发送过来的数据报中解析得到多个变量名和1个时间段。图3表示了两种历史数据文件的操作过程,都是用来实现多点时间段查询的,但它们的使用范围和执行效率有所不同。

两个操作过程都是以单点时刻查询模式的文件处理机制为基础,打开文件和关闭文件都利用了文件映射机制,分别包含了使用文件映射基本步骤的1、2、3和5、6、7(见表1)。其中,步骤1和8仍然需要调用文件I/O系统函数。因此,应尽量减少打开和关闭文件的次数已达到缩短处理时间的目的。

处理过程1:打开单个文件后,取出其中的变量值,则马上关闭该文件,再打开下一个文件进行处理。n个变量名的查询,文件打开次数、即调用文件I/O系统函数的次数将成倍增加。此过程同一时间只有1个文件被打开,即只有一个文件映射在进程的地址空间中,占用系统内存资源较少,但耗时较长。

处理过程2:在读取第1个变量的历史值后则打开了所有需要打开的文件,这些文件全都映射在进程的地址空间中,在读取第2—n个变量的值时都不需要执行打开文件的操作。此过程处理耗时较短,但随着打开的文件数量的增多,所占系统内存也将增多,而Windows操作系统对应用程序调拨物理存储器的大小是由限制的。当查询时间段足够长,需要打开的文件数足够多,进程中的文件映射的大小会超过操作系统的限制,将无法打开新的文件。这相当于在利用此过程查询时,操作系统自动给查询时间段设置了上限。

所以目前的Nic Sys 1000平台的实时历史数据库采用两种文件处理过程的结合的方案来实现历史数据的多点时间段查询。当查询时间段低于临界值,则执行过程2;当查询时间段高于临界值,则执行过程1。

3 应用示例

利用秦山二扩安全壳泄漏率在线监测系统[3]从2010年7月至2010年10月的历史数据,通过系统DCS平台——Nic SysTM1000的实时历史数据库,进行了多点时间段查询两种处理过程的比较试验,得到两种文件处理过程的性能参数。表3给出了多点时间段查询1个变量的比较试验结果,表4列出了多点时间段查询10个变量的比较试验结果。

由表3和表4可看出,当查询1个变量时,打开文件的次数对查询消耗的时间不明显,处理过程1和处理过程2的性能区别不大。当查询多个变量时,打开文件的次数越多,查询消耗的时间越长,内存使用量区别更明显。查询消耗时间是用户在查询过程中最直接关注的参数之一,而查询内存使用量则需考虑操作系统指定的上限值。在查询内存使用量低于操作系统指定的上限值时,应使用处理过程2,当内存使用量高于操作系统指定的上限值时,应将两者结合使用,尽可能地缩短查询消耗时间。

4 结束语

通过将文件映射机制应用到实时历史数据库的单点时刻查询模式和多点时间段查询模式中,可以大大减少查询过程中打开文件、移动文件指针、读写文件等文件处理操作,缩短查询时间,提高了实时历史数据库查询历史数据的执行效率。

参考文献

[1]Jeffrey Richter.Windows核心编程[M].北京:机械工业出版社,2008.

[2]Stephen Prata.C Primer Plus(第五版)中文版[M].北京:人民邮电出版社,2005.

[3]900MW压水堆核电站系统与设备(下册)[M].北京:原子能出版社,2004.

历史数据库 第7篇

目前, 各个检测机构的检测工作大都实现了信息化, 检测数据基本上都保存到数据库中。我们可以充分利用这些海量的历史数据, 结合统计上的一些管理工具, 判断出这些异常的数据。

1 前提条件

1) 标准值未确定。我们的数据全部来源于数据库, 完全是基于历史数据来判断目前录入的检测数据与历史数据的偏差是否非偶然原因造成, 目的是直接从控制图自身出发, 发现检测数据本身的变化 (异常) 是否显著大于仅由偶然原因造成的变化。

2) 数据的单位保持统一, 绘图过程及结果不予考虑。

3) 数据的变化服从正态 (高斯) 分布。由于中心极限定理, 检测出来的数值总会趋向于正态分布, 而且只要数据数量越多, 这种趋势就越明显。但实际运用过程中, 仍需要通过绘制出来的图形来判断是否是正态分布, 同时, 最好也定期检查正态性假设的持续有效性。

4) 绘图的数据来源于数据库, 是历史性的数据, 而且无法再重复检测;有些是破坏性的试验。所以只能采用单个数值进行绘图, 即采用单值 (X) 控制图。所以, 数据是否异常的判定, 就是两个数据的移动极差所提供的变差, 也就决定了我们筛选出来的数据不能进行排序。

5) 如果数据量多, 极差图R即使有少数的值超过极限, 但是相对来说, 对统计结果的影响很小, 也可认为统计有效。

2 原理介绍

2.1 单值 (X) 控制图原理介绍

单值控制图的控制限公式如表1所示。详细原理介绍请看GB/T 4091-2001。

2.2 3σ准则介绍

在一组测量值yi中, 其算术平均值为。根据数理统计知识, 标准偏差, 若各测量值中只含有随机误差, 且按正态分布, 其残余误差落在±3σ以外的概率只有0.27%, 即它在有限此重复测量中发生的可能性很小。如果的残差的绝对值大于3倍标准差, 即时, 则认为yi属于异常数据, 应予提醒报错。

3 绘制控制图方法

图1是实际检测工作中钢筋JGJ 18-2003标准, 牌号是'HRB335', 公称直径是'18.0', 钢筋品种是'钢筋电渣压力焊'的极限荷载历史值, 共2226个数据, 使用Spss软件制作的控制图, 制作步骤如下:

从数据库中查询出JGJ 18-2003标准中牌号是'HRB335', 公称直径是'18.0', 钢筋品种是'钢筋电渣压力焊'的极限荷载值, 可按实际录入的次序或随机排序 (order by new ID () ) , 导出到Excel中。然后打开SPSS软件 (这里使用10.0汉化版) , 新建一个数据文件, 点击菜单栏的“文件”->“打开”->“打开数据文件”, 打开刚才的Excel文件, 导入数据。点击菜单的“作图”->“控制图”, 在弹出的对话框中选择”单值, 移动极差”, 单击“定义”。点击“工序测量”旁边的按钮, 将v1输入到文本框中, 在“图表”选项中选择“单值”, 如图2所示。

单击“选项”, 在弹出的对话框中填写σ的数目为3, 如图3所示。

点击“继续”, 再点击“确定”, 就可以看到控制图了。

由图可以看出, 上限是165.44, 平均值是144.33, 下限是123.22, 极限荷载值对称分布在平均值的上下限之间, 超过±3σ以外的极少, 可以认为属于异常数据。

注意事项:

1) 筛选极限载荷时需要注意, 哪些因素跟极限载荷有关, 如此例的牌号和公称直径。如果没有剔除的话, 就会出现如图4形状的控制图。

很明显的不对称, 向上偏。

2) 只找牌号HRB335的如图5所示。

也是明显的不对称, 向上偏的也很厉害。

3) 只找公称直经是20.0的如图6所示。

明显的向下偏, 钢筋品种也是类似的情形。只有指定了牌号、公称直径和钢筋品种的, 才能较好的满足正态分布的条件。由此也可看出, 影响极限载荷值的, 只有牌号、公称直径和钢筋品种三个因素 (具体的影响因素需要参考具体检测项目) 。

4) 另外还有一种如果比较多的数据分布在上下极限之外的, 也证明还有相关的影响因素没有排除出来。

5) 如果筛选出来的数据是排过序的, 控制图就会如图7所示。

图形显然是不正确的。

在实际应用中, 即使数据超出±3σ的控制范围外, 还要继续判断确实是属于样品的问题, 还是属于由检测人员、检测设备、环境异常等引起粗大误差。

4 实际应用

同样以钢筋JGJ 18-2003标准, 牌号是'HRB335', 公称直径是'18.0', 钢筋品种是"钢筋电渣压力焊"的极限荷载值的异常捕捉为例。

首先用上述方法记录下上下极限, 在数据库 (以SQL Server为例) 里存放极限荷载值的表中增加一个触发器, 每次有数据存入时, 判断存入的值是否超过上下限, 如果超过, 就在异常数据记录表中记录下来, 再在信息系统的保存按钮或其他按钮里面获取异常数据记录表的信息, 提醒检验员存在异常数据, 询问是否继续提交到下一流程。如果经过核查, 确实不属于无效数据的, 就可继续提交到下一流程, 同时在异常数据记录表中记录标志为已处理, 并记录下处理人员、日期;如果的确是属于无效数据, 则需调查原因, 走异常数据处理的流程, 直到可以提交为止。

本所自2007年11月份开始, 逐个对自动采集项目运用这个方法, 取得了良好的效果。现在这个方法仍然在完善当中。

5 不足与完善

1) 这个方法的前提, 要求有数据不能太少, 数据越多, 准确度越高。在实际运用中, 数据量如果比较少, 可根据专家提供经验值作为极限值。

2) 有异常提醒后, 最好能同时显示控制图, 并注明异常数据在控制图的哪个位置, 给检验员一个提醒的作用, 用图形来代替人员的模糊印象, 使判断更加直观。

3) 只能判断超过极限值的情况, 对于类似混凝土抗压的情况, 同一组中可能有多个数据, 虽然这些数据可能都在极限值之间, 但也许有个别数据与其他数据相差比较大的, 没有判断得出来。可参考《高分子材料科学与工程》的2007年3月第23卷第2期:《高分子科学实验中异常数据的判别与剔除》。

4) 有些产品特性要求不高, 数据的分布比较散, 用3σ的极限比较困难, 可能要用4、5;而有些产品特性要求高, 数据的分布比较集中, 可能用2σ就可以了。有些影响控制图的因素不是那么明显, 需要大量的数据才能较明显地体现其相关性。因此这些情况下不能够仅仅通过计算3?的极限来自动判断, 需要人工使用Spss软件来显示控制图并反复核对。

历史数据库 第8篇

一、实现原理

Teamcenter (UA) 中的基本数据结构是Item结构:

Item

|--Item Revision (版本对象)

|--IR Form (属性表)

|--Data sets (数据集)

Item是系统最基本的业务对象, Item Revision是版本对象, 用来管理各个版本的数据。属性表保存了版本的详细属性;数据集封装了物理文件。

在实施过程中, 我们通常会帮助企业整理有价值的历史数据作为PDM系统上线时的基础和参考, 比如标准件库, 有代表性的机种等等。一般情况下, 我们会把整理数据整理成Excel格式。所以要求历史数据导入工具需要能够分析Excel文件, 并且在Teamcenter (UA) 系统中创建上述数据结构。对于最常用的数据导入要求, 我把它分为三个主要的功能模块进行设计:

Item对象:逐个导入Item对象结构, 包括Item、Item Revision、数据集以及他们的关联关系

B O M对象:在导入Item对象结构的基础上再创建Bom结构, 表达零部件Bom关系;

Relation对象:导入若干Item对象之间的关系

对于上述三种业务逻辑, 可以把程序划分为“Excel读取”“数据创建”“驱动引擎”“导入日志”等模块进行设计:

二、关键技术

1. 通用性设计

为了使导入工具能处理尽量多种类型的数据源, 它有以下特点:

每个属性都有标示符, 表示它属于哪个类的属性, 是Item的还是DS的?

当读取属性名称列, 遇到空白列时, 标记这是列结尾。

当读取到行号为空的行时, 标记这是最后一行数据

提供多种可选选项, 配置导入后的一些后续动作。如:若同名DS存在是否覆盖, 若对象存在是否覆盖?

标记Bom关系上的属性, 例如:单位、数量等等

导入后能把所有权更改成另一用户, 能添加发布状态

2. POI读写Excel技术

导入必要的包

import org.apache.poi.hssf.usermodel.*;

定义Workbook对象:

public HSSFWorkbook wb=null;

打开Excel工作簿

wb=new HSSFWorkbook (filein) ;

读取单元格

读入字符串使用语句:

getStringCellValue () ;

读入数字使用语句:

getNumericCellValue () ;

写入单元格 (按格式写入)

写入字符串:

setStringCellValue (字符串) ;

写入数字:

setNumericCellValue (数字) ;

保存Excel工作簿

只需要保存新建workbook时输入的FileInputStream就能保存文件filein.close () ;

3. 基于Eclipse Plugins的两层Richclient二次开发

Teamcenter (UA) 两层Richclient是架构在Eclipse平台上的应用系统。各部件是按照Eclipse Plugins插件方式嵌入到整个系统的。我们所要开发的历史数据导入工具也作为一个插件被加载和运行的。

准备好Eclipse开发环境

Eclipse的版本要求是3.2以上, 推荐使用3.3

Jre版本要求在1.5.2.06以上

在Eclipse中新建一个插件工程并导入必要的Teamcenter开发包 (一些Jar文件)

在Eclipse中新建一个Plug-in Project

在工具栏添加按钮, 修改plugin.xml文件, 添加按钮命令按钮。

三、应用实例

本工具已经通过了一定的压力测试, 在某国企重型机械单位, 曾经成功批量导入过最多5300多行的数据, 服务器配置为2CUP*3.2G;内存4G。每分钟平均导入98条数据。在三天之内帮助企业把三十几个机型的产品结构全部录入Teamcenter (UA) 系统。

四、小结

如上所述, 在对历史数据导入逻辑的抽象和泛化的基础上, 运用Java、Eclipse、POI、Excel宏等多种技术对Teamcenter (UA) 进行客户化开发, 实现了通用格式对象导入功能。在这个功能的辅助下, 我们能够很好的导入必要的历史数据, 为PDM系统上线做好铺垫。

摘要:在PDM系统的实施阶段, 必须把企业的历史数据导入到这个系统。这些历史数据凝结了企业的知识, 是PDM初始环境必不可少的一部分。本文阐述了基于Teamcenter (UA) 的历史数据导入工具的设计原理与过程。

关键词:PDM,Teamcenter (UA) ,数据导入,POI,Eclipse

参考文献

[1]《制造企业的产品数据管理-原理、概念、策略》[德]肖塔纳著, 祁国宁译[M].电子工业出版社, 1999

[2]《Teamcenter 2007 Getting Started with Customization》SiemensTeamcenter[A].2007

历史数据库 第9篇

关键词:面向对象,链表,管道腐蚀检测,数据展示,数据回放

1 问题提出

当前,已有第三方控件[5,6,7,8]可以实现对数据进行图形展示,但在实现数据图形展示与回放方面面临诸多困难[9,10]:

(1)图形展示过程中海量数据存储对计算机内存的消耗瓶颈问题。

(2)图像历史回放过程中坐标变换问题。

(3)数据图形展示过程中局部图形縮放与关键时间段图形趋势追踪与切换问题。

(4)数据图形关键点搜索与定位回放问题。

(5)程序运行稳定性欠佳,内存“溢出”现象时常发生。

为此,基于Microsoft Visual C++平台,设计了一系列关键数据结构与算法,经实际运行测试,能较好解决上述设计中存在的技术问题。

2 系统体系结构[11,12]

管道腐蚀检测系统基于客户/服务器(Client/Server)结构,以MySQL作为数据存储,采用面向对象可视化编程工具Microsoft Visual C++6.0作为开发平台,其主要组成包括:服务器端的监控器(Monitor)和用户端的浏览器(Viewer),如图1所示。

监控器(Monitor)主要实现实时数据采集、存储、显示和管理最多可达247个监测点的金属损失、温度、腐蚀率数据,并图形化展示多监测点金属损失、温度、腐蚀率发展趋势,如图2所示;浏览端(Viewer)主要实现在接入局域网或因特网的计算机上浏览监测数据曲线,主要功能界面与监控器(Monitor)相似,不仅可以同步展示监控器(Monitor)当前状态,实现所有图形展示功能,还可对历史数据进行回放、縮放、定点搜索与定位回放等,以实现系统分析功能。

3 关键数据结构设计

3.1 公共对象类设计

Monitor和Viewer两大子系统在功能实现上有很多相似之处,因此本系统将相似功能抽象成若干公共对象类,主要包括:

3.2 关键数据结构设计

传统图形展示数据存储依赖于所用开发工具封装的相关数据控件,其数据存储、置换策略与交互性能取决于控件封装性能特征,本系统曾基于第三方控件进行开发设计,面临的问题主要表现为:

(1)图形变化迟缓,个别应用屏幕图形刷新耗时过长,不能满足工程要求。

(2)图形刷新数据交换频繁,内存消耗过高,时常出现死屏现象。

(3)图形回放、縮放效果低下,乱屏现象时常发生。

(4)图形定位、拐点搜索、特征点跟踪效果较差,实现复杂。

为此,本系统采用经典链表数据结构实现关键图形数据存储、动态分配与释放,同时也便于进行图形定位及搜索,链表数据结构为:

其中Data为数据节点结构描述,用于存储图形展示数据,LNODE为实时链表节点结构描述,用于提供对数据节点进行遍历所需相关信息支持,以实现文中相关算法,其节点结构示意图如图3所示。

为便于数据图形展示,方便图形回放、数据追踪、图形局部縮放等操作,设置特征值时间链表,其结点结构为:

为便于实现数据图形刷新,通过设置链表头节点指针等指针变量,并设置用于记录当前数据图形展示状态的相关指针数组,从而根据图形展示需求,实现数据图形的快速定位回放与追踪。本系统设置的主要链表节点指针变量有:

4 实现技术

4.1 实时图形展示和历史图形回放切换

正常情况下,Monitor端主要用于实时展示腐蚀趋势。但是,当实时展示图形出现异常时,也要求能进行历史数据回放,以反映图形变化的趋势特征。

本系统主要采用3条链表,即链表Drawhead、链表Head和链表p,如图4所示。

(1)Drawhead链表。主要用于保存当前接收的数据,该链表数据随着检测仪不断检测数据而增加,始终保存当前选择显示时间范围数据,如果数据个数超过显示时间范围个数,接收到新数据就丢弃(置换)旧的。

(2)Head链表。对于向后查看历史数据问题,链表Head用于保存查看历史数据时当前选择的显示时间范围所显示数据,从数据库中读取数据。

(3)p链表。链表p用于保存当前在屏幕上显示的数据,根据实际情况显示当前数据或者历史数据,从前面两条链表接收数据。

显示当前数据还是历史数据,由一个开关backorforward决定。当backorforward为0时,当前为实时展示,否则为历史展示,从而切换当前所使用链表数据。

当重新设置了显示时间范围,如果当前Backorforward值为0,则按实时展示处理;如果当前Backorforward值为1,则按单击“前进”按钮事件处理;当前Backorforward值为-1,则按单击“后退”按钮事件处理。

4.2 历史数据回放

本方案采用链表totalhead保存所有数据,即每次读数据库都将所有数据读取出来,如图3所示。用Timelink[i]链表组表示每一个时间坐标所在区间的结点,其中i根据具体时间坐标设定,一般与时间坐标一致。用Currenttime[i]指向第i个链表的当前结点。

例如,如果Timelink[j]当前显示时间范围为1天,则时间区间为2个小时,那么Timelink[j]每个结点就指向Totalhead中每隔2个小时的第一个结点。如果Timelink[j]当前显示时间范围为1年,则时间区间为一个月,那么Timelink[j]每个结点就指向Totalhead中每隔一个月的第一个结点。这样,当选择后退或者前进时,根据Timelink[j]就能直接找到下一区间所指第一个结点,然后再寻找“正确”的当前结点。通过该方法,可节省结点查找时间开销,只需要查找少量结点,即可查找到正确的点。关键算法如下:

4.3 腐蚀趋势变化曲线绘制

监控端曲线绘制主要在于实时显示监测到的数据变化趋势,而且同时可以回退查看以前历史数据变化曲线。所以,曲线绘制难点在于实时数据变化曲线和历史数据变化曲线之间的切换,下面给出本系统解决方法。

创建三条链表,分别为currentlink链表、historylink链表和drawlink链表。

(1)currentlink链表。用于保存当前实时监测得到的数据,该链表数据量随着不断监测到数据而增加,如果链表不存在空单元,则接收到新的腐蚀数据就丢弃旧腐蚀数据,但该链表始终保存某一设置时间区域范围内腐蚀数据。

(2)historylink链表。用于保存绘制历史数据变化曲线时某一设置时间区域范围内数据,历史腐蚀数据来自数据库。

(3)drawlink链表。用于保存当前屏幕上显示腐蚀变化曲线的数据,根据实际操作情况保存当前实时监测数据或者是历史监测数据,该链表数据来自前面两条链表。

参考文献

[1]张慧敏,潘家祯,孙占梅.现有埋地管道腐蚀检测方法比较[J].上海应用技术学院学报,2004,4(2):104-110.

[2]杨永,何仁洋,杨剑锋,等.埋地钢质管道腐蚀防护综合评价系统研究[J].管道技术与设备,2004,(2):11-14.

[3]李岩,屈祖玉,罗德贵等.埋地钢管牺牲阳极保护计算机辅助设计与实现[J].腐蚀科学与防护技术,2005,17(5):345-348.

[4]罗金恒,王曰燕,赵新伟等.在役油气管道土壤腐蚀研究现状[J].石油工程建设,2004,30(6):1-7.

[5]韩林,王海文,陈镭.VB中使用Tee Chart Pro4控件实现绘制和打印坐标图功能[J].计算机系统应用,2001,(9):67-69.

[6]朱玲,武玉强,张启宇.Tee Chart实现工控领域的实时曲线和历史曲线的方法[J].工业控制计算机,2005,18(8):39-40.

[7]赵树强.基于Tee Chart控件的外测数据图形分析系统的开发[J].飞行器测控学报,2005,24(2):88-92.

[8]王瑞荣,王建中,薛安克.面向虚拟仪器的图形化语言开发环境设计[J].计算机工程与应用,2005,(23):105-108.

[9]金安,姚建刚,葛亮等.Java数据流技术在远程实时数据图像处理中的应用[J].现代计算机,2004,201(12):73-76.

[10]丁益祥.如何用Delphi存取Microsoft SQL Server中的图像数据[J].武汉科技学院学报,2005,18(11):107-109.

[11]封亚斌.采用串口通信技术实现Modbus数据通信[J].自动化仪表,2004,25(10):56~58.

组态软件中的历史数据处理过程 第10篇

关键词:实时数据库,内存数据库,磁盘历史库

0、引言

历史数据处理作为工业实时数据库系统的一个核心功能, 其主要作用是保存实时数据的历史记录。由于先进控制应用和实时优化的需要, 有一部分历史数据被访问的频率可能很高, 为了减小磁盘的读写负担, 需要在内存中保存部分近期的历史数据, 称之为内存历史数据。另外, 对于超过一定时限陈旧的数据, 需从内存中清除, 并做一定的处理, 然后转存到磁盘文件上。

对于第一种应用, 建立内存历史数据库, 因为某些先进控制软件和实时优化软件等需要频繁访问这些数据, 而内存的存取速度快的特点可以充分满足这些软件的实时访问需求。对于第二种应用则使用磁盘历史数据库来实现。磁盘历史数据库主要以磁盘文件的形式存储历史数据。这种以磁盘文件为介质的形式适宜于存储长时间、大量的历史数据。同时便于转移、备份历史数据。为了使磁盘历史数据库具有快速、稳定的存储、读取性能, 历史数据文件的结构、数据缓冲区的设置及使用的压缩算法等设计都是至关重要的。

1、数据处理流程

(1) 数据处理流程图 (如图1)

(2) 数据处理过程

(1) 实时数据库通过接口软件从下层设备采集数据。

采集方式是多种多样的, 当今比较通用的是用OPC (OLE for Process Control) 通信方式获取数据, 此时接口软件即相当于一个OPC客户端, 通过网络获取OPC服务器提供的数据。

(2) 接口软件获取的数据有2份拷贝, 一份传至内存数据库, 替换掉内存数据库内原有的陈旧数据;

(3) 另外一份则通过调用磁盘历史数据库模块做一些处理, 将数据写入到磁盘文件。

2、内存历史数据库的数据管理

测点组态时, 根据需要设置各个测点要保存的内存历史数据长度。内存数据库根据组态信息预分配数据空间。过程数据不断地通过接口软件采集而来, 存入到内存数据库的数据区。当数据区存满时, 陈旧数据从数据区中被淘汰掉, 取而代之的是新采集来的数据, 以保持测点数据的实时性。

3、磁盘历史数据库的数据管理

磁盘历史数据是以磁盘文件的形式存在的。磁盘历史数据库中设计两种文件:历史数据文件和管理信息文件。一个实时数据库项目通常有一个管理信息文件及多个历史数据文件。

(1) 历史数据文件

历史数据文件采用的是页式存储管理方式, 主要存放位号历史数据及相关的索引信息, 这样可以提高存储和访问效率。

历史数据文件一般都有一个文件头页, 这个页面记录了本数据文件的首个空页、空索引页的位置、页总数及页尺寸等信息。文件头页为整个文件的起始页, 文件头页后紧跟着的是大量的数据页。数据页分为历史数据页和索引数据页两种类型。历史数据页中存放位号的历史数据。一个位号的历史数据可存放在多个页面上, 但一个页面不可存放多个位号的历史数据。同一个位号的历史数据可能分散在不连续的数据页内, 这些不连续的数据页通过时间索引链接在一块, 于是形成同一位号的历史数据链。历史数据链中的数据是以时间顺序排列的。时间索引页为测点历史数据建立一段顺序时间索引, 为了提高查询速度, 一个时间索引页中保存多个时间索引。每个时间索引都对应着本文件内一个历史数据页。同一时间索引页中存放的均为相同位号数据页的索引, 同位号诸多索引页之间通过某种机制前后链接在一起形成索引链。并且这个索引链是跨文件的。如此通过对索引链的前后查找, 就可以定位到某待查询时间的历史数据所在的页, 然后再通过二分查找或者顺序查找的方式, 定位到该数据页中那个要查找的历史数据。

(2) 管理信息文件

管理信息文件主要记录正在被实时数据库使用的历史数据文件。其主要目的是快速定位到某时间段对应的历史数据文件。一个实时数据库项目中一般有一个管理信息文件, 另外还有很多个历史数据文件。管理信息文件与历史数据文件是一对多的关系, 但并非每一个历史数据文件都在管理信息文件中有记录。

4、磁盘历史数据库的实现

磁盘历史数据库是实时数据库的一个子模块, 利用一个多线程的DLL服务器组件方式实现。

磁盘历史数据库系统分为应用子系统和通用磁盘历史数据库系统。应用子系统处理位号的逻辑, 形成位号数据的通用存储和查询逻辑, 从而变成通用数据库的用户。通用磁盘历史数据库子系统内部分为服务层和数据文件转换层及文件系统。

应用子系统处理位号具体逻辑。位号的周期性存储、位号的压缩、位号数据的属性等内容。应用子系统根据位号的逻辑关系和工作特点抽象为通用的数据存储逻辑, 通过通用磁盘历史数据库存储位号数据, 同时提供查询服务。

5、结语

历史数据处理是实时数据库中一个至关重要的功能。文中论述了实时数据库系统历史数据处理的详细过程, 以及磁盘历史数据库的实现技术。

参考文献

[1]徐国风.实时数据库关键技术研究[D].西安:西安建筑科技大学, 2006.

[2]叶建位, 苏宏业.实时数据库系统关键技术及实现[J].计算机应用研究, 2004.

[3]钱笑宇, 张彦武.工业实时数据库的研究和设计[J].计算机工程, 2005.

[4]刘吉臻, 房方, 牛玉广.电力企业中的实时数据库技术[J].中国电力, 2004, 37.

[5]徐慧.实时数据库中压缩算法的研究[D].杭州:浙江大学, 2006.

[6]OZGUR U.Research issues in real2time database systems[J].Information Sciences, 2006, 87 (2) :1232151.

上一篇:世界表达下一篇:城市化建筑结构