加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

盘点:SQL数据库的终结?

发布时间:2021-07-17 12:11:32 所属栏目:大数据 来源:互联网
导读:SQL 的发展起始于 E.F.Codd 博士1970年六月发表于计算机协会的 通信 上的一篇论文, 大型共享数据库的关系模型。当时他和他的在IBM工作的同事 Donald Chamberlin
SQL 的发展起始于 E.F.Codd 博士1970年六月发表于计算机协会的“通信”上的一篇论文, “大型共享数据库的关系模型“。当时他和他的在IBM工作的同事 Donald Chamberlin 和 Raymond Boyce正在研究一种查询语言(最初叫做SQUARE, Specifying Queries As RelationalExpressions的首字母缩写),并于1974年以论文”SEQUEL:A Structured English Query Language“将此成就推向顶峰。从此以后,SQL就成了关系数据库系统的最主要的语言。近些年,软件开发业内出现了一些体系框架和架构,主要目的是试图隐藏(或完全放弃)直接使用SQL和关系数据库,让开发人员能够在应用开发中专注于用户界面,业务逻辑和平台支持上。同时出现了一批被认为是关系型数替代品,称之为”NoSQL”的数据库。难道我们能够成为 SQL和关系型数据库终结的见证人吗?

  在一个由Mike Riley主持的十二月 DDJ podcast 访谈中,我被问到:“随着ORMs(Object Relational Mapping对象关系映射)的流行,有些软件开发者们认为SQL已经失去其价值了。你对这种观点有什么看法?”我整个新年假期都在想这个问题,思考这个问题所隐含的意义已及ORM的未来,我花一段时间研究了一下像 Ruby on Rails Active Record 和 Hibernate 这样的框架。这些框架仍然需要开发人员掌握关系数据的设计、开发和维护等知识。 Microsoft所开发的LINQ(.NET Language Integrated Query)也只是减少了编程语言和数据库语言之间的不兼容问题。

  “NoSQL运动”和分布式数据存储(Cloud based data stores)都是致力于彻底的将开发人员和SQL语言和关系数据库之间的依存斩断。一些程序员认为NoSQL运动是一种全新的感念。面向对象式数据库(Object databases)最早出现于19世纪80年代, Ray Ozzie 于19世纪90年代最早将它商用于Lotus Notes的文档数据存储业务。

  Charlie Caro, 资深软件工程师,在美国 Embarcadero 开发 InterBase SQL 数据库引擎,他告诉我:“在以前,人们普遍认为,不对数据的并发操作进行控制的数据库基本不可能被大家广泛接受。但Ozzie认识到,分布式、可复制性和易于安装的特征所带来的好处远胜于在管理文档数据和消息时很少能遇到的并发更新冲突控制所带来的好处。而且,如果文档数据如果需要确保被正确的修改、不能丢失数据,我们可以把配置切换到并发控制状态上,这是可选择的。但缺省状态是不考虑更新冲突控制的。”

  NoSQL根据 WikiPedia 上的解释,是 “一种泛称(umbrella term),指那些非关系性的、定义不是很明确的数据存储仓库。“这个术语最早是 Rackspace 公司 的员工 Eric Evans 发明的。在他上年十月发表的博客里出现了 NoSQL (现在普遍认为是 Not Only SQL 的意思) 这个词。这篇博客里真正的闪光点是”我们之所以要寻找一个其它类型的数据库的根本原因是想解决关系型数据库存在的各种弊端。“ Adam Keys 在他的博客The Real Adam blog post提供了另一个相似的术语:”Post-Relational”。一些 NoSQL数据库还把消除那种关系型数据库对计算机资源、内存占用的问题作为一个目标。NoSQL的其他目标还包括:弱化与编程语言的关系,使用Web技术和RPC调用方式可访问,以及可切换的数据查询方式。

  在最近的一篇博客”关于”NoSQL” 的讨论其实与SQL无关“里 Michael Stonebraker 教授将 SQL 和 NoSQL 数据库进行了对比。SQL 和 NoSQL 数据库可以通过下面的几个特性和性能进行部分或全面比较 (注意:应该有更多的特征可以添加到下面的列表里。欢迎在评论里追加你认为能够区别这两种数据库的特征):

  横向和纵向扩展能力 – 关系型数据库(传统的数据库)通常部署在一台服务器上,通过增加处理器、内存和硬盘来进行升级。部署在多台服务器上的关系型数据库通常是依赖相互复制来保持数据同步。NoSQL 数据库可以部署在单服务器上,但更多的是部署成云状分布式 (NoSQL:分布式和可扩展的非关系型数据库系统)。

  列,key/value存储,数组(Tuples)存储 – 关系型数据库通常是有表或视图里的字段构成(固定的结构,用各种操作相互关联)。NoSQL 数据库通常存储的是一对键值或 数组式(Tuples) (结构不固定,只是一个有顺序的数据队列)。

  数据的内存和硬盘使用 – 关系型数据库通常是驻留在一个硬盘内或一个网络存储空间里。SQL查询或存储过程操作会把数据集提取到内存空间里。一些 (并不是全部) NoSQL 数据库可以直接在硬盘上操作,也可以通过内存来加快速度。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读