NoSql非关系型数据库

前言:Nosql = not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处理的,聚合模型主要分为:KV键值对,BSON,列族,图形,时序,向量等几种数据库结构。常见的NoSQL数据库有redis、MongoDB、Memcache、HBase、Clickhouse、Doris、Starlocks、Hive、BigTable、Cassandra、CouchDB、Neo4J、InfluxDBX、Prometheus等。


1、 数据库共有2种类型

关系型数据库和非关系型数据库 

(1)关系数据库

MySQL、MariaDB(MySQL的代替品)、PostgreSQL、Microsoft Access、Google Fusion Tables、SQLite、DB2、FileMaker、Oracle、SQL Server、INFORMIX、Sybase、dBASE、Clipper、FoxPro、foshub。

几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。

(2)非关系型数据库(NoSQL)

redis、MongoDB、Memcache、HBase、Clickhouse、Doris、Starlocks、Hive、BigTable、Cassandra、CouchDB、Neo4J、InfluxDBX、Prometheus


2、关系型数据库和非关系型数据库的区别

(1)关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:

  • 易于维护:都是使用表结构,格式一致;

  • 使用方便:SQL语言通用,可用于复杂查询;

  • 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

  • 读写性能比较差,尤其是海量数据的高效率读写;

  • 固定的表结构,灵活度稍欠;

  • 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

(2)非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:

  • 格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。

  • 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;

  • 高扩展性;

  • 成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

  • 不提供sql支持,学习和使用成本较高;

  • 无事务处理;

  • 数据结构相对复杂,复杂查询方面稍欠。


3、NoSql数据库是什么?

NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。

NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这些类型的数据库专门针对需要大数据量、低延迟和灵活数据模型的应用程序进行了优化,这是通过放宽其他数据库的某些数据一致性限制来实现的。

数十年来,用于应用程序开发的主要数据模型是由关系数据库(如 Oracle、DB2、SQL Server、MySQL 和 PostgreSQL)使用的关系数据模型。直到近十几年,才开始大规模采用和使用其他数据模型。为了对这些新类别的数据库和数据模型进行区分和分类,创造了术语“NoSQL”。通常术语“NoSQL”与“非关系”可互换使用。   


4、NoSql数据结构类型

NoSql中的数据是使用聚合模型来进行处理的。聚合模型主要分为:KV键值对,BSON,列族,图形等几种方式

  • KV键值对:就是我们平常使用的map那样的存储模式

  • BSON:在MongoDB中常用的一种数据类型,是一种类json的一种二进制形式的存储格式,简称binary json,它和json一样,支持内嵌的文档对象和数组对象

  • 列族:按列存储数据。最大的特点是方便存储结构和半结构化数据,方便做数据压缩,对针对某一列或者是某几列的查询有非常大的IO优势

  • 图形:不是放图形的,放的是关系,比如:朋友圈社交网络,广告推荐系统等,专注于构建关系图谱


5、NoSql数据库的分类

(1)KV键值对数据库

   临时性键值存储:Memcached,Redis

   永久性键值存储:ROMA,Redis 

应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等

数据模型:Key指向Value的键值对,通常用HashTable来实现

优点:查找速度快

缺点:数据无结构化,通常只被当做字符串或者是二进制数据

(2)面向文档的数据库:MongoDB,CouchDB

    Mongodb是一个基于分布式文件存储的数据库,由c++语言编写。 为web应用提供可扩展的高性能数据存储解决方案,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据中功能最丰富,最像关系数据库的

应用场景:WEB应用(与key-value类似,value是结构化的,不同的是数据库能够了解到value的内容)

数据模型:Key-Value对应的键值对,Value是结构化的数据

优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构

缺点:查询性能不高,而且缺乏统一的查询语法

(3)面向列的数据库:Cassandra,HBase

应用场景:分布式的文件系统

数据模型:以列簇式存储,将一列数据存储在一起

优点:查找速度快,可扩展性强,更容易进行分布式扩展

缺点:功能相对局限

(4)面向图形的数据库:Neo4J,InfoGrid

应用场景:社交网络,推荐系统等,专注于构建关系图谱

数据模型:图结构

优点:利用图结构相关算法。比如最短路径寻址,N度关系查找等等。

缺点:很多时候要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。


6、NoSql数据库的优点

  • 易扩展:nosql数据库种类繁多,但是一个共同的特点都是去掉关系型数据库的关系型特性数据之间无关系,这样就非常容易扩展,也无形之间,在架构层面上带来了可扩展的能力

  • 大数据量高性能:Nosql数据库都具有非常高的读写能力,尤其在大数据量下,同样表现优秀,这得益于它的无关系型,数据库的结构简单,一般mysql使用query cache,每次表的更新cache就会失效,这是一种大粒度的cache,在针对web2.0的交互频繁的应用,cache性能不高,而nosql的cache是记录级的,是一种细粒度的cache,所以nosql在这个层面上来说就要性能高很多了

  • 多样灵活的数据模型:Nosql无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式,而在关系数据库里,增删字段是一件非常麻烦的事情,如果是非常大数据量的表,增加字段简直就是一个噩梦


7、关系型数据库和非关系型数据库的对比

既然Oracle,MySQL等传统的关系型数据库非常成熟并且已经大规模的商用,为什么还要用NoSql呢?

主要是由于随着互联网的发展,数据量越来越大,对性能的要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现各种各样的NoSql产品,NoSql的根本性优势在于云计算时代,简单,易于大规模分布式扩展,并且读写性能极高。

 看下两者的对比:


参考链接:

NoSQL数据库简介 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/235069.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外汇天眼:CFTC修订了针对Logista Advisors的投诉

商品期货交易委员会(CFTC)修改了对Logista Advisors LLC及其首席执行官Andrew Harris Serotta的投诉。修改后的投诉于2023年11月28日提交给伊利诺伊州北区法院。 修改后的投诉声称,从至少2020年1月左右至少到2020年4月左右,Logis…

2023.11.29 深度学习框架理解

2023.11.29 深度学习框架理解 对深度学习框架进行复习,选最简单的“三好学生”问题的四个变化,简要总结其具体思路。 深度学习一开始就是为分类问题研究的,因此其框架的设计都是基于分类的问题,虽然现在也已经演变为可以执行多种…

YOLOv5独家原创改进: AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

💡💡💡本文全网首发独家改进:可改变核卷积(AKConv),赋予卷积核任意数量的参数和任意采样形状,为网络开销和性能之间的权衡提供更丰富的选择,解决具有固定样本形状和正方形的卷积核不能很好地适应不断变化的目标的问题点,效果秒殺DSConv 1)AKConv替代标准卷积进行…

悠络客受邀出席2023上海区域零售(餐饮)数字化运营实战沙龙研讨会

11月23日,由中国零售(餐饮)CIO俱乐部、《智慧零售与餐饮》主办的2023上海区域零售(餐饮)数字化运营实战沙龙研讨会在上海召开,悠络客合伙人兼销售副总裁张勇作为演讲嘉宾受邀出席了本次大会。 本次研讨会汇…

SQL server 基线安全加固操作

账号管理、认证授权 ELK-Mssql-01-01-01 编号 ELK-Mssql-01-01-01 名称 为不同的管理员分配不同的账号 实施目的 应按照用户分配账号,避免不同用户间共享账号,提高安全性。 问题影响 账号混淆,权限不明确,存在用户越权使用的可能。 …

指针数组以及利用函数指针来实现简易计算器及typedef关键字(指针终篇)

文章目录 🚀前言🚀两段有趣的代码✈️typedef关键字 🚀指针数组🚀简易计算器的实现 🚀前言 基于阿辉前两篇博客指针的基础篇和进阶篇对于指针的了解,那么今天阿辉将为大家介绍C语言的指针剩下的部分&#…

BUUCTF [ACTF新生赛2020]swp 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 得到的 flag 请包上 flag{} 提交。 密文: 下载附件,得到一个.tar文件。 解题思路: 1、使用WinRAR解压.tar文件,得到两个.zip文件。 解压wget.zip文件,得…

【计算机毕业设计】springboot+java高校实验室器材耗材料借用管理系统94l73

实验室耗材管理系统在Eclipse/idea环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,本系统教师和学生申请使用实验材料,管理员管理实验材料,审核实验材料的申请…

redis key

不管是:规则,还是其他规则,定义好就可以了。其实没有太多要求的。 1)冒号分割类似那种yaml在客户端显示树结构 2)其他分割类似那种properties在客户端显示列表结构

文件格式扩展名转换:将图片png扩展名批量改为jpg的方法

在处理大量图片文件时,可能会遇到需要将文件格式扩展名进行转换的情况。比如,将图片文件从PNG格式转换为JPG格式。这不仅可以节省存储空间,还可以提高图片加载速度,特别是在网页设计中。本文详解如何将PNG图片批量转换为JPG格式的…

普乐蛙绵阳科博会一场VR科普航天科学盛宴科普知识

普乐蛙绵阳科普展:一场科学盛宴,点燃孩子探索欲望的火花! 普乐蛙绵阳科普展正在如火如荼地进行中,吸引了无数孩子和家长的热情参与。这场科普盛宴以独特的内外视角,让人们感受到科学的魅力,激发了孩子们对知识的渴望和…

8. 队列

队列(queue)是一种遵循先入先出规则的线性数据结构。顾名思义,队列模拟了排队现象,即新来的人不断加入队列的尾部,而位于队列头部的人逐个离开。 如下图所示,我们将队列的头部称为“队首”,尾部称为“队尾”&#xff…