数据结构历史沿革

2024-04-27

数据结构历史沿革(共10篇)

篇1:数据结构历史沿革

数据结构历史沿革

本课程从本校招收的第一届(1994级)计算机专业新生开始开设至今,同时从1998年开始我校的电气工程专业、电子信息专业、信息与计算科学、机械电子专业都开设《数据结构》课程,它是教育部确定的全国高等学校计算机科学与技术专业核心课程之一。

《数据结构》作为一门独立的课程在国外是从1968年才开始设立的。在这之前,它的某些内容曾在其它课程,如表处理语言中有所阐述。1968年在美国一些大学的计算机系的教学计划中,虽然把《数据结构》规定为一门课程,但对课程的范围没有作明确规定。当时,数据结构几乎和图论,特别是和表、树的理论为同义语。随后,数据结构这个概念被扩充到包括网络、集合代数论、格、关系等方面,从而变成了现在称之为《离散数学》的内容。然而,由于数据结构在计算机中进行处理,因此,不仅考虑数据本身的数学性质,而且还考虑数据的存储结构,这就进一步扩大了数据结构的内容。近年来,随着数据库系统的不断发展,在数据结构课程中又增加了文件管理(特别是大型文件的组织等)的内容。

“数据结构”课程是一门计算机专业的重要的专业基础课,内容丰富,涉及面广泛,它主要研究非线性数据的数据结构及其算法,它不仅是《汇编语言》、《操作系统原理》、《编译原理》、《数据库原理》等课程的前驱和基础课程,而且直接关系到软件设计水平的提高和专业素质的培养,在整个计算机专业教学体系中处于举足轻重的地位。因而成为计算机科学与技术专业的核心课程,同时也成为大多数单位招收计算机类研究生的必考课程。随着计算机应用技术的发展,数据结构的内容也在不断更新和发展。

随着C语言和面向对象技术与面向对象程序设计语言在软件开发中的广泛使用,计算机专业的程序设计课程也改设C语言程序设计,用C或C++进行数据结构的描述势在必行。目前大多数学校均采用C或C++语言版本进行教学。我校从90年代中期开始一直沿用至今,采用清华大学出版严蔚敏等编写的《数据结构》(C语言版)教材,该教材自出版至今已发行100万册以上。该教材1990年获得国家级特等奖。1996年获科技进步三等奖,是全国高校中使用最广泛的一本书。算法均采用C语言描述。主要参考教材《数据结构习题集》严蔚敏,清华大学出版;《数据结构习题与解答》李春葆,清华大学出版;《数据结构与程序设计,C++ 语言描述(英文版)》,Robert L.Kruse,Alexander J.Ryba,高等教育出版社);《数据结构,算法与应用》(C++语言描述)Sartaj Sahni著,机械工业出版社等

在梯队建设上,经过多年的梯队建设,数据结构课程教学梯队形成老、中、青结合的年龄结构;高中级配合的职称结构;博士、硕士为主的较高的学历结构。

篇2:数据结构历史沿革

听完了《大数据时代的历史机遇》报告后,我对于大数据的兴趣依旧不减,还是想了解更多,而《大数据时代的历史机遇》就让我有了一个新的机会,从另一个层面了解大数据,了解信息技术领域的核心。其实现在很多时候,大数据已经悄然进入我们的生活、学习,只是我们还没有发现而已,正如文章中提到的:“没有大数据的云计算,就是房地产的代名词”,云计算虽说可以称为一场信息技术领域内的革命,但是它并不是一场技术革命,云计算在本质上是一场IT产品与服务、消费方式的变革,而大数据就是这场变革中的必然发展方向,说了这么多,到底什么是大数据呢?通过查阅资料,在维基百科中我得到了答案:“巨量资料(big data),或称大数据、海量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯”,而本书中提到亚马逊的大数据家John Rauser给出的定义是:“大数据是任何超过一台计算机处理能力的数据量”,其实不管怎么定义,都突出了大数据的“大”,不过“大”确实也是大数据的重要特征所在。

本书通过三部分的内容向我们阐述了大数据时代产业趋势的问题,数据科学以及世界主要国家在大数据方面的政策和举措,新兴公司在大数据领域的实践,其中在第一部分,作者提到当下的一个重要趋势是:行业垂直整合,也就是说,消费者才是中心思想,那些越靠近最终消费者的公司,将在产业链中拥有越来越大的发言权,现在无论做什么都是这样,只有更贴近消费者,更主动倾听消费者的需求,才能在竞争中胜出。就像我最近看的很多关于淘宝物流的论文中一样,在C2C电子商务市场中,目前拼的就是物流,而现在我国的物流水平基本一致,所以很多公司都从物流模式上下功夫,以此在C2C市场鹤立鸡群,就如淘宝网近期推出的“免邮仓”活动,买家在不同的淘宝店购物后,可由一个淘宝大仓负责统一发货,即一个买家购买多个卖家的商品将能合并成一个包裹送到买家手里,这样不仅能让多个卖家分摊这一个包裹的邮费,而且对于消费者来说,不管购买多少东西都是包邮。随着淘宝大物流计划的诞生和淘宝免邮仓活动的陆续进行,种种新型的物流模式都在尝试应用中,无论什么计划、活动,只要从客户出发,从客户的角度进行创新,结果一定会是双赢的,就像包邮仓活动一样,给客户提供便利的同时,也能为淘宝网稳固客流,更重要的是使物流系统变得专业化,这是大家希望看到的结果。所以形成以消费者为核心的产业格局,对于互联网大数据未来的发展相当重要。

泛互联网化是作者提到的另一个重要思想,刚开始对这个的概念很模糊,以前都没有听过,看了之后知道泛互联网化是为了摆脱传统产业时代的标准思维,不要使用单一的模式,使多种形态的设备、软件都会具备互联网的功能,作者经过对苹果、谷歌等引领世界潮流的公司进行分析,最终得出“终端”+“应用”+“平台”+“数据”的四位一体的泛互联网化标准,如果不集成网络功能的话,就不能带来最新的数据,商业价值也会随之大打折扣采用四位一体范式后,公司可以根据自己的优势选择盈利主要来源,来源不同,商业模式也就不同,文章中有一句话概括的相当到位:“最终决定胜负的将是“终端”或者“应用”带来的数据流量,是在“平台”中逐渐积累而形成的“数据资产”。”确实是这样,一个软件或者终端最终体现出来的价值,都是通过数据的流量来体现的。

篇3:数据结构历史沿革

实时数据库是一种特殊类型的数据库,目前广泛应用于电力、石油、石化、交通、航空、水利、环保等重要领域,在“信息化与工业化融合”过程中发挥着重要作用。

目前数据库技术广泛应用于工业控制、企业MES环境、智能交通、智能楼宇、通信等领域。这些应用的特点主要有:维护大量共享数据和控制数据;有很强的时间性,要求在规定的时刻或在一定的时间范围内完成处理;而且,所处理的数据有一定的有效时间,过时则会有新的数据产生,所以,这种应用对数据库和实时处理功能及特性均有需求。但传统的数据库系统主要处理永久、稳定的数据,强调维护数据的完整性、一致性, 考虑有关数据及其处理的定时限制。所以,传统的数据库管理系统不能满足这种实时应用的需要。

2实时数据库的特点

实时数据库所面向的应用领域有如下特点:

1)单位时间内响应的数据量很大

例如:一个企业的SIS系统使用实时数据库来存储数据,需要处理的测点数量超过一万。这些测点的变化周期通常在1秒钟之内,即,超过一万点的数据在1秒钟之内要保存到数据库中。

2)存储数据的量大

实时数据库的核心就是对大量实时信息进行处理,大量的数据将占据大量的硬盘空间。如果同时处理一万点的系统, 每1秒钟存储一次,每次单点占用8个字节,那么保存10年的数据量将有10000*8*10*365*86400=25228800000000字节,接近23TGB。

3)时效性非常强

由于每个需要处理的测点的值都与时间相关,一秒钟之后的数据与一秒钟之前的数据很有可能就不一样,所以在保存测点值的同时,必须通过某种方法将其对应的时间也纪录起来。

3实时数据库的历史数据存储结构及索引机制

实时数据库的历史存储模块是整个实时数据库的核心的部分。对用户提供数据存储和查询的作用。该模块面对的需求有以下特点:

1)数据量巨大。如果数据不设置压缩,一个测点一秒存储一次,那么一天就有86400条记录。每个数据库有10万个左右的测点。数据库运行时间都在几年以上。产生的数据量会很巨大。

2)用户对数据的访问方式特殊,多数情况下用户查询一个测点一段时间的数据。如查看某个测点一天内的趋势。

3)插入新数据并更新索引的效率必须非常高。因为在现实应用中实时数据库不停的写入新的实时数据。如果存储并更新索引的效率低,会影响整个数据库的效率。

4)在不影响读写效率的前提下,必须尽可能地节省磁盘空间。

3.1存储结构及索引机制

针对以上的需求特点,设计了特殊的存储和索引机制。主要特点如下:

1)在磁盘中以页为基本单位进行数据存储。每个页的大小为4K。

2)按照每条记录的时间戳建立索引,索引只访问到页,而不是页内的每条记录。

3)每个页内存放的记录都是属于一个测点。并且页内所有的记录都按照时间戳严格升序排列。

4)属于同一个测点的所有的页的时间区间,都不存在交集。如果由于特殊情况造成了交集,必须通过拆分、移动页,来避免交集。

5)对于已经写满的归档文件采用B+树的数据结构组织索引。如果归档文件已经写满,重新生成B+树的索引。提高查询效率。

6)对于当前活动的归档文件采用链表的数据结构组织索引。提高实时数据归档的效率。只需要将新的页的地址添加到链表的尾部即可。如果采用B+的索引方式,需要进行复杂的树的平衡操作,影响了写的效率。

整个实时数据库的存储结构如图1所示:

3.2 B+树的索引机制

B+树是B树的一个变种,因此必须先介绍B树。

B树也叫平衡多路查找树。B树是一个平衡多路查找树结构。与二叉查找树,平衡二叉查找树,红黑树等树结构相比虽然查找的时间复杂度相同都是O(log N)。B树是一种多叉的树结构,树的深度更低。降低了磁盘I/O频率,从而提高了访问及查询效率。

一个n阶的B树(n叉树)的特性如下:

1)树中每个结点最多有n个孩子(n>=2);

2)除根结点和叶子结点之外,其他每个结点至少有[ceil(n/ 2)]个孩子(其中ceil(x)是一个取上限的函数);

3)如果根结点不是叶子结点,则至少有2个孩子(特殊情况:没有孩子的根结点,即根结点为叶子结点,整棵树只有一个根节点);

4)所有叶子结点都出现在同一层,叶子结点不包含任何关键字信息(可以看做是外部接点或查询失败的接点,而实际上这些结点不存在,指向这些结点的指针都为null);

5)每个非终端结点中包含有m个关键字信息:(n,P0,K1,P1,K2,P2,…,Km,Pm)。其中:

a)Ki (i=1…n)为关键字,且关键字按顺序升序排序K(i-1)<Ki。

b)Pi为指向子树根的接点,且指针P(i-1)指向子树种所有结点的关键字均小于Ki,但都大于K(i-1)。

c)关键字的个数m必须满足:[ceil(n/2)-1]<=m<=n-1。

B+树:是B树的一个变种,相对于B树在每个叶子节点增加了指向下一个叶子节点的指针。

一棵n阶的B+树和n阶的B树的差异在于:

1)有m棵子树的结点中含有m个关键字(B树是m棵子树有m-1个关键字)

2)所有的叶子结点包含了全部关键字的信息,以及指向含有这些关键字记录的指针,而且叶子结点本身依关键字的大小自小而大的顺序链接。 (B树的叶子节点并没有包括全部需要查找的信息)

3)所有非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字。

B+树广泛应用于文件索引和数据库索引中。无论是随机查找还是顺序查找,都表现出了很好的效率。

目前电厂厂级监控信息系统SIS是实时数据库主要应用领域。SIS系统是介于DCS系统和MIS系统之间的具有独立功能的系统,它的核心是实时数据库。实时数据库向下负责集成各个不同控制系统的实时数据,而且能够长期保存这些历史数据。向上可以提供开放的实时数据库和历史数据服务,为ERP系统所用。实时数据库开发的其他模块,例如:生产过程监控, 厂级机组性能计算,经济指标分析,优化运行操作指导,故障诊断等,可以帮助企业提高自身的生产力和竞争力。

摘要:随着计算机技术的发展,越来越要求数据库能够快速响应并存储海量数据,同时能够高效收集、压缩、存储、分析数据。传统的关系型数据库不再能够满足要求,实时数据库是实现海量数据采集的有效手段,实时数据库通过采用实时数据压缩算法以及特殊的历史数据存储索引机制,应对目前的需求。实时数据库推动了信息化从传统领域向新的领域发展,为企业生产、管理、数据分析、决策提供实时数据服务和多种数据管理。

关键词:实时数据库,索引,信息化

参考文献

[1]张志檀.实时数据库原理及应用[M].中国石化出版社,2001.

[2]张少敏,李志雄.一种面向智能电网的实时数据库数据完整性方法[J].电力系统自动化,2013,37(13):93-98.

[3]李蔚,盛德仁.火电厂SIS系统中实时数据库平台的选择[J].中国电机学报,2003,23(12):218-221.

[4]刘云生.实时数据库系统[M].科学出版社,2012.

[5]曹志英,李冠字,谢益武,等.企业现有应用系统的概念层数据整合技术与方法[J].计算机工程与应用,2003,39(8):222-224.

篇4:数据结构历史沿革

历史知识的整体结构包括历史发展的基本线索、各个历史时期发展的阶段特征、重要历史要领三个层次。基本线索是历史知识体系的“经线”,把握了基本线索,就能贯通来龙去脉,明确趋势归宿,提示变化规律。各个发展埋藏的分阶段特征,是历史知识的“纬线”。同一时期的历史涵盖了政治、经济、文化等内容,阶段特征则揭示了各个方面发展的共性,起着加强横向内在联系的作用。重要的历史要领是对历史纵横发展有着巨大影响的历史事件(人物、制度)本质的反映,是历史知识结构的基本单位,是历史思维的细胞。

怎样建立起知识的整体结构?在此,以中国民族资本主义的产生、发展为例给予说明。第一步就是要做到对重要的历史要领全方位的理解和记忆。中国民族资本主义从产生的条件看:明、清是缓慢发展的资本主义萌芽;列强侵略加速了自然经济的解体,客观上提供了劳动力、市场;受外商刺激的一些中国官僚、地主、商人投资于近代企业;洋务运动引进西方先进技术起到了诱导作用。在上述四个条件中,第一项是历史原因,后三项分别从劳动力、市场、资金、技术等方面阐述了具体原因。从民族资本主义兴起的过程看:(1)时间——十九世纪六七十年代。(2)地点——上海、广东、天津等沿海地区。(3)标志——方举赞的发昌机器厂。从作用看,中国民族资产阶级诞生了,工人阶级的队伍壮大了。第二步就是将重点知识放在特定的历史阶段,剖析与该阶段政治、经济、文化等诸多方面的相互关系,横向联系中对其进行再认识。民族资本主义的产生从经济上看,其作用是使中国社会经济结构发生了质的飞跃;从政治上看,其作用是使中国社会的阶段结构发生了根本变化,民族资产阶级的诞生、无产阶级的壮大为民主革命造就了新的领导力量;从思想上看,早期维新思想突破了“中学为体、西学为用”的局限,开始学习西方的政治制度,为维新变法运动奠定了思想基础。第三步就是将重点知识放在历史进程中,在纵向联系中进行再认识。首先应梳理中国民族资本主义发展变化的过程。中国民族资本主义产生于十九世纪六七十年代,经历了十九世纪末的初步发展和一战期间“短暂的春天”。后来在北洋军阀统治的中后期艰难发展。二十世纪三四十年代,由于官僚资本的压迫、日本的殖民统治、美国的侵略,民族资本主义陷入了困境。新中国成立后,对资本主义工商业合理调整,在三大改造中,通过各种形式将国家资本主义最终改造为社会主义国营经济。然后比较民族资本主义在各个阶段的异同,经过比较,概括出其共同点:(1)在社会经济结构中的地位:代表先进,生产方式。(2)所处的客观条件:处于外国资本主义和本国封建势力的压迫。(3)发展状况:资金少,技术力量薄弱,规模小,发展畸形。(4)经济趋势:惨淡经营,日益萎缩。最后还可以将特点(1)、(2)归纳引申得出:在中国民族资产阶级的两面性中,反对外国资本主义侵略和封建主义压迫的革命性始终是主要方面。民族资产阶级为开辟中国资本主义独立发展的道路,进行了维新变法、辛亥革命。将特点(3)、(4)归纳推论还可以提出下列认识:由于中国民族工业始终没有得到充分的发展,民族资产阶级力量薄弱,加之与外国资本主义和封建势力相妥协的一面,因而不能完成民主革命的准备。

篇5:初中历史教学设计框架结构

一、教学思想(或理念)

阐述设计本节课的整体思想(或理念)

二、教学内容

(1)内容:对内容进行简要说明,包括版本和内容在该版本中的章节位置;(2)内容解析:重点阐述本节课内容在中学历史课程中的地位,在此基础上阐明教学重点。

这里要在整体框架结构的指导下,围绕当前内容,进行微观分析。

三、目标

(1)目标:包括知识与能力、过程与方法和情感态度价值观三维目标。(2)目标解析:对目标含义进行解析,使目标对教学具有有效的定向指导作用。

四、教学问题诊断分析(1)教学难点

(2)设计者应当根据自己以往的教学经验,对本内容在教与学中可能遇到的障碍进行预测,并对出现障碍的原因进行分析。在上述分析的基础上指出教学难点。具体的,可以从认知分析入手,即分析学生已经具备的认知基础(包括知识、思想方法和思维发展基础),对照教学目标还需要具备哪些条件,通过已有基础和目标之间的差异比较,分析教学中可能出现的障碍。

五、教学支持条件分析(1)教学资源

(2)为了有效实现教学目标,根据教学内容的特点以及学生学习的需要,恰当选择和运用教学媒体,有效整合教学资源,以更好地展现历史发展过程及其本质,帮助学生正确理解历史,发展历史思维。

六、教学过程设计

教学过程的设计一定要建立在前面诸项分析的基础上,前后呼应,特别要与设定的教学目标相呼应。

在每一个教学环节后,要写出设计意图(基于学情分析、学生学习行为分析等)、师生活动预设、指导思想方法、需要培养的能力等。教学过程应当注意根据教学内容的特点进行设计,例如,基于问题解决的设计,讲授式教学设计,自主探究式教学设计,合作交流式教学设计等。

七、目标检测设计(1)习题

(2)试题分析,阐述所选试题的目的、检测的内容、学生可能会出现的问题、反思教学教学问题等。

八、教学反思

反思教学预设与生成的一致性、反思教学行为、学生的学习行为、对今后教学的启示等。反思不仅要总结本次教学活动的优点和成功之处,也要注意指出本次教学活动激发的值得研究的课程问题、具启发意义的事件或教学实际实施过程中的缺陷。并就这些问题做出自己的思考,重在通过分析、找出问题的症结,提出改进教学的方法。要注意在事实的基础上加以总结和提升,不要单纯罗列事实和现象。理论的总结要注意语言通俗简明,并利用本次教学活动的具体证据来论证,不要长篇大论地引用他人文章,或脱离具体教学活动做笼统的理论阐述。

九、板书设计

十、教学资源

教学资源包括:学案、课件及其他教学相关资源。

篇6:结构力学发展的早期历史和启示

结构力学发展的早期历史和启示

系统地梳理和总结了结构力学自17世纪牛顿经典力学的创立到20世纪五六十年代矩阵位移法和有限元法的建立这一段不平凡的`发展历史,并列出了从中获得的几点历史启示,为培养学生创新能力和实施创新教育提供一些素材,大学生和教师们在结构力学课程的学习和教学中可以借鉴参考.

作 者:杨迪雄 YANG Dixiong 作者单位:大连理工大学工程力学系,工业装备结构分析国家重点实验室,大连,116023刊 名:力学与实践 ISTIC PKU英文刊名:MECHANICS IN ENGINEERING年,卷(期):29(6)分类号:O3关键词:结构力学 教学 早期历史 启示 创新教育

篇7:中国地方治理结构的历史与转型

一、西方政府研究思潮的主义背景

当前我国公共管理的价值观念大多是从西方引进的。这样的价值观多有某种“主义”的特点,“主义”之争在中国成为一个重要的话题。目前在中国语境中的“新左派”、“老左派”和自由主义、社会民主主义与其在西方语境中大为不同,但在“主义”基础上提出的问题有一定的相似性。

目前西方对政府的研究有两种思潮:民主社会主义从政府的职能出发,倾向于建立福利国家;自由主义则从政府权力的授予来考察,倾向于建立守夜人式的国家。这两种思潮形成于20世纪,然其渊源可以追溯到17世纪的重商主义和重农主义。民主社会主义主张国家提供更多的福利,扩大国家责任,但并不认为国家权力是无限的,可以不受限。而自由主义由于害怕个人权利受到侵犯,主张缩小国家权力,但这并不等于说不要国家干预。所以,民主社会主义和自由主义的对立不是绝对的,二者产生矛盾的前提是:国家的责权对应。

中国现在不是自由放任太多,也不是国家福利太多,因此我们不是既不要自由放任又不要国家福利的`问题,而是恰恰相反,既要更多的自由放任又要更多的国家福利。在我们国家的现实生存环境中,不仅自由主义和社会民主主义有其基本的价值重合,而且古典自由主义和古典社会民主主义也有明显的价值重合。其价值重合主要在于公民权利、自由与程序正义。

二、对当前中国传统地方治理研究的思考

就传统中国而言,乡村社会既不是被租佃制严重分裂的两极社会,也不是和谐自治的内聚性小共同体,而是大共同体本位的“伪个人主义”社会。与其他文明传统相比,传统中国的小共同体性更弱,但这并非因为个性发达,而是因大共同体的属性所致。它与法家或“儒表法里”的传统相连,形成一系列“伪现代化”现象。小共同体本位的西方传统社会在现代化起步时曾经过“公民与王权的联盟”,而中国的现代化则可能要以“公民与小共同体的联盟”为中介。

传统社会的反近代化机制无疑有儒家色彩的一面,即大共同体与小共同体都抑制个性,父权制家族桎梏与专制国家桎梏都阻碍着自由交换、竞争与市场关系的发展,阻碍着民主、人权与公民社会的形成。但这种反近代化机制更具有非儒家色彩(或曰法家色彩)的一面,即“大共同体”不仅抑制个性,而且抑制小共同体;不仅压抑着市场导向的个人进取精神,而且压抑了市场导向的集体进取精神。古代中国政治中枢所在的北方地区宗族关系远不如南方尤其东南一带发达,因此公民社会的发育比南方更为困难,

现在对中国传统地方治理的研究有一种套路,认为中国传统的地方治理有以下五个特点:国权不下县(县以下是自治);县下皆宗族;宗族皆自治;自治靠伦理;自治靠乡绅。这些特点可以归总为:县下无吏皆自治。最早提出传统中国国权不下县的是韦伯。他认为,中国的儒教不可能导致现代化,因为它是非理性的,而现代化在某种意义上就是理性化。传统中国社会的治理凭借的就是这种非理性的“卡里斯马”型权威。

三、中国地方治理结构的历史与转型

1.县下无吏并非自古就有。

中国自古以来并不是县下无吏的。古代乡吏是政府养的一些官员,用以为国家治理社会;乡役是政府强行指定一些人为国家治理服务。隋唐之后出现乡绅。考察历史可知,隋唐之前乡村治理是以乡吏为主的;隋唐之后则由乡役和乡绅共同治理。靠乡役治理,存在治理者的积极性问题;而靠乡绅治理,其本身存在两面性的问题。总之,在隋唐之后的这种制度比较乡吏治理,自治较专治浓重得多。

篇8:数据结构历史沿革

连续查询[1]是数据流应用的典型特征, 它是在数据流持续到达情况下的连续计算。由于内存空间的限制, 以及查询的实时性要求, 数据流管理系统一般使用滑动窗口技术对近期数据流进行近似查询处理[2,3,4]。然而, 在一些实际应用领域里 (如大坝安全监测、火山爆发预测等) , 人们不仅需要近期数据流, 还需要结合大量历史数据流共同解决问题。因此, 如何高效存储和查询海量历史数据流是值得研究的问题。

在已有研究中, 文献[5]从时空数据库技术角度出发, 研究了基于SB-tree结构的数据流多粒度聚集问题, 提出对历史久远的数据采取粗粒度 (如以年、月为单位) 的聚集存储, 对近期数据采取细粒度 (如以分钟为单位) 的聚集存储方式。这种方法可以节约海量数据流的存储空间, 但该方法丢弃了大量历史数据, 而且需要不断更新SB-tree结构, 降低了数据流处理的实时性, 另外, SB-tree结构的部分结点存在空闲空间, 导致存储空间的利用率不高。文献[6]提出利用初始抽样和多层递阶抽样过程实现历史数据的存储, 减少了样本数据对外存空间的存储压力, 不过该方法可能会丢弃部分重要的历史数据。

本文结合数据流的特点, 基于有界无序BD (Bounded Disorder) [7]结构, 提出一种新的历史数据流存储方法。该方法综合了B+树与Hash的优势, 避免了当数据流过大时, 造成索引项很大, 以致无法完全存在主存中的现象。理论与实验分析表明, 该方法可以支持历史数据流的高效管理。

1 动机

为了支持大量数据流的实时存储及高效查询, 必须减少数据结构更新次数及随机查询、范围查询和按关键码顺序查询时的I/O次数。

1.1 B+树及其变形结构

由于B+树能够减少随机访问和顺序访问的I/O次数, 所以人们通常利用B+树或其变形来组织数据。但实际上, 如果完全按照B+树结构组织全体历史数据流, 即每一个数据结点对应一个页块或物理块, 会导致B+树的索引项非常大, 不能完全放在主存中, 而且大量数据流插入还会导致数据结点分裂频繁发生, 难以满足存储和查询的性能需求。如果通过增大结点的物理块容量来降低B+树的高度, 则当一个物理块不能一次装入内存时, 反而会大大降低随机查询和顺序查询的效率。另外B+树对存储空间的利用率也很难让人满意。

1.2 Hash及其扩展结构

Hash与可扩展Hash方法对数据流随机访问请求比B+树有更快速的响应。可扩展Hash方法还可以提高基于范围的查询效率, 它允许关键码序列动态地增长和收缩, 能够有效解决数据“冲突”问题, 如果关键码序列能够全部存储在主存中, 那么每次检索只需要一次磁盘访问, 否则需要两次磁盘访问, 时间开销达到O (1) 。但基于Hash的顺序访问效率低下, 存储空间的利用率也差强人意。

1.3 BD结构

BD结构把B+树和Hash方法有效结合起来, 其索引项采用B+树结构, 不同的是索引项的一个叶子结点 (数据结点) 指向一个桶序列, 即指向磁盘上一个连续的页块序列, 而不是一个页或物理块, 不同叶子结点桶数相同。这样保证BD结构的索引项足够小, 可以完全存放在主存中。一个叶子结点的数据通过Hash结构组织到各个桶中, 不同桶间的数据可以无序。由于各叶子结点间是按照关键码的大小有序组织的, 所以桶间的无序只局限于一个叶子结点内, 是有界的。同一个桶内的数据按照关键码大小有序存放。桶由一个或多个页块组成, 页块是一次I/O数据传输的基本单位。BD结构如图1所示。

在数据流环境下, 如果直接根据BD结构来存储从滑动窗口流出的元素, 尚存在以下问题: (1) 数据溢出问题, 这是所有使用Hash方法必须首先面对的问题。不好的溢出方法同样会降低存储和查询的效率。 (2) 数据结点的大小难以确定, 某些时刻元素的频率可能达到每秒几千甚至几万, 而此信息预先又不可知。如果数据结点设计偏大, 会造成存储空间的浪费;数据结点设计偏小, 溢出就会频繁发生。 (3) 数据结点发生分裂时, 如何确定分裂点使分裂前的数据能够均衡分配到新生成的两个数据结点。

本文基于BD结构, 下面给出一种新的历史数据流存储方法, 可以解决以上问题。

2 基于BD结构的存储架构

首先定义相关概念。本文把每一个元素的时间戳映射成一个整数, 从而可以将一组具有先后顺序的时间戳看作是一个从小到大排列的整数序列。

定义1时间段给定2个时间戳ts和te, 且ts≤te, 则[ts, te]构成一个时间段 (记为T) , ts和te分别称为T的下界和上界, te-ts的值称为T的跨度, 记为|T|。

设有2个时间段T1=[ts1, te1], T2=[ts2, te2], 如果ts1=ts2且te1=te2, 则认为T1与T2相等;如果te1=ts2, 则称T3=[ts1, te2]为T1与T2之和, 记为T3=T1+T2, 并且称T1与T2是可相加的;如果ts1≥te2或te1≤ts2, 则称为时间段T1与T2不相交, 记为T1∩T2=;如果ts1≤ts2, 且te1≥te2, 则认为T1涵盖了T2, 记为T1T2。

定义2数据集的时间段对于数据流的某个时间段的历史数据集合S={<s1, t1>, <s2, t2>, …, <sn, tn>}, 时间戳ts (S) =min{ti}, te (S) =max{ti}, 1≤i≤n, [ts (S) , te (S) ]构成数据集S的时间段 (记为T (S) ) 。

基于BD结构的历史数据流存储架构如图2所示, 它具有双层结构, 第一层为索引层, 我们称BDTree层, 它采用B+树形式组织各个数据结点;第二层为结点层, 我们称BDHash层, 主要利用Hash方法组织数据到相应的各个桶中。

对于BDTree层, 其存储结构为:

(1) 索引层中的每个结点对应一个时间段T, 存储的信息为 (n, is_leaf, P0, K0, P1, K1, P2, …, Kn-1, Pn) , 其中, n为时间段的划分点的个数, is_leaf是判断该结点是否为叶子结点, 如果是叶子结点, Pn为指向右边相邻叶子结点的指针, 否则Pn为null, Pi (0≤i≤n-1) 是指向时间段为[Ki-1, Ki]的子结点的指针, Ki是关键字, <K1, K2, …, Kn-1>是T的一个段划分点集, K1<K2<…<Kn-1。

(2) 每个叶子结点 (即数据结点) 存储时间段[ts, te]内的样本数据 (pd, m, s) 以及指向右边相邻叶子结点的指针, 其中pd是叶子结点所指向的外存地址, m为Hash表包含的基本桶的个数, s为每个桶能够存储数据页块的个数。

对于BDHash层, 每个数据结点对应一个Hash表, Hash表包含m个基本桶和一个溢出桶。基本桶和溢出桶具有相同的结构, 起初都包含2个页块, 发生溢出时每个桶都扩充为3个页块;数据在基本桶和溢出桶中的组织和表示是一致的, 即按照关键码的大小在桶内顺序存放。通过Hash把数据插入到相应的基本桶中, 如果对应的基本桶已满, 就把该数据存储在溢出桶中。如果持续插入导致溢出桶也发生了溢出, 那么数据插入失败。

当数据插入失败时, 有三种方法可以进行处理: (1) 直接将相应的数据结点一分为二; (2) 增加基本桶的个数; (3) 增加桶的容量。如果采用第一种方法, 分裂后会立即导致存储空间的利用率下降, 这是B+树在数据插入失败时采用的方法, 也是B+树存储空间利用率不高的原因;如果采用第二种方法, Hash表的容量得到扩展, 但需要将数据根据Hash函数重新分配, 从而降低了效率;如果通过增加桶的容量解决数据插入失败问题, 既不会大幅度降低存储空间利用率, 又不需要重新分配数据。采用增加桶容量的方法并不意味在任何一个数据插入失败时都需要扩充桶的容量。本文采用“部分扩充”法, 首先, 当插入导致溢出桶发生溢出时, 将基本桶和溢出桶的容量由2个页块扩充到3个页块, 当扩充后的溢出桶再次发生溢出时, 分裂数据结点。

3 相关算法

本文设计了基于BD结构的历史数据流存储算法, 以及随机查询和范围查询算法。

3.1 数据插入操作

数据流管理系统首先会根据注册的数据流初始化BD结构, 包括BDTree和BDHash两层。该结构维护的相关参数主要包括:BDTree的根结点指针root, 指向最左边叶子结点的指针PLeaf, 指向外存地址的指针pd, 桶的最大容量b, 桶的页块数s, 基本桶的个数m, 基本桶的当前容量nb, 以及溢出桶的当前容量no。数据插入过程具体描述为:把从滑动窗口流出的数据si的时间属性ti映射成一个整数ki, 从BDTree的根结点root开始, 自顶向下搜索指向包含ki的最小时间段的叶子结点node的指针pi, 根据外存地址pd将该数据结点对应的外存物理块导入内存。再通过Hash计算该数据对应的基本桶号, 如果桶未满则直接插入该数据, 否则, 采用“部分扩充”策略来插入数据。插入过程定义如下:

算法1 Insert算法

如果基本桶未满, 插入开销是1次磁盘读操作1次磁盘写操作;如果基本桶满溢出桶未满, 插入代价为2次磁盘读1次磁盘写;如果基本桶和溢出桶都满, 具体的开销就与多种因素有关, 例如, 已经满的基本桶个数等等。

3.2 数据查询操作

STREAM提供了支持谓词判断的扫描操作。它每次读取一个数据, 并抽取出谓词判断中所涉及的属性, 针对的是滑动窗口内的数据。本文的算法支持滑动窗口的数据查询, 同时支持外存中的数据查询, 具体包括随机查询、范围查询和顺序查询。

数据流随机查询可以定义为:

范围查询可以定义为:

其中Output为输出函数, Data Stream为数据流, time为查询时刻, T为查询时间段, constraints为查询约束条件 (包括谓词条件和分组聚集条件) 。

3.2.1 随机查询

数据流系统存在随机查询的必要性, 为了充分利用存储空间和提高查询效率, 我们将距离当前久远的数据进行抽样或者压缩, 对抽样和压缩的结果可以进行随机查询。用于BD结构的数据在桶内是有序存放, 查询的主要思想是在对应的页块中根据二分法查找到基于查询时刻time的数据。随机查询算法如下:

算法2 random Query算法

3.2.2 范围查询

范围查询的过程是:首先查找到指向包含时间段下界和上界的最小时间段的叶子结点node的指针ps、pe;根据ps指向的初始数据结点开始, 连续读取数据结点直到ps为止。I/O不再以页块为单位传输数据, 一次I/O读取一个node。范围查询算法如下:

算法3 range Query算法

输入:BDTree的根结点指针root, 查询时间段的上界ts、下界te;

输出:基于查询时间段的数据。

(2) 将时间戳ts、te映射成整数ks、ke;

(3) 自顶向下搜索指向包含ks、ke的最小时间段的叶子结点node的指针ps、pe;

(5) while (p!=pe) {get Node (ps->node) ;//从磁盘块中读取

//指针指向的整个数据结点输出数据;

p=p->next Node;//指向相邻的右边的数据结点}

由于各数据结点的数据在桶间无序、桶内有序, 范围查询的结果并不完全按照关键码的顺序输出。而对于顺序访问, 查询的结果必须按照关键码的顺序输出。因此, 我们需要对数据结点各桶间的数据进行排序, 利用桶内的有序性, 可以使用归并方法对桶间的数据排序 (具体算法略) 。

4 实验分析

在实验中, 我们采用的计算机硬件环境为Pentium D3.2GHz, 1GB内存;软件环境为Window XP SP2, 实验平台是Visual C++6.0。

在测试的实验中, BDTree的一个数据结点所占字节数为28, 则BDTree和B+树的最大扇出度d均为146;对于BDHash, 我们设每个叶子结点的桶数为16, 初始每桶对应2个页块。对于B+树, 每个叶子结点对应一个页块。实验中使用的数据通过程序随机生成。本实验主要考虑两个性能指标来对比基于B+树结构和BD结构的数据流存储查询:1) 空间利用率;2) 运行时间效率。

4.1 空间利用率

图3显示了两种结构在不同规模的数据集上的空间效率。若给定的记录数为r, 一个页块可容纳b个记录, 实验运行总共分配的页块数为n, 则:

实验结果显示, 当数据集规模不是很大时, B+树结构具有优势, 当数据集达到一定规模后, BD结构更具有优势。

4.2 运行时间效率

图4显示了两种结构在不同规模的数据集上运行时间效率。所谓运行时间效率, 就是数据流从注册查询开始到完全数据流存储在磁盘上所用的时间。实验结果显示, 随着数据集的增大, BD的运行时间效率明显高于B+树, 这是由于BD结构采用连续的多页块序列存储数据流, 保证了BDTree索引项很小, 减少了数据插入失败时频繁分裂数据结点带来的时间开销, 从而提高了运行的效率。随着数据集的增加, 两种方法运行时间都相应增加。

5 结论

本文基于BD结构提出一种新的历史数据流存储管理和查询处理方法。该方法把BDTree和BDHash方法有效结合起来, 通过BDTree组织关键码在内存中的存储, 通过BDHash组织数据在外存中的存储, 并采用“部分扩充策略”来解决数据冲突问题。理论分析与实验结果表明, 该方法的存储空间利用率和查询效率具有一定优势。

摘要:实际应用中, 人们往往不仅需要近期数据流, 还需要结合大量历史数据流来共同解决问题。研究表明, 处理大量历史数据流时, 传统数据库索引技术 (如B+树) 不能提供高的存储利用率和查询效率。针对任意时间段历史数据流的存储查询问题, 提出一种基于BD结构的存储与查询方法。该方法将BDTree和BDHash相结合, 能有效降低BDTree的高度, 减小索引项的规模, 同时可以避免数据结点规模过大。在此基础上, 研究了“部分扩充”策略以解决数据插入失败问题。理论分析和实验结果表明, 该方法能提高存储空间利用率和查询效率, 可以有效应用于历史数据流的存储和查询。

关键词:历史数据流,BD结构,部分扩充

参考文献

[1]Terry D, Goldberg D, Nichols D, et al.Continuous queries over append-only database[C].SIGMOD 1992:321-330.

[2]Babcock B, Babu S, Datar M, et al.Models and issues in data streamsystems[C].PODS 2002:1-16.

[3]Charu Aggarwal.A Framework for Clustering Massive-Domain Data Streams[C].ICDE 2009:102-113.

[4]Vassilis A, Panagiotis P, Michalis P, et al.Approximate embedding-based subsequence matching of time series[C].SIGMOD 2008:365-378.

[5]Zhang D, Gunopulos D, Tsotras V J, et al.Temporal aggregation overdata streams using multiple granularities[C].EDBT 2002:646-663.

[6]张冬冬, 李建中, 王伟平, 等.数据流历史数据的存储与聚集查询处理算法[J].软件学报, 2005, 16 (12) :2089-2098.

篇9:数据结构历史沿革

出版:2014-04-01

定价:65.00

天翼观点:

数据大师盖洛普,仅仅通过民意调查就能预测出罗斯福会击败兰登当选美国总统、艾德礼会击败丘吉尔当选英国首相。在“9·11”事件的悲剧现场,为什么美国国家统计部门无法在第一时间为最高决策者提供准确的数据?白天上班人口如何统计?类似北京等大型城市早晚通勤人数有什么规律,这又蕴含着哪些商机?在规划线路时就要知道,低收入群体集中在哪里,人数有多少,距离上班地点到底有多远这些数据巨大的商业和研究价值。

内容简介:

信息爆炸、互联互通、智慧城市时代,大数据,更以排山倒海之势席卷全球,政府施政、企业掘金,大众要公平与正义,大数据被赋予了新的历史使命。

在这本书中,从小数据时代到大数据的崛起,作者以宏大的历史观、文化观、大数据观,给我们描绘了一幅数据科学、智慧文化的全景图。全书从美国建国之基讲起,通过阐述初数时代、内战时代、镀金时代、进步时代、抽样时代、大数据时代的特征,系统梳理了美国数据文化的形成,阐述了其数据治国之道,论述了中国数据文化的薄弱之处,展望了未来数据世界的远景。

作者简介:

涂子沛,江西吉安人,现居美国硅谷。2012年其著作《大数据》在中国社会开大数据之先河,引发了大数据战略、数据治国和开放数据的讨论,历史学家许倬云先生盛赞其“为华文世界开创了一个重要话题”。

篇10:数据结构历史沿革

九年义务教育初中历史教科书领域宽广,每篇课文内容丰富,信息量大。怎样在45分钟时问内完成历史课的教学任务,教学方法的改革不能不说是迫在眉睫、势在必行了。本文试图通过对初中历史教学方法——“自学小结法”的介绍,为改进初中历史教学的现状,克服教师讲得多、写得多,学生听得多、抄得多的呆板境况,充分调动学生学习历史的积极性,起一个抛砖引玉的微薄作用。

要充分利用历史课的45分钟时间,提高单位时间内的教学质量,就必须在教学中发挥教师的主导作用,重视培养学生的自学能力,才能使45分钟得到最佳效果。那么,怎样发挥教师的“主导”作用,又如何培养学生的“自学”能力呢?我在多年的教学教研中做了如下的尝试,也就是自己命名的“自学小结法”。

“自学小结法”大致是把一堂课分为四个环节:

一、激发兴趣,导入新课。从旧课导人新课是个关健。根据思维规律和心理学上引起注意所需的条件,在上新课前教师应设法把学生学习的兴趣激发起来,将学生的兴奋点转移到学习上来,从不同的途径达到导人新课的目的,从而使一堂课有个好的开端。

例如,在讲《三国鼎立》这一课时,为导人新课,可从学生日常生活中熟悉的事物——对联人手:“同学们,今天我给大家看一幅对联,请大家谈谈它说的是什么意思?”

出示:智谋隆中对三分天下,专心爱心用心 1

壮烈出师表一片丹心。

介绍:“这是陆定一同志当年视察襄阳隆中时题写的一幅对联,请同学们润润其中的滋味。”这一下班上活跃起来了。一会儿,就有同学举手发言,待学生谈完后教师讲:“同学们回答得很好,这幅对联写的是东汉末年刘备三顾茅庐之后,诸葛亮帮刘备分析天下形势,也就是著名的‘隆中对’;后来诸葛亮为报刘备知遇之恩,在准备出师北伐曹魏时写给蜀后主刘禅的一份奏章——‘出师表’,表达了他对蜀汉政权的一片丹心。”紧接着解释“三分天下”,激发起学生求知的欲望,这样,导人新课便如同顺流之水了。

二、提出问题,自学课文。九年义务教育初中历史教科书几乎每篇课文在课前提示部分或课文中间都安排有思考题,根据不同课文的情况,教师还可在此基础上自拟一至三道思考题,课前一并写在小黑板上,到时挂出来。思考题既可针对正文,也可面对小字,让同学们结合思考题阅读课文。这样,阅读有了明确的任务,引起学生的有意注意,学生的阅读也就认真积极了。这段时问教师很快把板书设计中的课文要点写在黑板上,然后就可巡回辅导。

思考题应从学生的实际出发,抓住课文的内在联系,尽量通俗平易且给学生一定的刺激,让学生带着浓厚的兴趣、解决问题的欲望阅读课文。例如,《三国鼎立》这一课,因为《三国演义》的电视连续剧几乎所有的学生都看过,为正确理解课文,培养学生分析问题的能力,就有安排几道思考题的必要。可出三道思考题:

1、官渡之战的历史作用是什么?战争中曹操取胜的关键是什么?

2、学过本课后,谈谈应怎样评价曹操和诸葛亮?

3、“数年中,所在积粟,仓廪皆满”是什么意思?为什么会出现这种情况?

这样,学生产生了好奇心,同时也产生了解决问题的愿望,针对思考题很快投入到紧张的阅读活动中,不仅要求默读,还要求针对黑板上的课文要点作记号,或者对不认识的字、不理解的词查查工具书,也作上记号。

三、质疑问难,归纳小结。当大部分学生阅读完毕就可进行小结了。这是一个重点环节,可分为三步。首先请同学们针对思考题发表自己的意见,每个问题学生讲完意见之后,教师做个小结——或肯定或补充。在《三国鼎立》这一课里可作三点小结说明:”

1、官渡之战是历史上著名的“以少胜多”的战役,为曹操统一北方奠定了基础。战争中,袁绍的谋士许攸投降曹操并建议偷袭乌巢,成为曹操取胜的关键。

2、曹操是我国古代一位杰出的政治家、军事家和诗人,与戏剧舞台上的白脸奸臣是有本质区别的;诸葛亮是我国古代著名的政治家,由于他在政治话动中善于审时度势,为刘备父子出谋献策,在民间享有很高的威信。

3、“数年中,所在积粟,仓廪皆满”,主要说明曹魏重视农耕,大兴屯田所取得的成效;其意思是:几年的时间,仓库里就已经积满了粮食。

然后,教师对全课作简要的概括,同时强调重点。例如本课应强调三国鼎立局面形成后,魏、蜀、吴三国都努力发展经济,坚强国力,把农业放在首位,这是他们的共同点,因而三国时期是分裂而又富于生机的时代。

最后,教师要进一步鼓励学生质疑问难,搞清楚他们对本课还有什业问题,有就解决,没有就进行下一个环节。

四、当堂练习,巩固强化。由于前面三个环节,都是师生在较紧张的气氛中进行的双边活动,大约花去30分钟时间,剩下的时间便可做练习了。这个环节强调历史课堂的实践活动,通过练习让学生动手动脑,体会自学的方法,真正成为学习的主体,让学生尽可能地获取知识并力求在课内加以巩固强化。因

为课内给了练习时间,又是刚刚学完,学生的练习质量就好些,这比起课内练习课外做,增加学生负担,学生匆忙地应付,效果也要好些。

在这个环节里,可视课文内容适当添加一些口答题、笔答题和课外思考题。例如在本课的处理上,为强调“三国鼎立局面的形成”这个教学重点,可出一道课外思考题:“请同学们课后思考一个问题:能不能说赤壁之战结束后,历史就进人三国时代,为什么?”并说明下节课要提问。

第二节课一提问,同学们竞相回答,最后得出结论。这样,就使学生对这个内客加深了理解,同时又为下一个环节——导入新课,做了必要的铺垫。

“自学小结法”将历史课堂的教学结构分为环环相扣的四个环节,它们是一个有机的整体,不能简单地割裂开,应强调它们之间的阶段性和连续性;教学中应体现教师为主导学生为主体的原则,教师应充分地让学生带着问题(思考题)去阅读,带着任务去自学,然后通过“小结”将学生“自学”的情况“导”出来。这里应强调要“启则得法”、“导而有方”;历史课有它自身的特点,在教学中应通过教师的“启”和“导”使课堂气氛活跃起来,而不能过于呆板和严肃。

上一篇:四矿微电影故事下一篇:办年货的小学三年级作文