结构化SQL数据库与非结构化NOSQL数据库大比拼

数据库
这一期我们来谈一下数据库,目前有两大类型的数据库,一种是结构化SQL数据库,一种非结构化NOSQL数据库。

结构化SQL数据库 与 非结构化NOSQL数据库大比拼

大家好,这一期我们来谈一下数据库,目前有两大类型的数据库,一种是结构化SQL数据库,一种非结构化NOSQL数据库。

比拼1:数据的组织形式。

[[270511]]

SQL

SQL, 顾名思义是结构化查询语言。它的数据都是结构化的,这个需要在最初创建数据库的时候要做好设计,这个设计一旦定型以后,再修改的话就会比较麻烦。当然如果设计做得好的话,也就无需再修改了。所以结构化数据***的一个工作就是表的设计。这是在使用这种数据库的时候,开发工作中的重中之重。

结构化数据的另一个体现就是各种数据之间的关系,比如说1对1的关系,一对多的关系,多对多的关系。

另一个体现就是数据的定义严格,在一个表中只能存放一种表数据,也就是说,你的每一行的数据都要遵循这个表的的定义。这个表里的每行的数据都遵循这个表内定义好的数据类型,不能够存放一些所谓非定义的数据,否则出错。

NOSQL

而NOSQL数据库。它不需要结构化的数据设计。这样它的容错性就很强,也不存在太严格的设计,所以以后的扩展和修改都比较容易。

NOSQL数据库里面不存在关系这个概念,如果你想实现关系,比如说1对1,一对多,多对多,你需要用程序来实现,而不是用数据库本身来实现。

另外一个是一个表中可以存放不同的数据类型, 简单的说就是每一行的数据可以不遵循统一的定义。

比拼2:原子操作

[[270512]]

我们要看一下原子操作。所谓原子操作,就是指一个操作要么成功,要么失败,没有半途而终的。假设说一个处理订单的操作中存在5个步骤,你处理一个订单,提交订单,开始计算数据,随后写入数据库五个表然后,才返回成功,如果有一个失败,那就返回失败。返回失败就意味着撤回之前所有的操作。

这种原子操作在SQL数据库中非常容易实现,它本身就存在这样的机制叫做事务处理机制。

这也是我们选择SQL数据库的一个重要参考指标。只要我们在处理数据的过程中存在这样的操作,要么成功,要么失败,那么我们首先要选择的就是SQL数据库。

然而在NOSQL数据库中不存在这样的机制。但是这里追求数据的统一性,比如说你有很多个数据集,这里不称之为数据表了。一旦有一部分修改,你必须更新所有的包含这类数据数据集。

比拼3:效率方面。

 

[[270513]]

结构化数据库有很多方式可以提高数据的处理效率。比如说创建索引,使用存储程序Stored Procedure, 一些架构如entity framework, hibernate。

但是因为结构化数据库天然的追求数据的完整性,所以它在效率方面还是存在一些瓶颈的。

然而NOSQL非结构化数据库就不存在这样的问题。因为它关心的就是快速的写入数据,查询数据。虽然有一些数据的冗余,但是它的写入和查询速度都非常快,尤其是在处理巨量数据的时候,这个优势特别明显。

但是如果数据集之间的耦合性非常强的话,因为要做到数据的统一,你需要不停的写多个相关的数据集,这样也会大大降低效率。

比拼4:扩展潜力

[[270514]]

 

横向扩展和纵向扩展的区别。

横向扩展是指用多台服务器服务一个数据库,这种扩展的好处就是没有极限。这个对于结构化数据库来说,几乎是不可能的。非结构化数据库就可以做到横向扩展。

纵向扩展是指通过提高硬件性能软件性能来提高整体服务器的性能。这种扩展的劣势就是总会达到极限。当然这种扩展对于结构化数据库和非结构化数据库都是适用的。

小结:那么哪个更好呢?

说实在的,一下子很难说,是结构化数据库更好还是非结构化数据库更好?因为这两种数据库的设计初衷是不一样的。

结构化数据库的目标是追求数据操作的完整性,但是对单机服务器的性能要求比较高。

非结构化数据库的设计,追求的是读写的效率和可扩展性,可以实现多机的协作。但是又不注重数据操作的完整性。同时会产生大量的冗余数据。 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2011-05-25 15:16:55

非结构化数据库异构数据库

2021-12-12 08:37:18

结构化数据非结构化数据数据

2018-04-03 14:00:03

结构化数据非结构化数据数据库

2024-05-27 00:32:45

2023-01-06 08:00:00

关系数据库数据库机器学习

2021-02-03 09:34:28

潮数

2009-02-16 15:41:04

非结构化数据SQL Server SQL Server

2014-02-09 09:53:05

2021-12-29 10:51:19

JavaSPL架构

2018-01-31 18:10:15

数据库HBase

2019-10-18 13:07:14

PB数据非结构化数据数据集

2018-05-14 12:30:49

数据备份非结构

2017-11-16 05:22:34

非结构化数据分析数据

2023-11-14 09:00:00

向量数据库ChromaMilvus

2024-05-10 12:52:01

2022-05-24 09:52:37

Spark SQL大数据处理Hive

2023-12-25 15:00:18

结构化布线光纤

2017-05-16 21:31:03

结构化数据新模式
点赞
收藏

51CTO技术栈公众号