您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

深度解析SQL和oracle等数据库的历史,说点不一样的给你

时间:2020-10-22 10:44:49  来源:  作者:

很多学SQL的朋友,或正在用SQL的朋友,都感觉到害怕,最近兴起的大数据,NoSQL会不会终结了SQL的命运,这帮只会SQL的朋友,怎么办?想学吧,又没精力,不学吧,提高不了自己,不能升职加薪!

想要彻底看懂局势,还得从两家的历史谈起,今天就先谈谈SQL的起家史。

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

IBM时代

说起关系型数据库,始终离不开IBM,更离不开那篇论文。

“IBM为啥能出这么牛的论文呢,不就是个卖服务器的嘛!”说这番话的同学,你可以先坐下了。当时IBM有个很牛的研究院,叫做 Waston Research Center。

凡是有研究院的公司,都很牛逼,是不是?你看,微软研究院,SAP 研究院,十八摸(IBM, 18M很像,对不对?)研究院等等,还有国内的BAT研究院,华为研究院,联想研究院,小米研究院等等。

所以,没毕业的同学在选未来公司的时候,可得看准咯,有自己研究院的厂子肯定差不了,至少技术上是有发展方向的。

那这些研究院都在研究哪些技术呢?他们都要996嘛?

说实话996了我也未必看懂他们在干嘛:

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

嗯怎么样,懵不懵?当时全世界也就一个人能玩懂这套理论,那就是 Ted Codd, 而且他老人家也是50多岁了,才搞的这套玩法。

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

Codd 比 Code 排名稍前,所以名字就决定了他不可能发明 Code. 他的杰出贡献就是关系模型(Relational Model). 老爷子没有发明 Code, 要不是他觉得 Code 不够 Fashion ,不能代表他高深莫测的地位,这种神器怎么能发明出来给大众使用呢?

所以他只留下两把钥匙,开启 SQL 的两把钥匙:

关系代数(Relational Algebra)

关系演算(Relational Calculas)

没错,上面的两段天书代表了这两个理论:

如果你看懂了,什么 BAT,FLAG,达摩十八摸,放开了胆子走进去。保证你Offer拿到手软!

如果看不懂,也不急,我用SQL给你解释下:

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

怎么样,这下懂了吧?!什么,你才学SQL两天,竟然就可以把天才 Codd 的理论这么给打发了。

SQL 就是这么个好玩意儿。你快来练个 2 天,慢则一星期,上面的 SQL 绝对可以拿下。

吃水不忘挖井人,这么好用的东西,得感谢这两位:Ray Boyce 和 Donald D. Chamberlin. 年轻人嘛,总是对世界充满了好奇。喜欢用 Code 去改变世界,也热衷幻想跟自己的偶像一起工作。

当他们得知 Codd 前辈在关系模型方向的研究之后,天天追他的文章,看他的博客,入他的知识星球,已经到了狂热的地步。只要有面基的机会,那是一定不会放过,终于有一天,在 Codd 大叔上台演讲的时候,逮到一个好机会,表达自己的仰慕之情。

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

Codd 一看,哦,还有年轻人对我这糟老头子的研究感兴趣,赶紧请进家来,好酒好菜招待着,后继有人,衣钵可托了。两刚毕业的孩子看到这一幕,那还得了。伯乐啊,吃了你的饭,喝了你的酒,一定替你过五关斩六将。

996,我估计那是007,不到两年光景,SQL 就被发明出来了。不仅如此,Boyce 还加了道菜,那就是我们SQL人常挂嘴边的 BCNF, Boyce-Codd normal Form, 第三范式。

如果你经常被你的技术经理调侃,三范式没学好,记得别怪 Boyce,因为小博还没有来得及修正三范式,就很不幸的因为动脉瘤去了。

是的,留下的三范式,大多数人没有再突破。下次破坏三范式设计的时候,记得跟小博说声对不起。毕竟我们吃软饭的工具,是他26岁留给我们的,写完就见上帝去了,我们写SQL的人都欠他一个道别。

小博我们是真无法感谢了,但是搭档钱柏林(Donald Chamberlin)还在。老爷子最近一次亮相是在2009年的计算机历史博物馆,当时被授予年度人物奖。他的一生贡献可就大了,SQL, XQuery, System R, 因此获奖也无数。

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

03, 狼烟四起,群雄逐鹿

System R 在 IBM 这么多牛人的努力下,终于上了三个实验站点,却没想到一炮走红,Oracle, DB2, SQL Server 也就跟着起来了。

那为什么 System R 没有成为 IBM 的当红产品,而让 DB2 抢了风头呢?Oracle 仅凭拉里一人,又怎么称霸世界了呢?别急,听我慢慢道来。

小时候我们都在纠结一个事情:鸡是怎么来的?生来就是鸡,还是鸡蛋孵出来的。有小朋友说是其他动物变异来的,也有小朋友说是某种蛋遇到合适的环境和温度,就出来了现在像鸡一样的动物。

System R 置于整个 SQL 数据库界的地位,就是鸡置于整个鸡族史的地位。那是第一代关系型数据库,第一次完整的实现了SQL语言来控制数据库。

其他的 Oracle, DB2, MS SQL Server 那都是不听话的,有想法的小弟。每个小弟凭着自己的看家本领都自立门户了,且还都混得不错。

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

先说 DB2 吧,与 System R 本是同根生。由于 System R 本身是实验性质的产物,并没有考虑太多商业化的因素,总是被各类骂街。

一会儿操作系统不兼容,一会儿SQL总有些不够听话,IBM一看这可不得了啊,即使批量生产起来了,后期口碑也要扑街啊。所以狠了狠心,把 System R放在自己研究员里当摆设了,继而发明了第一代的商业产品,并且把难以驯服的SEQUEL,改成了苗条版的SQL.

可能是当时太急于挣钱了吧,IBM针对每个操作系统开发了不同版本的 DB2, 比如 DB2 For System z 和 DB2 For System i 是不同的,因此连接两套数据库的驱动也不一样。傻子都看得出来,这得多要命,作为客户来讲,简直是抢钱哇。

就像某土豪一样,家用windows, 商用 mac, 结果 office 要收你2分钱,你干不干?当然土豪的回答,肯定是干。

但是 IBM 内部首先就吃不消了。这10年下来,第一代的SQL程序员都不会玩最新版的 DB2 了,真要出了问题要谁维护去。

成本极高,所以IBM又做了一次调整,将所有的DB2版本都整成一份,不论Windows,linux,Unix都一统。客户开心了,成本低了;公司开心了,研发成本降低了;伤心的只有那些35岁以上的中年男,嗯,被裁了..... 兄弟来口二锅头,不在深夜2(two,吐)过的DB(男人)不成熟

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

IBM要商业化,要吃饭啊,所以具体实现的编码怎么可能放出来呢,哪像现在这些 github上的开源项目,你要你拿走,我行我来卖。

所以我说我们是最好的时代。拉里几次尝试破译无果之后,立马找来了帮手 Bob Miner和 Ed Oates, 成立了 Software Development Laboratories. 这么土的名字谁记得住,等到产品编译出来,立马大笔一挥,Oracle 便横空出世了。这一出世,可不得了,绚烂红长期霸榜数据库排行榜第一位。

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

接下来出场的是最年轻的小弟,SQL Server. 前两位大佬都是70后,而 SQL Server 是正宗的80后,还是个85后,沾点90后的嫩劲儿。

1988年,微软和 Ashton-Tate 合作开发 Sybase SQL Server for IBM OS/2. 次年, SQL Server 1.0 就被微软给出版了。

可以看出,其实 SQL Server 是有点非 Windows 的血统的,只是当年 IBM与微软分道扬镳后,OS/2 归了 IBM, SQL Server就被微软给收了。

微软拿了 SQL Server 之后,统一了版权,且把它绑定在了 Windows 服务器上,这一绑世界上就多了一个刚从大学毕业的我,毕业那年我23.(其实和我没啥关系)在经历了23年与 Linux主流阵营分居之后,SQL Server 2017 终于又回归了大家庭。

所以微软这套 SQL Server 其实没啥好说的,就是从人家 Sybase 手里脱胎而出的,Sybase 现在还有很多公司用着呢,看到这类数据库的你,不要方,你的T-SQL水平照样可以 hold 住 Sybase.

深度解析SQL和oracle等数据库的历史,说点不一样的给你

 

04, 到底和我啥关系

“小编,你说了那么多,到底跟我有半毛钱的关系没?”

首先,数据库世家出自 IBM, 最初始的模型是 System R. 所以理论基础你要先看会,也就是我开头提到的那篇论文。熟读那篇论文,才能抓住数据库设计和开发的本质,说不定你也能弄一套数据库出来,赚两酒钱,弄不好还能去纳思达阔敲钟。

你说不想敲钟,平淡过一生,你真的好好看 IBM DB2 那段故事了么,你真觉得能安心点过一辈子?资本的本质是什么?他放过谁!

那么你说整天 CRUD, 能有出息嘛!那小博和唐纳尔德大叔的故事,你又没仔细看咯。你眼前的一切都是你生来都有的嘛,明显你的苹果手机就不是嘛。

好产品都是磨出来的,也就是碎片时间你一直在琢磨,磨着磨着就出货了。



Tags:数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
安装环境Linux服务器:Centos 6 64位Oracle服务器:Oracle11gR2 64位 系统要求说明:内存必须高于1G的物理内存;交换空间,一般为内存的2倍(1G的内存可以设置swap 分区为3G大小);硬...【详细内容】
2021-12-27  Tags: 数据库  点击:(2)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  Tags: 数据库  点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22  Tags: 数据库  点击:(3)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  Tags: 数据库  点击:(21)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  Tags: 数据库  点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  Tags: 数据库  点击:(16)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  Tags: 数据库  点击:(26)  评论:(0)  加入收藏
说明Web应用程序,MySQL数据库,数据库中有三张表:health_patient(病人表)、health_patient_account(病人账户表)、 health_patient_medical_history(病例表),视图需求是,页面分页展示病...【详细内容】
2021-11-05  Tags: 数据库  点击:(32)  评论:(0)  加入收藏
1. 介绍1.1 介绍今天开始我们来学习Java操作MySQL数据库的技巧,Java操作MySQL是借助JdbcTemplate这个对象来实现的。JdbcTemplate是一个多数据库集中解决方案,而我们今天只讲...【详细内容】
2021-11-05  Tags: 数据库  点击:(30)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  Tags: 数据库  点击:(50)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(6)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(17)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(16)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(20)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(31)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条