Redis基础篇——SQL和NoSQL区别

认识 NoSQL

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。

SQL 和 NoSQL 的区别

在这里插入图片描述

1.对于 SQL 来说:存入关系型数据库的数据都是结构化的,翻译过来就是 这些数据 都是有固定格式的要求,如我们要存入用户信息,如图:

在这里插入图片描述

对于 NoSQL 来说:它就是一种非结构化的数据库:

  1. 常见键值型的 NoSQL:
    在这里插入图片描述
    2. 文档型:
    在这里插入图片描述
    3. 图:以节点的形式
    在这里插入图片描述

2.SQL作为关系型数据库,之所以叫关系,是因为数据和数据之前有关系的,如下,有一张 user 表 和 一张 商品表

在这里插入图片描述
它们现在看来是没有关系的,但是现在又来了一张订单表,订单表需要记录是谁下的单,还要记录下单买了什么商品,那么这个时候关系就建立起来了(通过外键):

在这里插入图片描述

而NoSQL库来说,作为非关系型数据库, 它的数据与数据之间没有直接的维护和关联,比较常见的 是以 json 形式:

在这里插入图片描述

3.SQL查询:如果我们要查询一条数据,语法是固定的,如下:

在这里插入图片描述

对于 NoSQL 来说,是没有固定语法格式的,如下:

在这里插入图片描述

4.在事务上的差异:对于SQL来说,所有的关系型数据库都满足 ACID 的

在这里插入图片描述
而 NoSQL 来说,它无法全部满足 ACID

总结,常见差异如下:

  1. SQL 是结构化,NoSQL 是非结构化
  2. SQL 作为关系型数据库是关联的,NoSQL 无关联
  3. SQL 基于SQL语句,NoSQL 语法不统一,不同的库有不同的查询方式
  4. SQL 满足 ACID,NoSQL 无法全部满足
  5. SQL 存储在磁盘上,NoSQL 存储在内存中

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Biteht/article/details/128502014