【无标题】

数据库发展史

数据库已经经历了半个世纪的发展,从概念的提出到早期的数据库,再到流行至今的关系型数据库,可谓是发展迅猛。从这条时间线来看,数据库的发展好像是井然有序的,是什么原因导致了大量的数据库出现,是理论的突破?还是市场的需求?或者两者皆有。

首先,不容置疑的是,数据模型是数据库的核心和理论基础。我们在划分数据库的时候,仍然会按照其基于的数据模型来分类。从一开始的层面模型,网状模型,关系模型,到对象模型,对象关系模型,半结构化等等。对于每一种模型这里就不展开说明了,推荐阅读《What Goes Around Comes Around》,大神的论文把数据库的历代发展成就分析得很透彻。作为鼻祖级人物,Michael Stonebraker 参与了众多数据库的系统设计和实现。

不难发现的是现在百家争鸣的数据库产品中,均是已有的数据模型来作为理论基础。可以肯定是,基础理论没有得到突破,或说有待突破。关系型模型刚提出的一段时间里,学术界发生了CODASYL的有向图模型和关系模型的辩论。有向图的复杂,使得数据库的技术门槛太高,而关系模型扎实的数学理论支撑以及更好的逻辑独立性赢得了市场的认可。从此关系模型一统江湖。到如今,新出的各类数据库,依然是关系模型。从MongoDB,Redis,Hbase,KV一路发展过来,最终在DB-Enginess的统计中,Oracle 带着小弟MySQL还有微软的SQL Server常年一路领跑,后面的追赶者连尾灯都看不到;而且关系模型在分类中仍然占据了很大的比例。概念也从SQL到NOSQL到NEWSQL,到最近的HATP,每一次都有推翻传统数据库的统治,迎接新时代的感觉。

还有一个阵营,是关于技术结合方面的。比如这两年最火的分布式数据库,不夸张的说能把教科书里面的MPP给笑醒。特别是各种光环加持,仿佛是黑暗中的一座灯塔。分布式数据库,并行数据库,多媒体数据库,主动数据库都是数据库技术和某个计算技术结合的产物,类似于嫁接。这类系统的特点就是通过两个技术体系的融合,可以满足特定的市场需求。比如分布式数据库,云计算普及的时候,弹性可伸缩变成了刚需。所以传统数据库不那么优雅分库分表显得不那么云原生。将数据库和分布式系统结合,显然就高大上了。这一点上,亚马逊务实一些,Aurora 基于MySQL做计算存储分离,去掉多余的交互逻辑,充分利用云环境的弹性能力,无论是扩展性还是性能都满足了市场需求。不得不说的是,计算存储分离,又成了家家必备的特性,如果我没理解错的话,DRDB,Oracle的RAC都是可以是计算存储分离吧。小时候,有个同学每天都很早都起来读书,但是他成绩总是倒数,因为他不知道自己在读什么。也许是市场需求误导了技术发展,或者是技术误导了市场需求。技术结合的数据库系统是非常有价值的,在特定市场里面可以发挥很大的作用,当然,他不会是通用型系统。

另一种则是场景结合。比如面向工程,面向地图系统,面向设计类等特定的领域。这一类数据库会对业务场景进行深入理解,分析其中的数据模型,特性,数据流的梳理特点,从而定制形成专属的更符合业务场景的,在性能,交互,事务处理方面更好表现的数据库。这一类数据库依然不是通用的,但是有价值的,还好,数据库网红界目前还有染指这块领域。
那么数据库未来会如何发展?首先不能抛开市场因素,也就是信息系统的对数据的需求;企业对数据库在安全,性能,扩展性,易用性方面的要求;特定场景,业务类型,数据特征对数据库的依赖。这些外部需求会在未来某个时间,对市面上的数据库进行筛选和对比。而在数据库内部,会不会出现产生下一个“关系模型”?,比如XML会不会成为主流模型?数据库的结构定义会不会动态变化甚至取消?我们不用再先建表再写入数据,数据库随着数据的写入动态适配数据类型,动态适配索引,动态适配查询计划?越来越多的算法代码将内置到数据库中,比如对AI算法的支持,比如对搜索算法的支持;主动数据库会不会成为主流,应用程序从查询改为订阅的模式,数据库主动推送数据的变化?。。。。

当数据和代码之间的距离越来越近,应用程序就可以和数据直接对话了。

最后列举一些个人观点:

1.HATP是个需求,不是特性。

2.会产生新的数据模型,来缩短系统之间的信息共享路径。

3.微型数据库市场可能会更大。(已知的是sqlite 安装量全球第一)

4.最终存活下来的厂商,不是因为产品好或则理论先进,而是因为有市场。

Mysql特性

1.MySQL性能卓越、服务稳定,很少出现异常宕机。

2.MySQL开放源代码且无版权制约,自主性及使用成本低。

3.MySQL历史悠久,用户使用活跃,遇到问题可以寻求帮助。

4.MySQL体积小,安装方便,易于维护。

5.MySQL口碑效应好,是的企业无需考虑就用之,LAMP、LNMP 流行架构。

6.MySQL支持多种操作系统,提供多种API接口,支持多种开发语言,特别是PHP。

Mysql安装区别

Typical(典型安装):安装只安装MySQL服务器、mysql命令行客户端和命令行实用程序。命令行客户端和实用程序包括mysqldump、myisamchk和其它几个工具来帮助你管理MySQL服务器。

Complete(完全安装):安装将安装软件包内包含的所有组件。完全安装软件包包括的组件包括嵌入式服务器库、基准套件、支持脚本和文档。

Custom(定制安装):安装允许你完全控制你想要安装的软件包和安装路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值