SQL的重要性有哪些

发布时间:2021-10-09 17:33:56 作者:iii
来源:亿速云 阅读:200

这篇文章主要介绍“SQL的重要性有哪些”,在日常操作中,相信很多人在SQL的重要性有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL的重要性有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1971年3月,英特尔公司推出了世界上第一个通用微处理器,即英特尔4004,它有2300个晶体管,售价60美元。将时间快进50年左右,最新的苹果手机有将近120亿个晶体管(可惜比60美元更贵一些)。

直至90年代,许多我们目前使用的编程语言才被引入(Java是1996年引入的)。然而,有一种编程语言50年前就被引入,但热度仍然不减当年,那就是SQL。

早期数据库管理史——IDS和CODASYL

SQL的重要性有哪些

1962年,查尔斯·W·巴赫曼(Charles W.Bachman)(与硅谷的埃里希·巴赫曼[ErlichBachman]非亲)是通用电气公司一个小团队的成员。一年后,巴赫曼的团队推出了集成数据储存系统(IDS),该系统后来被公认为首个数据库管理系统。

10年后,巴赫曼获得了众人向往不已的图灵奖,也称为计算机科学领域的诺贝尔奖,以此表彰他对IDS计算的贡献。

什么是IDS?

20世纪60年代初,计算机科学才刚刚开始成为一个学术领域。在这样的大背景下,美国信息交换标准代码(ASCII)直到1963年才被引入。要想理解IDS,我们得先了解促进其发展的两个主要动力:

磁盘存储器

SQL的重要性有哪些

图:工人正在搬动一台RAMAC305

1956年,IBM推出了第一个商用硬盘驱动器——RAMAC 305。磁盘驱动器的引入,使程序员能直接跳转到磁盘的某个位置来检索和更新数据。相比它的前身磁带驱动器,这是一个巨大的进步,后者需要在磁带中顺序移动来检索一个特定片段的数据。

但目前开发者必须找出磁盘上存储记录的位置。由于早期操作系统中的文件管理系统具有局限性,这是一项只有经验丰富的程序员才能完成的高级任务。开发者需要一个解决方案,以简化磁盘驱动器的运作。

高水平编程

与此同时,在采用曲线上,计算机科学开始从创新者向早期采用者转变。像Assembly这样的低级编程语言在早期学术领域内很流行,但普通程序员会转而使用更高级的编程语言,如COBOL,因为其更易使用。

什么是IDS?IDS解决了磁盘存储和高级编程问题,允许开发者使用COBOL之类的高级编程语言,以此来构建应用程序,从磁盘存储中输入及检索数据。由于这个功能,IDS成为了第一个数据库管理系统。

CODASYL——数据库管理的新标准

1969年,数据系统语言委员会(CODASYL)发布了一份报告,提出了一个数据库管理的标准。巴赫曼是该委员会的一员,且该报告大量引用了IDS。

CODASYL数据模型引入了许多如今数据库管理系统的核心特性:

最重要的是,IDS和CODASYL引入了一种新的数据建模方法,这种方法影响了SQL的最终开发,即网络数据模型。

网络数据模型——比如今的关系模型更胜一筹?

SQL的重要性有哪些

图:网络模型范例

数据模型是用于描述(模拟)世界(数据)的标准方法。

从前的分层数据模型使用树状结构来描述数据,但其仅限于一对多的关系。新的网络模型允许子记录有多个父记录,从而创建一个图形结构。通过允许多个父记录,网络模型能对多对一和多对多的关系进行建模。

在网络模型中,表之间的关系存储于集合中。每个集合都有一个所有者(即教师)和一个或多个成员(即班级和学生)。

网络模型的一个关键优势是,集合中的相关记录是通过指针直接连接的。集合是通过next,prior,以及owner指针实现的,能像链表一样方便遍历。

网络数据模型的底层特性提供了性能上的益处,但这是有代价的。网络数据模型增加了存储成本,因为每条记录都必须存储额外指针,这些指针指向先前的记录和父记录。

关系模型的来临

SQL的重要性有哪些

图:关系模型的范例

1970年,在IDS之后的8年, 埃德加· F· 科德(Edgar F. Codd)在他的开创性论文《大型共享数据库的数据关系模型》中引入了关系模型(这篇论文也让他和巴赫曼一样,成为了图灵奖得主)。

科德表明,数据库里所有的数据都能用元组(SQL中的行)表示,这些元组被分组为关系(SQL中的表)。为了描述数据库查询,他发明了一阶谓语逻辑的形式,叫元组关系演算。

元组关系演算引入了一种用于查询数据的声明式语言。声明式编程语言使程序员可以在不描述“如何做”的情况下,直接说出他们“想做什么”。

这种新的声明式语言对开发者来说更容易使用。关系模型公开展示了所有数据。开发者能从表中检索所有数据,或在单个命令中读取单个行(多亏查询优化器)。跟着指针迷宫寻找数据的日子已经一去不复返了。

关系数据模型vs.网络数据模型

通过规范数据,关系数据库能降低网络数据库的高存储成本。规范化是一个分解表以消除冗余的过程,从而减少数据占用的磁盘空间。

然而,关系数据库增加了CPU成本。为了运行规范化数据,关系数据库必须将表加载到内存中,并使用计算能力将表“连接”在一起。让我们通过一个关系模型来完成为某个特定教师找到所有班级和学生这一过程。

数据库系统首先会执行一个操作来检索所有相关的班级。接着,它的第二步操作就是检索学生数据。所有的数据都会被存储到内存中,在返还结果前,它会进行第三步操作来合并数据。

SQL的重要性有哪些

关系模型和网络模型性能对比图

在使用真实数据的性能案例研究中,雷玛数据管理公司(Raima)发现,网络数据库模型的插入性能优于实际数据23倍,且查询数据的速度比实际数据快123倍。

所以,为什么关系数据库会成为领先的数据库解决方案呢?

关系模型能更加灵活地应对变化,而且它的声明句法简化了程序员的工作。摩尔定律在其背后发挥着神奇的作用。计算成本持续降低,最终,关系模型中增加的计算成本与生产力提高所带来的收益相抵消。时间再快进50年,如今,数据中心最昂贵的资源就是CPU。

SQL的重要性有哪些

在科德的文章发表4年后,唐纳德·张伯伦(Donald Chamberlin)和雷蒙德·博伊斯(Raymond Boyce)发表了《SEQUEL:结构化英语查询语言》。

他们将SEQUEL描述为“一组在一阶谓语演算幂上的…关于表格结构的简单操作”。IBM发现了这种潜力,并在20世纪70年代初迅速开发了第一版SEQUEL,作为其System R项目的一部分。

后来之所以更名为SQL,是因为与英国供应商霍克西德利飞机公司(Hawker Siddeley)存在商标纠纷。SQL的下一次飞跃是在近十年后了。1986年,美国国家标准协会(ANSI)和国际标准化组织(ISO)发布了第一个官方的SQL标准:SQL-86。该标准将SQL分割成以下几个部分:

1974年至今,无数竞争者试图从占统治地位的查询语言SQL手中夺取市场份额。这些新的句法通常针对特定的新技术:

Lisp -> CLSQL.NET -> LINQRuby on Rails -> ActiveRecord

35年之后,SQL仍然在数据库中无所不在。它是如何保持其作为查询语言的统治地位的,我们又能从它的故事中学到什么?

SQL统治50年的秘诀——我们能从中学到什么?

SQL的重要性有哪些

图:2017年堆栈溢出开发者调查

我们从巴赫曼引入第一个数据库管理系统IDS讲起,讨论了从磁盘存储向高级编程转变,催生了对处理数据新方法的需求。接着迎来了CODASYL和标准化数据库管理。IDS和CODASYL引入了新的网络数据模型。最终,科德放弃了关系模型。这一切发展用了超过8年的时间。

SQL是如何成功在后来的50年间保持流行的?我认为有4个主要原因:

基本原则是一个基本命题,不能从其他任何命题或假设中推导出来。例如,将碳氢化合物和氧气结合,产生化学反应,这仍然是驱动每辆汽车内燃机的原理。

1970年,科德创造了新的数据库基本原则:元组关系演算。这个新逻辑的创建产生了关系模型,之后引出了SQL。元组关系演算就是化学反应,关系模型就是内燃机,而SQL就是汽车。

仅仅建立在基本原则的基础上不能保证成功。Assembly是程序员能做出的最接近1和0的程序,但仍然被COBOL(以及后来的C)所取代,其中缺失的成分就是易用性。

无独有偶,在从网络模型到关系模型的转变中,网络模型性能更好,但如今每家公司都在使用关系数据库,因为它更容易(上手)。

Assembly不仅精通难,入门也很难。SQL在二者之间达到了完美的平衡。通过10个左右的SQL命令,任何人都能学会20%,然后进阶到80%,但要想成为一名大师,需要经过长期的索引、视图和优化过程。

查询语言不是永恒的单一语言,而是一组与时俱进的适应性标准。SQL标准一直在随时间进行调整,并吸收来自用户的反馈。

从最初的概念以来,我们已经看到了10种不同的SQL标准,每种都做出了重要的改变。以下是其中的3大更新:

1.SQL:1999:添加了正则表达式匹配、递归查询(如传递闭包)、触发器、对过程语句和流控制语句的支持、非标量类型(数组)和一些面向对象特性(如结构化类型)。支持在Java中嵌入SQL(SQL/OLB),反之亦然(SQL/JRT)。

2.SQL:2003:引入了与XML相关的特性(SQL/XML)、窗口函数、标准化序列和自动生成值的列(包括标识列)。

3.SQL:2016:增加行模式匹配、多态表函数、JSON。

SQL还展示了创造轨道的能力,且其他产品都建立在该轨道之上。SQL没有需要强制执行的语法,而是为每个数据库提供一个标准,让其完成自我实现(T-SQL, MySQL, PSQL, etc)。

SQL成功的最后一个秘诀,是应用程序编程接口(API)的兴起。API通过抽象底层操作简化了编程,只公开开发人员需要的对象或操作。API使SQL得以使用特定句法来持续适应新科技。

2006年,Hadoop引入了分布式文件系统(HDFS),起初SQL句法无法访问该系统。然而到了2013年,Apache创建了Apache Impala,使开发者可以使用SQL来查询HDFS数据库。

SQL是如今最普遍使用的编程语言之一,我们不该忘记它悠久的历史。它的旅程始于现代计算的黎明,在两位图灵奖得主的努力下焕发生机。

到此,关于“SQL的重要性有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Oracle的各种文件有什么重要性
  2. Python工作中代理IP有什么重要性

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql

上一篇:数据库是如何重建连接从15000个到100个以下

下一篇:如何使用Python修改微信/QQ/支付宝运动步数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》