NoSQL数据库介绍

2024-03-07 1632阅读

温馨提示:这篇文章已超过446天没有更新,请注意相关的内容是否还可用!

目录

一、发展历史

二、什么是NoSQL?

三、为什么使用NoSQL?

四、NoSQL vs. RDBMS

五、NoSQL的四种类型

键值存储

文档存储

列式存储

图形存储

六、NoSQL的优缺点

七、NoSQL的特点

灵活的可扩展性

灵活的数据模型

与云计算紧密融合

大数据量,高性能

高可用


一、发展历史

        NoSQL 一词最早出现于 1998 年,是 Carlo Strozzi 开发的一个轻量、开源、不提供 SQL 功能的关系数据库。

        2009 年,Last.fm 的 Johan Oskarsson 发起了一次关于分布式开源数据库的讨论,来自 Rackspace 的 Eric Evans 再次提出了 NoSQL 的概念,这时的 NoSQL 主要指非关系型、分布式、不提供 ACID 的数据库设计模式。

        2009 年在亚特兰大举行的"no:sql(east)“讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false”。因此,对 NoSQL 最普遍的解释是"非关联型的",强调 Key-Value Stores 和文档数据库的优点,而不是单纯的反对 RDBMS。

二、什么是NoSQL?

        NoSQL(Not Only SQL),意思是"不仅仅是 SQL",指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。

        NoSQL 用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

        NoSQL不是反对“SQL”语言,只是简单表示和RDBMS的不同。

        大多数起源于互联网企业,更适应互联网业务。

        大多是开源免费的,但可能缺乏完善的文档和服务。

        NoSQL数据库会采用非关系型的数据模型。弱化模式或者表结构,弱化完整性约束,弱化甚至取消事务机制。

        可能无法支持,或者不能完整的支持SQL语句。

        目的是实现强大的分布式部署能力--- 一般包括分区容错性、伸缩性和访问效率(可用性)等。

        不同类型的关系型或者NoSQL数据库侧重点不同,因此,不能简单地说谁更优秀。

三、为什么使用NoSQL?

        随着互联网的飞速发展与普及,网民上网冲浪时所产生数据也逐日增多,从 GB 到 TB 到 PB。这些数据有很大一部分都是由关系型数据库管理系统(RDBMS)来进行处理的。

        由于关系型数据库的范式约束、事务特性、磁盘 IO 等特点,若服务器使用关系型数据库,当有大量数据产生时,传统的关系型数据库已经无法满足快速查询与插入数据的需求。NoSQL 的出现解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,获取性能上的提升。但是,在某些特定场景下 NoSQL 仍然不是最佳人选,比如一些绝对要有事务与安全指标的场景。

        NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

四、NoSQL vs. RDBMS

NoSQL数据库介绍

五、NoSQL的四种类型

  • 键值存储

            特点:键值数据库就像传统语言中使用的哈希表。通过 Key 添加、查询或者删除数据。

            优点:查询速度快。

            缺点:数据无结构化,通常只被当作字符串或者二进制数据存储。

            应用场景:内容缓存、用户信息比如会话、配置信息、购物车等,主要用于处理大量数据的高访问负载。

            NoSQL 代表:Redis、Memcached…

    • 文档存储

              特点:文档数据库将数据以文档的形式储存,类似 JSON,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。

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

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

              应用场景:日志、 Web 应用等。

              NoSQL 代表:MongoDB、Elasticsearch、CouchDB…

      • 列式存储

                特点:列存储数据库将数据储存在列族(Column Family)中,将多个列聚合成一个列族,键仍然存在,但是它们的特点是指向了多个列。举个例子,如果我们有一个 Person 类,我们通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。

                优点:列存储查找速度快,可扩展性强,更容易进行分布式扩展,适用于分布式的文件系统,应对分布式存储的海量数据。

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

                应用场景:日志、 分布式的文件系统(对象存储)、推荐画像、时空数据、消息/订单等。

                NoSQL 代表:HBase、ClickHouse、Cassandra …

        • 图形存储

                  特点:图形数据库允许我们将数据以图的方式储存。

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

                  缺点:很多时候需要对整个图做计算才能得出需要的信息,分布式的集群方案不好做,处理超级节点乏力,没有分片存储机制,国内社区不活跃。

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

                  NoSQL 代表:Neo4j、Infinite Graph…

          六、NoSQL的优缺点

          • 优点

                    高可扩展性

                    没有标准化

                    分布式计算

                    有限的查询功能(到目前为止)

                    低成本

            • 缺点

                      最终一致是不直观的程序

                      架构的灵活性,半结构化数据

                      没有复杂的关系

              • 总结

                        NoSQL 数据库在以下几种情况下比较适用:

                        数据模型比较简单

                        需要灵活性更强的 IT 系统

                        对数据库性能要求较高

                        不需要高度的数据一致性

                        对于给定的 Key,比较容易映射复杂值的环境

                七、NoSQL的特点

                • 灵活的可扩展性

                          传统的关系型数据库由于自身设计机理的原因,通常很难实现“横向扩展” 在面对数据库负载大规模增加时,往往需要通过升级硬件来实现“纵向扩展” NoSQL数据库在设计之初就是为了满足”横向扩展”的需求,因此天生具备良好的水平扩展能力。

                  • 灵活的数据模型

                            关系数据库具有规范的定义,遵守各种严格的约束条件。这种做法虽然保证了业务系统对数据一致性的需求,但是过于死板的数据模型,也意味着无法满足各种新兴的业务需求。相反,NoSQL数据库采用健/值、列族等非关系模型,允许在一个数据元素里存储不同类型的数据。

                    • 与云计算紧密融合

                              云计算具有很好的水平扩展能力,可以根据资源使用情况进行自由伸缩,各种资源可以动态加人或退出,NoSQL数据库可以凭信自身良好的横向扩展能力,充分自由利用云计算基础设施,很好地融人到云计算环境中,构建基于NoSQL的云数据库服务。

                      • 大数据量,高性能

                                nosql数据库都有着非常亮的读写性能,特别是在大数据量之下 一样也衷现的非常的优界,这主要得益于它的无关系性,数据库的结构简单。

                                通常的nosql使用Query Cache。nosql的Cache是记录级的,是一种细粒度的Cache,所以说,nosql从这个方面来说的话,性能就要高了很多了。

                        • 高可用

                                  高可用也是nosql很明显的一个特点,nosql在不太响性能的情况之下,就能够非常方便的实现高可用架构,通过模型的话也可以实现高可用。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]