首页 > 数据库 >系统架构设计师笔记第18期:NoSQL数据库

系统架构设计师笔记第18期:NoSQL数据库

时间:2023-06-18 13:31:37浏览次数:48  
标签:存储 架构 NoSQL 可扩展性 18 数据库 键值 数据

NoSQL 数据库通常指非关系型数据库,是一种基于数据键值对存储、高度分布式、支持动态查询的数据管理系统。NoSQL 数据库的设计目的是为了解决传统关系型数据库无法处理的大型应用程序的数据存储和管理问题。它们通常具有以下特点:

  1. 灵活性:NoSQL 数据库没有固定的表结构和查询语言,允许在一个数据元素里存储不同类型的数据,从而支持灵活的数据存储和管理。
  2. 可扩展性:NoSQL 数据库通常采用分布式存储和并行处理技术,可以在需要时轻松扩展以支持更大的数据量和更高的并发访问。
  3. 高度可用:NoSQL 数据库通常采用多副本复制技术,以确保数据的高可用性和容错能力。
  4. 弱一致性:与传统的关系型数据库不同,NoSQL 数据库通常采用最终一致性模型,这意味着在分布式系统中,数据可能不会立即同步,但在一段时间后将趋于一致。

常见的 NoSQL 数据库包括键值存储数据库(如 Redis、Memcached)、文档型数据库(如 MongoDB、CouchDB)、列存储数据库(如 HBase、Cassandra)、图形数据库(如 Neo4j、OrientDB)等。它们在不同的场景下具有不同的应用优势,例如处理超大规模数据的存储和查询、高并发的数据访问、实时数据分析等。

分类与特点

根据不同的数据存储模式和应用场景,NoSQL数据库可以分为以下几种类型:

  1. 键值数据库(Key-Value):这种数据库类型通过一个唯一的键(Key)来标识数据,将键和对应的值(Value)存储在一个键值对(Key-Value)中。存取速度快、结构简单、可扩展性强。 典型代表:Redis、Memcached等。
  2. 文档数据库(Document):这种数据库类型按照文档格式(如JSON、XML等)来存储数据,数据之间可以有嵌套关系,具有更好的灵活性,支持各种复杂的数据结构。支持动态模式、可扩展性好、数据结构灵活。 典型代表:MongoDB、CouchDB等。
  3. 列族数据库(Column-Family):这种数据库类型按照列族来组织数据的,列族是数据元素的分组,每个列族可以包含若干行和若干列。它将某个维度相关的所有数据放在一起进行存储和管理,适用于数据读取场景比较多的情况。适合大型数据集、可扩展性高、数据读取性能高。 典型代表:HBase、Cassandra等。
  4. 图形数据库(Graph):这种数据库类型基于图形模型对数据进行存储和管理,通过图形结构来管理数据之间的关系,具有强大的数据建模能力和数据查询能力。可存储大量复杂的数据关系、支持高效查询、数据结构灵活。 典型代表:Neo4j、InfiniteGraph等。

各种类型的NoSQL数据库都具有以下特点:

  1. 高扩展性:NoSQL数据库可以轻松地扩展以支持更大的数据量和更高的并发访问。
  2. 高可伸缩性:NoSQL数据库可以根据需要自动分割数据集,并将其分布在多个节点上,以充分利用可用的资源。
  3. 高性能:NoSQL数据库可以处理大量数据和高并发访问,并具有优秀的读写性能。
  4. 灵活性:NoSQL数据库没有固定的表结构和查询语言,允许灵活的数据存储和管理。
  5. 与开源性强:NoSQL数据库通常具有强大的社区支持和生态系统,使得开发者可以轻松地找到所需的工具和资源。

体系框架

NoSQL数据库整体框架分为四层,分别为数据持久层(data persistence)、整体分布层(data distribution model)、数据逻辑模型层(data logical model)和接口层(interface),这四层之间是相辅相成,协调工作。

  1. 数据持久层定义了数据的存储形式,主要包括基于内存、硬盘、内存与硬盘相结合、订制可插拔四种形式。基于内存形式的数据存取速度最快,但可能会造成数据丢失;基于硬盘的数据可能保存很久,但存取速度较基于内存的形式慢;内存和硬盘相结合的形式,结合了前两种形式的优点,既保证了速度,又保证了数据不丢失;订制可插拔则保证了数据存取具有较高的灵活性。
  2. 整体分布层定义了数据是如何分布的,相对于关系型数据库,NoSQL可选的机制比较多,主要有三种形式:一是CAP支持,可用于水平扩展。
  3. 数据逻辑模型层定义了数据之间的联系和操作方式,主要包括文档、键值对、图像、列存储等。
  4. 接口层定义了与数据访问相关的接口,包括查询、索引、事务、权限等。

NoSQL数据库具有高扩展性、高性能、高可伸缩性、灵活性等特点,适用于处理大量数据和高并发访问的情况,广泛应用于大数据存储和实时数据处理等领域。

标签:存储,架构,NoSQL,可扩展性,18,数据库,键值,数据
From: https://blog.51cto.com/u_14540126/6508336

相关文章

  • CF1840C题解
    题目描述题目传送门\(T\)组数据,每组数据给定\(n\),\(k\),\(q\)和一个长度为\(n\)的数组\(a\),求\(a\)中长度大于等于\(k\)且最大值小于等于\(q\)的序列个数。\(\sum{n}\le2e5\)。题目解析解法一:数据结构解法显然可以利用数据结构维护。考虑ST表预处理出区间最大......
  • 铁矿石 20230618
    先说结论下周阻力832.5-840。周初还是强势第5浪还没走完。   ......
  • 纯碱波浪 20230618
    日线ABC的调整可能结束了。反弹看1780-1810一线。  下周初方案一: 方案二: ......
  • 2023-06-18 亚布力中国企业家论坛(山西)
     虽然有点看不上 王石。。。但是,王石说的,房地产企业未来的方向,参照日本房地产大公司的转型,从房地产为主、到服务为主 回到我们软件行业;软件的本质是服务;提高商业效率、增加商业能效、减少商业成本、为商业主航道保驾护航 企业降本增效,不擅长的东西,都走外包,提供外包服务......
  • 2023-06-18 as运行android项目报错:
    完整报错:Aproblemoccurredconfiguringrootproject'项目名'.>Couldnotresolvealldependenciesforconfiguration':classpath'.>Usinginsecureprotocolswithrepositories,withoutexplicitopt-in,isunsupported.Switch......
  • 系统架构师-UML相关图
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址基本概念在UML(统一建模语言)中,常见的九种图包括:类图(ClassDiagram):展示系统中的类、接口、关系和属性等静态结构。对象图(ObjectDiagram):展示系统中对象的实例和对象之间的关系。用例图(UseCaseDiagram):描述系统的功能需求,显示参......
  • 系统架构师-UML相关图
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址基本概念在UML(统一建模语言)中,常见的九种图包括:类图(ClassDiagram):展示系统中的类、接口、关系和属性等静态结构。对象图(ObjectDiagram):展示系统中对象的实例和对象之间的关系。用例图(UseCaseDiagram):描述系统的......
  • 架构演变过程
    单体架构分布式架构:业务拆分微服务分布式架构的一种。独立开发和部署,一个业务多个服务支持特点:单一职责:拆分粒度更小,一个服务一个业务,避免重复开发(面向对象角度来说符合最少知道原则,干相同事情的放在一起,结构清晰)自治:团队独立(符合敏捷开发)、技术独立(各个服务可以选择不同的技术)......
  • 1、Android中MVC、MVP和MVVM架构模式的区别
    架构模式为项目文件提供了模块化,并确保所有的代码在单元测试中得到覆盖。它使开发人员很容易维护软件,并在未来扩展应用程序的功能。MVC(模型-视图-控制器)、MVP(模型-视图-展示者)和MVVM(模型-视图-视图模型)是开发人员中最流行和行业公认的安卓架构模式。模型-视图-控制器(MVC)模......
  • 系统架构设计师笔记第17期: 关系数据库
    数据库的分类可以根据不同的标准进行划分:根据数据结构分类:1.1关系数据库(RelationalDatabase):关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据,以表格形式存储数据,并支持事务处理、多用户访问、数据安全性和完整性控制等功能。1.2非关系型数据......