“文艺复兴以降,源远流长的科学精神和逐步形成的学术规范......你们这一脸迷茫的看着我,不知道我在说什么吗?这是机械工业出版社的前言!多么经典的书,回去好好看看!"
上面这段话来自我本科数据库老师,这篇文章当做公众号内容介绍吧。
我又改名了,今年两次改名都用完了,近期不会再改了。分布式系统斗者->DBDeveloper->数据库漫游指南。大家可以看看名字的演进历程。
一些故事
数据库是我觉得本科最有意思的一门课,比起绕来绕去的算法、三次握手七层架构的网络,数据库简直是一股清流,主要是贴近生活场景,易于接受。
记得大二参观SAP,一个项目负责人给我们介绍数据库。整体感觉就是:“这个人说话好特么快,说的我都听不懂,好干练那种感觉”。前段时间偶然翻到了一张照片,是拍的当时PPT内容,发现上面的词基本都能看懂了,好像包括Nosql、SAP HANA之类的,那张照片现在又找不着了。
也有老师问我们数据库系统、数据库管理系统、数据库三者的区别。这是一个神奇的问题,大家的语境里应该不怎么区分这三者了。
数据库的历史
毕竟上个世纪数据库漫长的发展历史中还没我,这一段摘自《数据库系统概念》
数据库系统是一些相互关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合。
1970年左右,硬盘被广泛使用(之前是磁带,只能顺序读取,类似FileInputStream),硬盘上的数据也可以随机访问,类似RandomAccessFile。程序员可以在磁盘上构建网状和层次数据库。
Codd在1970年发表了关系模型和相应的查询数据的方法,诞生了关系型数据库。关系型数据库逐渐占据主流:DB2、Oracle、MySQL、Ingres等,主要都是单机版。
由于性能和可扩展性的问题,人们开始发展NoSQL,现在又提出了NewSQL,HTAP,数据库的发展速度也在逐渐加快。
漫谈数据库
数据库是一个数据结构、算法的大杂烩,根据不同查询的特点使用不同的算法,同时利用cache、索引、并行来加速,使数据库的整体性能达到最优。
每个数据库基本都是由底层存储(磁盘文件)再加一套读写引擎组成。不同的数据库的底层存储不一样,因此读写流程不一样,面向的场景也不一样,有的针对写优化、有的针对读优化、有的在其中取平衡。
数据库最大的魅力在于没有一种包治百病的数据库,所有数据库都是在各种方面取平衡,因此,每一个数据库都是独特的。
为数据库打call
应用对人的吸引总是强于底层支撑平台。比如AlphaGo战胜人类、通过人脸识别在张学友演唱会抓逃犯等,让人们都知道了机器学习和人工智能领域,甚至出现人工智能威胁论。相比之下,数据库领域就没那么火热了。
数据库就如同芯片,是大数据的基础。人们都知道现在进入了大数据时代,大量的数据被采集。但是采集只是第一步,数据采集之后是要进行管理的,如果只需要找硬盘存下来,提供简单的访问方式,找个文件系统就行了。如果想对大数据进行高效的管理和快速的检索,那么数据库就是必须的。
淘宝双11成交量破千亿,为此做贡献的不只是买家和淘宝的app,还有其底层强大的分布式关系数据库 OceanBase。
区块链的核心是去中心化,其主打的特性是防止数据被篡改,要知道没有绝对安全的系统,区块链也一样,而防止数据被篡改靠的是数据备份,在数据库中主备、多副本早就有广泛应用了。如何在去中心化的过程中保证数据一致性也是数据库领域的研究范畴。
总结
CPU、操作系统、数据库是计算机系统的核心三大件,数据库处于最上层,相比于CPU和操作系统的生态环境,数据库的迁移成本最低。前段时间《人民日报》发表了一篇《中国精神》,要重视核心技术,正好响应祖国号召了。
大多程序员都用过数据库,也应该了解数据库。数据库的优秀公众号大部分是公司的,更多涉及架构,如同压缩饼干。本公众号从分享小饼干开始,文章不会很长。
这篇文章会放在公众号菜单栏,欢迎关注转发。
数据库漫游指南
铁头乔的数据库知识分享
领取专属 10元无门槛券
私享最新 技术干货