下一代数据库技术的发展主流
针对关系数据库技术现有的局限性,理论界如今主要有三种观点 :
面向对象的数据库技术将成为下一代数据库技术发展的主流 部分学者认为现有的关系型数据库无法描述现实世界的实体,而面向对象的数据模型由于吸收了已经成熟的面向对象程序设计方法学的核心概念和基本思想,使得它符合人类认识世界的一般方法,更适合描述现实世界。甚至有人预言,数据库的未来将是面向对象的时代。
面向对象的关系数据库技术 关系数据库几乎是当前数据库系统的标准,关系语言与常规语言一起几乎可完成任意的数据库 *** 作,但其简洁的建模能力、有限的数据类型、程序设计中数据结构的制约等却成为关系型数据库发挥作用的瓶颈。面向对象方法起源于程序设计语言,它本身就是以现实世界的实体对象为基本元素来描述复杂的客观世界,但功能不如数据库灵活。因此部分学者认为将面向对象的建模能力和关系数据库的功能进行有机结合而进行研究是数据库技术的一个发展方向。
面向对象数据库技术 面向对象数据库的优点是能够表示复杂的数据模型,但由于没有统一的数据模式和形式化理论,因此缺少严格的数据逻辑基础。而演绎数据库虽有坚强的数学逻辑基础,但只能处理平面数据类型。因此,部分学者将两者结合,提出了一种新的数据库技术——演绎面向对象数据库,并指出这一技术有可能成为下一代数据库技术发展的主流。
数据库技术发展的新方向
非结构化数据库是部分研究者针对关系数据库模型过于简单,不便表达复杂的嵌套需要以及支持数据类型有限等局限,从数据模型入手而提出的全面基于因特网应用的新型数据库理论。支持重复字段、子字段以及变长字段并实现了对变长数据和重复字段进行处理和数据项的变长存储管理,在处理连续信息(包括全文信息)和非结构信息 (重复数据和变长数据)中有着传统关系型数据库所无法比拟的优势。但研究者认为此种数据库技术并不会完全取代如今流行的关系数据库,而是它们的有益的补充。
数据库技术发展的又一趋势
有学者指出 :数据库与学科技术的结合将会建立一系列新数据库,如分布式数据库、并行数据库、知识库、多媒体数据库等,这将是数据库技术重要的发展方向。其中,许多研究者都对多媒体数据库作为研究的重点,并认为多媒体技术和可视化技术引入多媒体数据库将是未来数据库技术发展的热点和难点。
未来数据库技术及市场发展的两大方向数据仓库电子商务 部分学者在对各个数据库厂商的发展方向和应用需求的不断扩展的现状进行分析的基础上,提出数据库技术及市场在向数据仓库和电子商务两个方向不断发展的观点。他们指出 :从上一年开始,许多行业如电信、金融、税务等逐步认识到数据仓库技术对于企业宏观发展所带来的巨大经济效益,纷纷建立起数据仓库系统。在中国提供大型数据仓库解决方案的厂商主要有Oracle、IBM、Sybase、CA及Informix等厂商,已经建设成功并已收回投资的项目主要有招商银行系统和国信证券系统等。当前,国内外学者对数据仓库的研究正在继续深入。与此同时,一些学者将数据库技术及市场发展的视角瞄准电子商务领域,他们认为 :如今的信息系统逐渐要求按照以客户为中心的方式建立应用框架,因此势必要求数据库应用更加广泛地接触客户,而Internet给了我们一个非常便捷的连接途径,通过Internet我们可以实现所谓的One One Marketing和One One business,进而实现E business。因此,电子商务将成为未来数据库技术发展的另一方向。
面向专门应用领域的数据库技术 许多研究者从实践的角度对数据库技术进行研究,提出了适合应用领域的数据库技术如工程数据库、统计数据库、科学数据库、空间数据库、地理数据库等。这类数据库在原理上也没有多大的变化,但是它们却与一定的应用相结合,从而加强了系统对有关应用的支撑能力,尤其表如今数据模型、语言、查询方面。部分研究者认为,随着研究工作的继续深和数据库技术在实践工作中的应用,数据库技术将会更多朝着专门应用领域发展。 数据和数据处理
数据(Data)是用于描述现实世界中各种具体事物或抽象概念的,可存储并具有明确意义的符号,包括数字,文字,图形和声音等.数据处理是指对各种形式的数据进行收集,存储,加工和传播的一系列活动的总和.其目的之一是从大量的,原始的数据中抽取,推导出对人们有价值的信息以作为行动和决策的依据;目的之二是为了借助计算机技术科学地保存和管理复杂的,大量的数据,以便人们能够方便而充分地利用这些宝贵的信息资源.
数据库
数据库(DataBase,DB)是存储在计算机辅助存储器中的,有组织的,可共享的相关数据集合.数据库具有如下特性.
⑴数据库是具有逻辑关系和确定意义的数据集合.
⑵数据库是针对明确的应用目标而设计,建立和加载的.每个数据库都具有一组用户,并为这些用户的应用需求服务.
⑶一个数据库反映了客观事物的某些方面,而且需要与客观事物的状态始终保持一致.
数据库管理系统及其基本功能
数据库管理系统(DataBase Management System,DBMS)是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据,获取和管理数据,接受和完成用户提出的各种数据访问请求.能够支持关系型数据模型的数据库管理系统,称为关系型数据库管理系统(Relational DataBase Management System,RDBMS).
RDBMS的基本功能包括以下4个方面:
⑴数据定义功能:RDBMS提供了数据定义语言(Data Definition Language,DDL),利用DDL可以方便地对数据库中的相关内容进行定义.例如,对数据库,表,字段和索引进行定义,创建和修改.
⑵数据 *** 纵功能:RDBMS提供了数据 *** 纵语言(Data Manipulation Language,DML),利用DML可以实如今数据库中插入,修改和删除数据等基本 *** 作.
⑶数据查询功能:RDBMS提供了数据查询语言(Data Query Language,DQL),利用DQL可以实现对数据库的数据查询 *** 作.
⑷数据控制功能:RDBMS提供了数据控制语言(Data Control Language,DCL),利用DCL可以完成数据库运行控制功能,包括并发控制(即处理多个用户同时使用某些数据时可能产生的问题),安全性检查,完整性约束条件的检查和执行,数据库的内部维护(例如索引的自动维护)等.RDBMS的上述许多功能都可以通过结构化查询语言(Structured Query Language,SQL)来实现的,SQL是关系数据库中的一种标准语言,在不同的RDBMS产品中,SQL中的基本语法是相同的.此外,DDL,DML,DQL和DCL也都属于SQL.
⒈3.4数据库应用系统及其组成
数据库应用系统又简称为数据库系统,是指拥有数据库技术支持的计算机系统,它可以实现有组织地,动态地存储大量相关数据,提供数据处理和信息资源共享服务的功能.
各类人员主要参与数据库应用系统的需求分析,设计,开发,使用,管理和维护,他们在数据库应用系统的开发,运行及维护等阶段扮演着不同的角色,并起着不同的作用.各类人员主要包括以下几种.
⑴最终用户.
⑵系统分析员.
⑶应用程序员.
⑷数据库管理员(DataBase Administrator,DBA). 从其应用方式来看,数据库技术主要起着两方面的作用.
⑴信息系统开发作用.利用数据库技术以及互联网技术,并结合具体的编程语言,可以开发一个信息系统,从而解决业务数据的输入和管理问题.在信息系统开发中,主要利用的是RDBMS的基本功能,即数据定义功能,数据 *** 纵功能,数据查询功能以及数据控制功能.
⑵数据分析与展示作用.利用RDBMS的数据查询功能对数据库中的数据进行关联组合或逐级汇总分析,并以表格,图形或报表形式将分析结果进行展示,从而解决业务数据的综合利用问题.
大数据技术发展史:大数据的前世今生
今天我们常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,也就是我们经常听到的“三驾马车”,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。
你知道,搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建,而在这个过程中,有大量的数据需要存储和计算。这“三驾马车”其实就是用来解决这个问题的,你从介绍中也能看出来,一个文件系统、一个计算框架、一个数据库系统。
现在你听到分布式、大数据之类的词,肯定一点儿也不陌生。但你要知道,在2004年那会儿,整个互联网还处于懵懂时代,Google发布的论文实在是让业界为之一振,大家恍然大悟,原来还可以这么玩。
因为那个时间段,大多数公司的关注点其实还是聚焦在单机上,在思考如何提升单机的性能,寻找更贵更好的服务器。而Google的思路是部署一个大规模的服务器集群,通过分布式的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算。 这样,Google其实不需要买很多很贵的服务器,它只要把这些普通的机器组织到一起,就非常厉害了。
当时的天才程序员,也是Lucene开源项目的创始人Doug Cutting正在开发开源搜索引擎Nutch,阅读了Google的论文后,他非常兴奋,紧接着就根据论文原理初步实现了类似GFS和MapReduce的功能。
两年后的2006年,Doug Cutting将这些大数据相关的功能从Nutch中分离了出来,然后启动了一个独立的项目专门开发维护大数据技术,这就是后来赫赫有名的Hadoop,主要包括Hadoop分布式文件系统HDFS和大数据计算引擎MapReduce。
当我们回顾软件开发的历史,包括我们自己开发的软件,你会发现,有的软件在开发出来以后无人问津或者寥寥数人使用,这样的软件其实在所有开发出来的软件中占大多数。而有的软件则可能会开创一个行业,每年创造数百亿美元的价值,创造百万计的就业岗位,这些软件曾经是Windows、Linux、Java,而现在这个名单要加上Hadoop的名字。
如果有时间,你可以简单浏览下Hadoop的代码,这个纯用Java编写的软件其实并没有什么高深的技术难点,使用的也都是一些最基础的编程技巧,也没有什么出奇之处,但是它却给社会带来巨大的影响,甚至带动一场深刻的科技革命,推动了人工智能的发展与进步。
我觉得,我们在做软件开发的时候,也可以多思考一下,我们所开发软件的价值点在哪里?真正需要使用软件实现价值的地方在哪里?你应该关注业务、理解业务,有价值导向,用自己的技术为公司创造真正的价值,进而实现自己的人生价值。而不是整天埋头在需求说明文档里,做一个没有思考的代码机器人。
Hadoop发布之后,Yahoo很快就用了起来。大概又过了一年到了2007年,百度和阿里巴巴也开始使用Hadoop进行大数据存储与计算。
2008年,Hadoop正式成为Apache的顶级项目,后来Doug Cutting本人也成为了Apache基金会的主席。自此,Hadoop作为软件开发领域的一颗明星冉冉升起。
同年,专门运营Hadoop的商业公司Cloudera成立,Hadoop得到进一步的商业支持。
这个时候,Yahoo的一些人觉得用MapReduce进行大数据编程太麻烦了,于是便开发了Pig。Pig是一种脚本语言,使用类SQL的语法,开发者可以用Pig脚本描述要对大数据集上进行的 *** 作,Pig经过编译后会生成MapReduce程序,然后在Hadoop上运行。
编写Pig脚本虽然比直接MapReduce编程容易,但是依然需要学习新的脚本语法。于是Facebook又发布了Hive。Hive支持使用SQL语法来进行大数据计算,比如说你可以写个Select语句进行数据查询,然后Hive会把SQL语句转化成MapReduce的计算程序。
这样,熟悉数据库的数据分析师和工程师便可以无门槛地使用大数据进行数据分析和处理了。Hive出现后极大程度地降低了Hadoop的使用难度,迅速得到开发者和企业的追捧。据说,2011年的时候,Facebook大数据平台上运行的作业90%都来源于Hive。
随后,众多Hadoop周边产品开始出现,大数据生态体系逐渐形成,其中包括:专门将关系数据库中的数据导入导出到Hadoop平台的Sqoop;针对大规模日志进行分布式收集、聚合和传输的Flume;MapReduce工作流调度引擎Oozie等。
在Hadoop早期,MapReduce既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由MapReduce自己完成。但是这样不利于资源复用,也使得MapReduce非常臃肿。于是一个新项目启动了,将MapReduce执行引擎和资源调度分离开来,这就是Yarn。2012年,Yarn成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。
同样是在2012年,UC伯克利AMP实验室(Algorithms、Machine和People的缩写)开发的Spark开始崭露头角。当时AMP实验室的马铁博士发现使用MapReduce进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,而MapReduce每执行一次Map和Reduce计算都需要重新启动一次作业,带来大量的无谓消耗。还有一点就是MapReduce主要使用磁盘作为存储介质,而2012年的时候,内存已经突破容量和成本限制,成为数据运行过程中主要的存储介质。Spark一经推出,立即受到业界的追捧,并逐步替代MapReduce在企业应用中的地位。
一般说来,像MapReduce、Spark这类计算框架处理的业务场景都被称作批处理计算,因为它们通常针对以“天”为单位产生的数据进行一次计算,然后得到需要的结果,这中间计算需要花费的时间大概是几十分钟甚至更长的时间。因为计算的数据是非在线得到的实时数据,而是历史数据,所以这类计算也被称为大数据离线计算。
而在大数据领域,还有另外一类应用场景,它们需要对实时产生的大量数据进行即时计算,比如对于遍布城市的监控摄像头进行人脸识别和嫌犯追踪。这类计算称为大数据流计算,相应地,有Storm、Flink、Spark Streaming等流计算框架来满足此类大数据应用的场景。 流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算。
在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。而像Flink这样的计算引擎,可以同时支持流式计算和批处理计算。
除了大数据批处理和流处理,NoSQL系统处理的主要也是大规模海量数据的存储与访问,所以也被归为大数据技术。 NoSQL曾经在2011年左右非常火爆,涌现出HBase、Cassandra等许多优秀的产品,其中HBase是从Hadoop中分离出来的、基于HDFS的NoSQL系统。
我们回顾软件发展的历史会发现,差不多类似功能的软件,它们出现的时间都非常接近,比如Linux和Windows都是在90年代初出现,Java开发中的各类MVC框架也基本都是同期出现,Android和iOS也是前脚后脚问世。2011年前后,各种NoSQL数据库也是层出不群,我也是在那个时候参与开发了阿里巴巴自己的NoSQL系统。
事物发展有自己的潮流和规律,当你身处潮流之中的时候,要紧紧抓住潮流的机会,想办法脱颖而出,即使没有成功,也会更加洞悉时代的脉搏,收获珍贵的知识和经验。而如果潮流已经退去,这个时候再去往这个方向上努力,只会收获迷茫与压抑,对时代、对自己都没有什么帮助。
但是时代的浪潮犹如海滩上的浪花,总是一浪接着一浪,只要你站在海边,身处这个行业之中,下一个浪潮很快又会到来。你需要敏感而又深刻地去观察,略去那些浮躁的泡沫,抓住真正潮流的机会,奋力一搏,不管成败,都不会遗憾。
正所谓在历史前进的逻辑中前进,在时代发展的潮流中发展。通俗的说,就是要在风口中飞翔。
上面我讲的这些基本上都可以归类为大数据引擎或者大数据框架。而大数据处理的主要应用场景包括数据分析、数据挖掘与机器学习。数据分析主要使用Hive、Spark SQL等SQL引擎完成;数据挖掘与机器学习则有专门的机器学习框架TensorFlow、Mahout以及MLlib等,内置了主要的机器学习和数据挖掘算法。
此外,大数据要存入分布式文件系统(HDFS),要有序调度MapReduce和Spark作业执行,并能把执行结果写入到各个应用系统的数据库中,还需要有一个大数据平台整合所有这些大数据组件和企业应用系统。
图中的所有这些框架、平台以及相关的算法共同构成了大数据的技术体系,我将会在专栏后面逐个分析,帮你能够对大数据技术原理和应用算法构建起完整的知识体系,进可以专职从事大数据开发,退可以在自己的应用开发中更好地和大数据集成,掌控自己的项目。
希望对您有所帮助!~
进入信息化市场,数据库的重要性日益凸显,目前数据库主要分为数据库产品、数据库服务和数据库支撑体系。我国数据库产品以关系型为主,非关系型数据库以键值型数据库为主。
金融、电信、政务、制造和互联网为我国数据库应用最为广泛的领域,但是它们的应用特点各不相同。未来,在企业崛起、国家利好政策和资本关注等因素推动下,我国数据库行业市场规模有望接近7百亿元。
本文核心数据:数据库产品分布、数据库市场规模
数据库主要分为三大类
在信息化时代,数据库已经逐渐应用于各行各业。数据库主要分为三大类:数据库产品、数据库服务和数据库支撑体系。
数据库产品主要由关系型数据库、非关系型数据库、混合型数据库及数据库周边工具构成。
数据库服务是指围绕数据库的咨询规划、实施部署和运维运营等环节,为数据库系统的正常、高效、持续、安全使用提供信息技术服务工作。
数据库支撑体系由从事数据库学术研究、人才培养、开源社区、评测认证等工作的相关主体共同构成。
数据库产品以关系型为主,非关系型数据库以键值型数据库为主
目前,我国数据库产品主要以关系型为主,非关系型及混合型数据库较少。截止2021年6月,我国关系型数据库共有81个,非关系型数据库共有54个。在非关系型数据库中,键值型数据库占比最高,占非关系型数据库的9.26%。
五大行业应用较广,应用特点各不相同
在我国,金融、电信、政务、制造和互联网为我国数据库应用最为广泛的领域,但是它们的应用特点各不相同,金融、电信的IT监管环境较为严格、数据业务较为复杂、核心数据业务呈现“强事务”的特点,而对成本敏感度较低。与之相反的是,互联网领域对IT监管环境较弱,但是对成本敏感度较高。
市场规模有望接近7百亿元
虽然目前我国数据库较欧美国家发展规模较小,2020年我国数据库市场规模约占全球数据库市场规模的5.2%,约为240.9亿元。
但是,随着我国浙江智臾、涛思数据等为代表的时序数据库企业不断涌现,同时得到政策政策以及资本关注,我国数据库行业有望迎来新一轮的增长,2025年我国数据库市场规模有望接近7百亿元。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)