SQL到如今已经诞生45年了,如今对SQL进行投票,2019年11月份还是出于前10大编程语言之一。

编程语言排行榜

这对一门已经上了年纪的“老语言”来说是十分了不起的,但你知道sql是怎么诞生的吗?

关于sql的诞生,我们不得不从计算机的诞生说起。

世界上第一台通用计算机“ENIAC”于1946年在美国宾夕法尼亚大学诞生,但是很多人不知道第一台商用电脑的名字叫UNIVAC,1951交付于当时的美国的人口普查局。

世界第一台计算机

那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。

穿孔卡片存储

但这种存储方式是在太笨重啦!数据量小而且查询还不方便,因此最终这种方式被后出现的网状数据库(Network Databases)和层次数据库(Hierarchical Databases)所取代。当时网状DBMS要比层次DBMS用得更普遍。在数据库发展史上,网状数据库占有重要地位。

网状数据库模式

层次型数据库

网状数据库与层级型数据库均有其弊端,而且弊端从本质上无法进行优化避免,其主要缺点如下:

网状数据库

(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握

(2)其DDL,DML语言复杂,用户不容易使用。用于记录之间联系是通过存取路径实现的,应用程序访问数据库时必须选择适当的存取路径。因此,用户必须了解系统的结构的细节,加重了编写应用程序的负担

层次型数据库

(1)现实世界中很多联系是非层次性的,如多对多联系,一个节点具有多个双亲等,层次模型不能自然的表示这类联系,只能通过引入冗余数据或引入虚拟结点来解决

(2)对插入和删除操作的限制比较多

(3)查询子女结点必须通过双亲结点

SQL的出现

1970 年,IBM研究员E.F.Codd博士在刊物Communication of the ACM上发表了一篇名为“A Relational Modelof Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。

直到1985年IBM才发布了关系数据库DB2,那时oracle已经占有了很大的市场,Ellision已经成了千万富翁。1989年,微软发布了SQL Server 1.0版。三大商用关系型数据库的发布年份,也正好对应了市场占有率的排名。

谷歌发布的 MapReduce (2004年)和 Bigtable(2006年),以及亚马逊发布的Dynamo,这些开创性的论文促使了更多非关系数据库的出现,包括 Hadoop、Cassandra和 MongoDB。这些新系统基本上都是从零开始编写的,他们并没有使用SQL而是都开发了自己的语言,这也就导致了 NoSQL 运动的兴起。

不过SQL也不是出现后地位就波澜不惊,其也受到过NoSQL的冲击。

NoSQL跟SQL相比,因为操作简介,接受的群众范围更广了。甚至有人认为这是做项目时候通往成功的捷径。但后来出现了问题。

开发人员很快发现,没有SQL实际上是非常有限的。。每个NoSQL数据库都提供了自己独特的查询语言,这意味着:学习更多的语言(并在同事之间传播知识);增加了将数据库连接到应用程序的难度,导致代码之间有很强的耦合性;缺乏第三方生态系统,需要公司开发自己的操作和可视化工具。

一些NoSQL数据库添加了自己的“类sql”查询语言,比如Cassandra的CQL。但使用起来效果并不好,往往其把开发的难度又再次增加啦!这跟语言是解决问题的工具的含义所违背。

因此sql凭借其在90%的情况中都能完成任务。这对于身处越来越复杂的技术与集成环境中的开发者而言,就是最大的优点。sql又再一次焕发新生啦!

长按二维码,关注我们

新睿云,让云服务触手可及

云主机|云存储|云数据库|云网络

sql为何诞生后长盛不衰?它的背后隐藏怎样的秘密?相关推荐

  1. BCH链上交易量翻5倍的背后隐藏着哪些秘密?

    BCH链上交易量在近一个月的时间内以肉眼可见的速度迅速增长.相比于2019年初,BCH在这一个月的时间内链上交易量已经翻了近5倍.BCH链上交易量的增加并不是平白无故的,而是有迹可循. Cashshu ...

  2. SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案

    SQL数据库恢复后出现对象名无效(SQL Server备份还原时造成孤立用户的解决方案) 2011-04-18 09:38 以碰到这个烦人的问题,恢复的时候自带了个用户,但怎么也删除不掉,select ...

  3. 解决eclipse中Mybatis框架下sql语句执行后控制台不显示日志问题

    eclipse执行完sql语句成功后,控制台什么都不打印,如图 解决方法:在mybatis-config.xml配置文件中,加入<setting name="logImpl" ...

  4. 【技术贴】安装sql server 2005后不能连接服务器,没有studio express以及安

    我自己重装了六次sql server 2005,算是经验人士了,网上资料一大堆,都他妈错的! 如何安装sql server 2005,安装sql server 2005后没有SQL Server ma ...

  5. 转载--SQL还原数据库后孤立用户问题处理(SQL 数据库 拥有对象 无法删除)

    SQL还原数据库后孤立用户问题处理(SQL 数据库 拥有对象 无法删除) 所谓孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数 ...

  6. DB2 sql报错后查证原因与解决问题的方法

    DB2 sql报错后查证原因与解决问题的方法 参考文章: (1)DB2 sql报错后查证原因与解决问题的方法 (2)https://www.cnblogs.com/BradMiller/p/31978 ...

  7. sql group by 后取最后一条数据

    sql group by 后取最后一条数据 ##方法一 SELECT* FROMtable1 AS a,( SELECT * FROM table1 GROUP BY id ORDER BY id D ...

  8. 墨者学院—SQL过滤字符后手工注入漏洞测试

    靶场地址: SQL过滤字符后手工注入漏洞测试(第1题)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养 关于CTFHUB中的sql注入以及文件上传知识点我们已经学习过一遍了,如果大家都掌握的话 ...

  9. sql数据删除后恢复

    sql数据删除后恢复 不小心把客户那边的数据库中删了一千多条数据,之前又没有备份,很郁闷,后来在网上找到一工具(Log Explorer),让我躲过一劫. 首先看一下界面:输入服务器地址,用户名及密码 ...

最新文章

  1. 如何直观地理解「协方差矩阵」?
  2. 深度信念网络研究现状与展望
  3. pandas Series 的索引对象(一)
  4. VTK:vtkCursor2D用法实战
  5. 用jQuery监听浏览器窗口的变化
  6. php blog to explore
  7. 低代码,填补业务技术鸿沟 or 紧贴业务的开发时代?
  8. linux 设置交换文件格式,使用linux的mkswap命令建立和设置SWAP交换分区
  9. 日志打印工具类LogUtils
  10. 家庭局域网_KODI超强的局域网视频播放软件
  11. 数字图像处理应用---车牌号识别
  12. 纯Html + Css 设置Div 圆角和 鼠标悬停渐变色
  13. 使用MagicIndicator+ViewPager2出现requestLayout() improperly called by
  14. URAL 1156 Two Rounds (DFS二分染色 + 分组背包)
  15. 315成央视盛宴是中国媒体的悲哀
  16. 轻松输入并注音生僻字
  17. 森林的先序和中序遍历
  18. 第一次冲刺--查看活动详情用户场景分析
  19. 别再用浏览器一句句翻译了,华为手机点击这个按钮,一键轻松翻译
  20. 递推递归练习 B - 王小二切饼

热门文章

  1. Vue.js入门 0x13 实战:知乎日报项目开发-文章详情页
  2. ABBYY FineReader v15.0.110.1875破解版
  3. 计算物体自由下落的距离 (5分) 一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒 ​2 ​​ 。
  4. Multisim14.3安装包下载及安装教程
  5. MES系统软硬件常规故障处理方法
  6. python包和库的区别_python的库和包
  7. 计算机vb编程基础知识试题,VB程序设计期末考试试卷(A、B卷,有答案)
  8. 高精度原边反馈开关电源芯片SP5715F系列SP5618系列 电源适配器集成控制芯片。公司无锡硅动力微电子股份有限公司产品
  9. 用C++实现线性回归方程的算法
  10. TCP/IP的工作原理