当前位置: 首页 > news >正文

软考-系统架构设计师 NoSQL数据库详细讲解 - 指南

个人博客:blogs.wurp.top

一、NoSQL数据库概述:为什么需要NoSQL?

1. 关系型数据库的瓶颈

关系型数据库(RDBMS)在Web 2.0时代面临巨大挑战:

2. NoSQL的定义与核心思想

  • NoSQL:最初意为 “Not Only SQL”(不仅仅是SQL),表明它是对传统关系型数据库的补充,而非替代。
  • 核心思想牺牲关系型数据库的强一致性和事务特性,换取高可扩展性、高性能和高可用性。

3. NoSQL与SQL的对比(必考)

特性关系型数据库 (SQL)NoSQL数据库
数据模型结构化,基于表和模式(Schema)非结构化/半结构化,灵活的模式
事务特性ACID事务遵循BASE理论,弱一致性(最终一致性)
扩展方式垂直扩展(Scale-up),升级硬件水平扩展(Scale-out),增加节点
查询语言标准化的SQL非SQL,使用特定的API
架构目标数据一致性和完整性高可用性和分区容错性

二、CAP定理与BASE理论:NoSQL的理论基石

1. CAP定理(分布式系统的“黄金法则”)

对于一个分布式计算系统,不可能同时满足以下三点:

架构师决策:在分布式系统中,网络分区(P)是必然要面对的,因此必须在C和A之间做出权衡

2. BASE理论(对ACID的补充)

BASE是Basically Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)的缩写。它是AP系统的一种实践。

  • 基本可用:系统出现不可预知的故障时,允许损失部分可用性(如响应时间增加、功能降级)。
  • 软状态:允许系统中的数据存在中间状态,并且认为该中间状态的存在不会影响系统的整体可用性。
  • 最终一致性:经过一段时间后,所有数据副本最终会达到一致的状态。这是大多数NoSQL数据库的默认一致性策略。

三、NoSQL数据库的主要类型(必考)

根据数据模型,NoSQL数据库分为四大类,架构师需要根据业务场景进行选择。

1. 键值数据库 (Key-Value Store)

  • 数据模型:简单的Key -> Value映射。Value是二进制大对象,数据库不关心其内容结构。
  • 特点:极其便捷,读写性能很高。
  • 典型应用会话存储、用户设置、购物车、缓存
  • 代表产品
    • Redis内存型键值数据库,支撑丰富的数据结构(String, List, Set, Hash等),性能极高。也可持久化。
    • Memcached:纯内存缓存系统,比Redis更简单。
    • Amazon DynamoDB:托管的键值和文档数据库。

2. 文档数据库 (Document Store)

3. 列族数据库 (Column-Family Store / Wide-Column Store)

  • 数据模型:类似于一个嵌套的Map:Row Key -> (Column Family -> (Column Qualifier -> Value))。可以理解为一张可以动态增加列的超大表。
  • 特点:非常适合大规模数据分析存储海量信息。擅长按列进行压缩和查询。
  • 典型应用日志框架、推荐系统、物联网(IoT)、数据仓库
  • 代表产品
    • Apache HBase:基于Google Bigtable论文,构建在HDFS之上,为Hadoop生态系统献出随机实时读写能力。
    • Apache Cassandra:基于Amazon Dynamo的分布式设计和Google Bigtable的数据模型。无单点故障,写性能极高。

4. 图数据库 (Graph Database)


四、NewSQL:对NoSQL的演进

  • 定义:一类现代关系数据库管理系统,旨在为OLTP读写工作负载给出与NoSQL系统相同的可扩展性,同时仍然保持传统数据库的ACID事务保证。
  • 目标兼具SQL的强一致性和NoSQL的水平扩展能力
  • 代表产品Google Spanner, TiDB, CockroachDB
  • 架构师视角一个重要的技术选型方向。就是:当业务既要求强一致性事务,又面临海量资料和高并发时,NewSQL

五、软考考点总结与应用

  1. 选择题

  2. 案例分析题

  3. 论文题

总结

对于软考架构师,掌握NoSQL的关键在于:

  • 理解理论驱动:深刻理解CAP定理BASE理论是进行技术选型的根本依据。
  • 精通分类与场景:清晰掌握四大类型NoSQL的特点和最佳应用场景,能够进行精准的技术选型
  • 具备权衡思维:明白在分布式系统中没有“银弹”,任何选择都是一致性、可用性、性能、扩展性之间的权衡。
  • 拥抱混合架构:现代系统架构往往是混合持久化的,即关系型、NoSQL、缓存等多种内容存储技术并存,架构师需具备规划和集成这些技术的能力。
http://www.jsqmd.com/news/15524/

相关文章:

  • OMP: Error #15: Initializing libiomp5md.dll报错解决强大的方案
  • 3. JVM 运行时数据区
  • 软工学习日志
  • Pixelium Design:Vue3 的像素风 UI 组件库
  • 修电脑不求人:AI智能修复电脑工具的体验分享
  • 效率与安全双升:AI许可证识别重塑医药行业合规流程
  • 详细介绍:CI/CD流水线优化:GitLab CI镜像构建加速实战​
  • Spring BeanPostProcessor 前置处理 afterPropertiesSet BeanPostProcessor 后置处理区别
  • Xcode上编译调试ffmpeg - 详解
  • 最新版Origin 2025b安装包下载及详细安装教程,附永久免费中文汉化破解版Origin安装包
  • 《程序员修炼之道》阅读笔记1
  • c语言单向链表操作
  • Unity3D中定义全局宏(不同于在unity设置中的)
  • 第十七篇
  • AtCoder arc208 总结
  • 题解:qoj8329 Excuse
  • `uv run pytest` does not work
  • Sourcetree - Git 备份
  • uni-app x实现上下拉动,动态加载数据
  • 从创作到分析:2025 公众号排版工具全维度测评榜单
  • 企业微信ipad协议稳定防封的最新最全功能
  • 企业微信协议ipad,稳定防封私有化部署私域流量聚合聊天,机器人实现方案
  • 重新思考钓鱼攻击意识培训:网络安全的关键反思
  • 任务分解与小模型如何降低AI成本
  • spring事件监听的核心机制
  • 直播软件开发搭建公司
  • freeswitch的proxy_media模式下video流的问题与修正
  • DNS 相关
  • 2025 年无锡专线物流公司最新推荐排行榜:聚焦个性化运输解决方案,精选优质服务商往返无锡/冷链无锡/公路无锡/大件无锡专线物流公司推荐
  • 使用ceph rdb做k8s后端存储(ceph-csi storageclass