基本概念
什么是数据?<br>
我们先来看看一些基本概念,首先是数据,什么是数据呢?简单地说,数据是所考虑的任何对象相关的事实。这样的解释很抽象是吧,让我们来举个例子,你的姓名、年龄、身高体重等等就是数据。甚至于,一张照片、文件、pdf文件等等也可以理解为数据。
什么是数据库?
通过刚刚的举例,我们已经知道什么是数据,但这些数据可能是随机的、无序的。那数据库其实就是一个系统的数据集合。它能支持数据的存储和操作。也正因为数据库中的数据是有组织的,数据的管理才变得简单。
什么是DBMS?
接下来,我们再来看一个概念DBMS,DBMS的全称是数据库管理系统。它是一组程序,使用户可以访问数据库、操作数据,并帮助呈现数据。另外它还有助于控制各种用户对数据库的访问。我们现在的常用数据库MySQL、Oracle、SQL Server等等,其实就是DBMS。
这里是几个真实的DBMS应用场景。<br>* 在线通讯录,它会通过DBMS来存储数据,比如姓名、电话号码、联系地址等等<br>* 电力服务系统,它会使用DBMS来管理账单、故障事件、客户投诉等数据<br>* 社交软件,它需要存储、操作并呈现与朋友相关的数据,这些都需要通过DBMS来实现
现代数据库开端
那接下来我们来看看现代数据库的开端<br>现代数据库的开端,应该说是以一篇论文的发表为标志的。1970年,在IBM位于硅谷的研发中心,有一位研究员叫EF Codd,他当时发表了一篇论文,大型共享数据库的关系模型,这篇论文对关系型数据库产生非常深远的影响,后来EF Codd也被大家誉为“关系数据库之父”。<br>现在我们大规模使用的数据库,或者说基于SQL,基于关系模型的数据库,如Oracle、DB2、SQL Server、MySQL、PostgreSQL,其实都是以这篇论文为开端的。<br>
然后分享个八卦吧,据说当时Oracle的老板拉里读完这篇论文后,觉得这篇论文相当震撼,他觉得数据库就是这样子的,于是一拍脑袋,创立了一家叫Oracle的公司。当然这只是一个八卦哈,也无从考证,大家当做一个野史听听就好了。<br>然后大家有兴趣的话,也可以搜索下这篇论文,学习一下,也膜拜一下……
数据库发展时间轴
OK,我们再来看看数据库这几十年来的大事记<br>从1970年论文发表,这是一个开端。然后1977年,Oracle公司成立。其实从整个70年代到90年代,数据库软件市场,基本上被几个传统巨头公司所垄断,像IBM、Oracle,那在当时呢,数据库是一个很小众的领域。基本上需要用到数据库的场景,也就是大型的金融机构、研发中心需要用到数据库。其实这也间接说明,在整个70年代到90年代,数据库的发展相对要缓慢一些……<br>
那一直到90年代中期,当时在美国,随着互联网的快速兴起,也带动了数据库的快速发展。举个例子,比如我要创建一个小网站,如果使用商业数据库的话,还得付一大笔数据库软件的费用,个人或者一些小的互联网公司,估计根本承担不起这样一笔费用。然后当时IT领域的开源社区也在兴起,那有强烈的需求,也有强大的开源力量,所以在互联网时代、在开源时代,就自然而然地出现了一些开源的关系型数据库软件。比如,95、96年,两大最著名的开源关系型数据库,MySQL和PostgreSQL相继发布……<br>
然后从90年代中期,开源的关系型数据库出现之后,一直到2001年左右,正好是互联网泡沫期间,大量的网站和大量的互联网公司涌现,当时也是MySQL和PostgreSQL高速发展的年代……<br>
然后一直到2006年左右,移动互联网开始出现,数据量和用户量爆发式地增长,大家发现传统的单机版的关系型数据库,已经开始力不从心了,以前是一个网站,加上一个数据库就够了,因为那个年代数据量、并发量不大。但现在数据量和用户量越来越大,需求也越来越复杂,在这样的背景下,数据库衍生出来一些分支,比如2003年的内存数据库Memcached,第一个版本发布。它的特点是把数据都放到内存,来可以实现高速计算。虽然现在都在用redis,但在内存数据库这个领域,Memcached是第一个有重大影响的内存数据库。<br>
然后在06/07年吧,有两个标志性的事件,可能称得上是大数据和NoSQL的元年吧。Google和Amazon发表了两篇关于分布式数据库的论文,一个是BigTable,一个Dynamo,这两篇论文也成为后续一大批NoSQL数据库的设计的鼻祖。<br>
然后在06年之后,整个数据库行业的发展进入了一个快车道,涌现了一批新的数据库,比较有代表性的有,TeraData,2007<br>Cassandra,2008<br>Redis,2009<br>MySQL InnoDB,2010<br>
然后到了2013年,Google发表了一篇叫Spaner论文,这篇论文描述了关系型和NoSQL数据库的结合,也就是NewSQL数据库。其实也很有意思,从最早的关系型SQL,到后来的NoSQL,NoSQL是使用key-value键值对的模型,它完全放弃了关系型模型,NoSQL大概蓬勃发展了十几年,一度大家认为会替代SQL,那随着业务场景越来越极端吧,大家发现一些复杂的场景使用NoSQL是搞不定的,因为NoSQL大部分都不支持事务,键值对这种模型也相对简单,特别是在一些金融领域,没办法,还是要回归SQL,现在两者又结合起来形成新型的数据库NewSQL。<br>
这几年涌现出来的数据库,比如TiDB、Aurora,都是这种新型数据库的代表。<br>那从整体来看,数据库的发展是越来越快,日新月异,以前是10年20年产生一个里程碑,现在是每隔几年就能产生一个里程碑。<br>OK,那这一小节我们介绍了数据库的前世今生,帮助大家了解到数据库的基本概念、现代数据库的起源,以及数据库的一个时间轴。后续章节还有更精彩的内容,请继续关注……<br>