Java教程

一篇文章认识NOSOL数据库

本文主要是介绍一篇文章认识NOSOL数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一篇文章认识NOSOL数据库

  • 一 NoSQL的兴起
    • 关系数据库无法满足Web2.0需求
    • 关系型数据库
    • 常见的关系数据库
    • 非关系数据库
    • 常见的非关系数据库
  • 二 NoSQL的简介
    • NoSQL的特点
    • NoSQL的四大类型
    • 键值(Key-Value)存储
    • 列(Wide Column Store/Column-Family)存储
    • 文档(Document-Oriented)存储
    • 图形(Graph-Oriented)存储
  • 三 NoSQL与关系数据库的比较

一 NoSQL的兴起

随着Web2.0和大数据时代到了来,关系数据库越来越力不从心,网络冲浪的数据由原来的从 GB 到 TB 到 PB,数据之间的关系也并不紧密。传统的关系型数据库已经无法满足快速查询与插入数据的需求。所以NoSQL出现了。

关系数据库无法满足Web2.0需求

1无法满足海量数据的管理需求,数据量太大,无法再随心所欲的去进行查询,尤其是复杂查询。(多表关联查询)
2无法满足数据的高并发需求,无法进行特别多的请求处理。
3无法满足高可扩展性和高可用性的需求,关系数据库无法横向扩展(可以通过增加服务器数量)不能短时间内迅速提升性能

关系型数据库

通过外键关联来建立表与表之间的关系
在这里插入图片描述

常见的关系数据库

Oracle(付费)、DB2(银行使用)、Microsoft SQL Server、Microsoft Access、MySQL(不花钱)

非关系数据库

{
  "studentID": 20190611524,
  "studentName": "马永童",
  "studentImage": ["imgs1.path", "imgs2.path"],
  "desc": [{"messages": "马永童2020个人介绍", "img": "imgs1.path"}, {"text": "2021 new mesaage", "img": "imgs2.path"}],
}

12306的架构
在这里插入图片描述

通过studentID一次查询就可以获取所有信息。

常见的非关系数据库

Cloudant、MongoDb(非结构化数据Json)、Redis(缓存数据库)、HBase

二 NoSQL的简介

NoSQL(not only SQL) NoSQL 一词最早出现于 1998 年,是 Carlo Strozzi 开发的一个轻量、开源、不提供 SQL 功能的关系数据库。Nosql通常不存在连接操作,也没有严格遵守ACID约束,可以支持超大规模数据存储,其灵活的数据模型可以很好的支持Web2.0应用。

NoSQL的特点

1灵活的可扩展性,通过廉价的服务器去提升性能。
2 灵活的数据模型,采用键值、列族等非关系数据模型,允许在一个数据元素里存储不同类型的数据。
3与云计算紧密融合

NoSQL的四大类型

键值(Key-Value)存储

特点:键值数据库会使用一个哈希表。通过 key指定特定Value,使用Key 添加、查询或者删除数据。

优点:查询速度快,可实现数据量的无限扩容。

缺点:不适合条件查询,数据无结构化,通常只被当作字符串或者二进制数据存储。

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

相关产品代表:Redis、Memcached…

列(Wide Column Store/Column-Family)存储

特点:数据库由多行构成,每行数据包含多个列族(多个列聚合成一个列族),通过行键定位,行键指向了多个列。举个例子,如果我们有一个 Person 类,我们通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。

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

缺点:功能少,大都不支持强事务一致性。

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

列(Wide Column Store/Column-Family)存储代表:Cassandra、HBase…

文档(Document-Oriented)存储

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

优点:数据结构要灵活,表结构可变,复杂性低。

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

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

文档(Document-Oriented)存储 代表:MongoDB、CouchDB…

图形(Graph-Oriented)存储

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

优点:图形相关算法,比如最短路径寻址,N 度关系查找等,也可构建复杂的关系图谱。

缺点:复杂性高 ,只支持一定的数据规模。

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

图形(Graph-Oriented)存储代表:Neo4j、Infinite Graph…

三 NoSQL与关系数据库的比较

在这里插入图片描述

在这里插入图片描述

纵向扩展::系统提供更为强大的硬件

这篇关于一篇文章认识NOSOL数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!