《系统架构设计师教程(第2版)》第6章-数据库设计基础知识-05-NoSQL数据库

1. 概念

  • NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的 ACID特性
  • 其他解释
    • 解释一:Non-Relational
    • 解释二:Not Only SQL

Atomicity(原子性):表示一个事务中的所有操作要么全部成功,要么全部失败。如果事务中的任何一个操作失败,那么整个事务将被回滚,之前的操作结果将被撤销,以确保数据的完整性。
Consistency(一致性):表示事务执行前后,数据库的状态必须保持一致。也就是说,事务的执行结果必须满足数据库的约束、规则和数据完整性。
Isolation(隔离性):指并发事务之间相互隔离,彼此独立执行,不会相互干扰。每个事务都应该感觉自己是在独立地操作数据库,而不受其他事务的影响。
Durability(持久性):表示事务完成后,其对数据库的更改是永久的,即使在系统出现故障或崩溃的情况下也不会丢失。持久性保证了数据的可靠性和可恢复性。

2. 共同特征

  • 易扩展
    • 原因:数据之间无关系
  • 大数据量,高性能
    • 原因:无关系性,数据库的结构简单
  • 灵活的数据模型
    • 表现:无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
  • 高可用
    • 不太影响性能的情况下,方便的实现高可用

3. 常见分类

一般可以将NoSQL 数据库分为以下4种类型:

3.1 列式数据库

行式数据库即传统的关系型数据库,数据按记录存储,每一条记录的所有属性存储在一行。

  • 列式数据库:
    • 列:按列来组织和存储数据
    • 页链:对应表中的一个存储列
    • 表:由一组页链的集合组成
    • 键:指向多个列
  • 使用场景:应对分布式存储的海量数据
  • 产品:Cassandra、HBase、Riak

3.2 键值对存储数据库

  • 数组链表
    • 是键值存储的典型数据结构
    • 插入过程:
      • 通过Hash算法得出Hashcode, 找到数组的某一个位置,然后插入链表
      • 数据库维护该哈希表,表中有一个特定的键和一个指针指向特定的数据。
  • 优点:简单、易部署
  • 缺点:只对部分值进行查询或更新时效率低下了
  • 产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Oracle BDB。

3.3 文档型数据库

  • 概述
    • 可以看做键值数据库的升级, 允许嵌套键值
    • 半结构化的文档以特定的格式存储(如JSON)
  • 优点:在处理复杂数据时比键值数据库的查询效率更高
  • 产品:如CouchDB、MongoDb、SequoiaDB(国产)

3.4 图数据库

  • 概述:
    • 它使用灵活的图形模型
    • 并且能够扩展到多个服务器上
  • 产品:Neo4J、InfoGrid、Infinite Graph

4. 体系框架四层结构

NoSQL整体框架由下至上分为4层:

4.1 数据持久层 (Data Persistence)

  • 定义了数据的存储形式
    • 基于内存:存取速度最快,但可能会造成数据丢失
    • 基于硬盘:持久保存,但存取速度慢
    • 基于内存和硬盘:既保证速度,又保证数据不丢失
    • 订制可插拔:数据存取有较高的灵活性。

4.2 数据分布层(Data Distribution Model)

数据分布方式有以下三种:

  • CAP支持:可用于水平扩展
  • 多数据中心支持:保证跨数据中心平稳运行
  • 动态部署支持:可在运行的集群中动态地添加或删除结点

4.3 数据逻辑模型层 (Data Logical Model)

没有需要掌握的知识点

4.4 接口层 (Interface)

接口层提供了5种选择: Rest、Thrift、Map/Reduce、Get/Put、 特定语言API

以上分层结构每层可以有多个选择。这种分层设计提供了很大的灵活性和兼容性,每种数据库在不同层面可以支持多种特性。

5. 使用场景

  • 数据模型较简单
  • 需要灵活性更强的IT系统
  • 对数据库性能要求较高
  • 不需要高度的数据一致性

在这里插入图片描述

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值