如何定义NoSQL

数据库 其他数据库
本文的作者是著名的技术作家、敏捷软件开发宣言的编写人Martin Fowler,本文是他在编写一本关于NoSQL的新书《NoSQL Distilled》时附带写出的一篇博客。

当我们开始着手写《NosqlDistilled》的时候,我们遇到了一个棘手的问题——要写什么?究竟什么是NoSQL数据库?对这个概念我们没有发现一个很权威的定义,没有任何商标注册,没有标准化组织,甚至没有一个宣言。

[[57697]] 
本文的作者Martin Fowler

NoSQL这个术语最初出现在2009年6月11日在旧金山由Johan Oskarsson组织的一个非正式的会议上。与会人员来自Voldemort,Cassandra, Dynomite, HBase, Hypertable, CouchDB, VPork, 以及MongoDB的公司。这个词迅速的被人们注意到,有人认为只有出席了这次会议的几个数据库公司的产品才是NoSQL。

事实上,就是对NoSQL这个名字本身的理解也是有分歧的:很多NoSQL的倡导者认为它不仅仅指的是”No” to SQL,应该把它理解成Not Noly SQL才对。对于此,我认为,应该从目前的数据库生态环境中分离出一个独立的数据库类型,这样对NoSQL的未来更有好处。当我们说“x 是一个NoSQL数据库”时,我认为把NoSQL解释成“Not Only”是愚蠢的,因为这会让这个术语变得没有价值。(因为这样一来你实际上可以认为SQL Server也是一个NoSQL数据库)。我们应该把NoSQL的“not only”做另外一种理解——尽管这个时候我更愿意使用PolyglotPersistence这个词。

虽然有这么多的讨论,定义如何才是一个NoSQL数据库仍然不那么容易。难道所有不使用SQL的数据库都有资格叫这个名字吗?那如何看待那些更老的数据库如IMSMUMPS呢?如何看待那些没有SQL的关系型数据库系统(例如早期的Ingres)?如果有人试图在这最初的八种数据库上外挂一个SQL接口呢?

所以,对于我们这本书来说,我们采取的观点是,NoSQL是目前的数据库家族的外来者。它们有些通用的特征,但没有一个是被明确定义的。

  • 不使用关系数据库模型(或SQL语言)
  • 开源
  • 针对大型集群而设计
  • 基于21世纪互联网特征的需求
  • 没有schema,可以在任何时候向一条记录添加新字段

虽然在软件产业里我们已经习惯了这种模糊的边界定义,但我承认当看到又多了这样一个定义后,心里还是有些不爽。但重要的是,在我们以后数十年的开发工作中,这些数据库提供了我们重要的补充。在未来普遍使用的过程中,这些不清晰的定义顶多就像一个蚊子的叮咬。

英文原文:NosqlDefinition

原文链接:http://www.aqee.net/nosqldefinition/

【编辑推荐】

  1. MoreSQL(NewSQL)挑战 NoSQL?
  2. NoSQL生态系统
  3. 甲骨文NoSQL数据库***印象
  4. 先睹为快:甲骨文NoSQL数据库
  5. 分布式缓存能否作为NoSQL数据库?
责任编辑:林师授 来源: 外刊IT评论
相关推荐

2021-12-02 09:00:00

数据库NoSQLWeb

2015-04-03 12:47:14

NoSQL开源非关系型数据库

2024-03-28 09:00:00

NoSQL数据库

2024-03-05 10:03:17

NoSQL数据库算法

2017-08-02 15:15:55

UbuntuNoSQLOrientDB

2019-07-23 11:41:45

数据库SQLDocker

2011-03-14 15:56:37

NoSQL

2011-03-14 14:59:01

NoSQL

2011-03-31 14:02:59

NoSQL缓存架构

2011-05-13 09:46:20

MySQLNoSQL

2011-02-22 08:49:38

NoSQL

2011-08-18 14:09:35

NoSQL

2010-10-12 10:58:13

NoSQL

2021-01-28 09:00:00

SQL数据库NoSQL

2021-06-15 05:52:59

SQLNoSQL数据库

2010-08-12 09:43:31

CassandraMongoDB

2010-09-25 11:20:05

SQL主键

2016-12-04 16:36:18

NoSQL数据库大数据

2012-02-01 16:26:04

NoSQLMoreSQL数据库

2011-10-20 13:37:46

OracleNoSQL数据库
点赞
收藏

51CTO技术栈公众号