理论教育 SQL、NoSQL和NewSQL系统的比较分析

SQL、NoSQL和NewSQL系统的比较分析

时间:2023-06-14 理论教育 版权反馈
【摘要】:NoSQL的说法目前比较含糊,一种对NoSQL的定义是:提供简单操作或简单记录和索引,并专注于这些简单操作的横向可扩展性的系统。NoSQL的主要特点是更适合于特定的问题。大多数NoSQL系统或多或少地具备以下特点。总体来说,关系型数据库是基于关系数据模型的,但NoSQL并不是,NoSQL的数据模型更为多样。截至2016年3月,已知的NoSQL型数据库系统已经有了300余种。因此,不同NoSQL系统的基本特性是不定的,但却是趋于重叠的。

SQL、NoSQL和NewSQL系统的比较分析

SQL系统是使用结构化查询语言(SQL)的关系型数据库。该类系统的关键部分是SQL,该语言是经过时间考验的,目前大数据公司和组织(如Google、Facebook、Cloudera和Apache)正在积极投资于SQL。SQL的独特优势包括以下3方面。①SQL是标准化的,使用户能够跨系统运行,并对第三方附件和工具提供支持。②SQL能够扩展,并且是多功能的,因此能够很好地支持从以写为主导的传输到扫描密集型分析应用。③SQL对数据的呈现和存储采用正交形式。因此,传统的关系型数据库的流行是因SQL的流行,它在2016年的市场份额已经接近410亿美元,能保证每日处理百万级别的网页请求数据。虽然传统的关系型数据库能够完美地适应众多应用场景,但是却无法适应大数据类型的当代应用,如社会网络要求近乎实时地处理百万次级别的读请求和十亿次级别的写请求。换句话说,现有需求要求数据管理系统有至少每秒进行十亿次级别的处理能力。因此,大数据的需求是新型数据管理系统设计的动力来源。

为了给这些大数据应用提供数据服务,数据库技术已经开始逐步摆脱之前关系型数据模型,朝着更为多元化的方向发展。分布式关系型数据库,如NoSQL、NewSQL都已经占有各自的市场,在这基础之上的云端服务又在弱化其中的差异。

NoSQL的说法目前比较含糊,一种对NoSQL的定义是:提供简单操作(如密钥/数值存储)或简单记录和索引,并专注于这些简单操作的横向可扩展性的系统。NoSQL的主要特点是更适合于特定的问题。例如,图形数据库更适合于数据通过关系组织的情况,而专门的文本搜索系统更适合于需要实时搜索的情况。大多数NoSQL系统或多或少地具备以下特点。①不需要预定义模式。不需要事先定义数据模式,预定义表结构,数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。②无共享架构。相对于将所有数据存储在同一个网络区域的全共享架构,NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好过通过网络传输读取数据的性能,从而提高了系统的性能。③弹性可扩展。可以在系统运行的时候,动态增加或者删除节点。不需要停机维护,数据即可自动迁移。④分区。相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上。并且通常分区的同时还要做复制,这样既提高了并行性能,又能保证没有单点失效的问题。⑤异步复制。与RAID存储系统不同的是,NoSQL中的复制往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,避免网络传输引起的迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。⑥BASE特性。相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。(www.daowen.com)

值得注意的是,为了换取性能,当代新型系统不能提供类似关系型数据库的某些特性,如强制的数据完整性。由于这类数据管理系统相对较新,标准并不完善,数据库的特征和数据模型因数据库厂商对大数据理解的不同有非常大的分歧:一些数据库系统并不提供事务处理,而另一些甚至不使用SQL。总体来说,关系型数据库是基于关系数据模型的,但NoSQL并不是,NoSQL的数据模型更为多样。截至2016年3月,已知的NoSQL型数据库系统已经有了300余种。具体来说,所有的关系型数据库都基于相同的数据模型和数据处理语言,因此功能都大同小异。而NoSQL系统各有不同,如不同的数据处理模型、不同的查询语言、是否支持事务、不同的API接口和安全特性等。因此,不同NoSQL系统的基本特性是不定的,但却是趋于重叠的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈