数据库的发展过程

数据的存储可以说在任何时候都会用到,小到日常的 excel,word ,大到现在的分布式存储数据库。

对于一个程序员来说,几乎所有的系统设计,数据的存储可以说是根本,一个良好的数据库,一个好的数据结构设计,都是每个程序员锱铢必较的!

       下边就简单介绍下,数据库在发展的过程中,演变的过程...

最开始的 Excel 表格存储数据,但是这样的数据往往非常难以查询,或作各样的分类,接着就是演变为我们熟知的RMDBS(NoSql是另外一种), 常见的包括 Mysql,Oracle,SqlServer .etc

这样的结构化的数据,我们就可以通过专门的sql语句来条件查询,做分类聚合,分页等操作,能满足我们日常系统的需要。

但是,虽然随着当前数据大爆炸时代的来临,我们的数据越来越多,现有的存储不能支撑我们的业务,渐渐的,我们就会开始考虑数据库的集群,来增大数据存储的可能性。

这个时候,一个数据库的横向扩展,就被提了出来(纵向扩展主要就是增加单机的存储能力)。恰好,因为Hadoop的产生,给了人们这么一个机会去更简单的实现横向扩展,单单通过增加机器的节点就能增加数据库的存储能力--------比起提高机器的硬件,一个便宜的主机来得更方便,性价比更高,我们的Hive,HBase分布式存储数据库就此诞生,

高可用性,可扩展性,一致性都是当今数据库所需要的。但是这样的数据库,在留给用户使用的过程是非常复杂的,人们还是更加倾向于只用简单的sql语句就能操作我们的数据库,而且还要支持事物。所以新一代的TiDB应运而生,它既有分布式数据库的特性,还能只通过简单的sql语句就能满足我们的使用,并且它还是支持事物的。

我理解题主觉得 BigTable 系的 NoSQL 并不是表达力高于关系模型,而是灵活性吧?
比如汇编语言和高级语言,哪个表达力更强,哪个灵活度更高应该很明显。SQL 的表达力是毋庸置疑,都(差不多?)是图灵完备的语言了,你说强不强,

用 KV 的 API 写个正确的多表 JOIN 试试?。。。。而且最关键是,这个是事实标准啊。。。多少程序员是写完 hello world 以后,就开始学 SQL 的。

另外,我们发现关系模型其实是可以和分布式很好结合的,并非水火不容,而且关系模型本身并没有限定实现方式,只不过过去的 RDBMS 都是在单机上实现,

很多 Pattern 并没有在分布式场景中有 good practice,特别是 OLTP, 所以大家可能就会觉得这个没法做。其实还是能的,就是比较复杂,不过我相信我们团队能 handle 这个复杂度。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值