存储与数据库简介-课程笔记 | 青训营笔记

112 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

0.概要

本文记录了课程「带你认识存储 & 数据库」中的部分知识点,以便于后续回顾。

1.存储系统

什么是存储系统

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

  • 特点

    • 作为后端软件底座,性能敏感
    • 存储系统软件架构,容易受硬件影响
    • 存储系统代码,既“简单”又“复杂”
  • 存储器层级结构

    •   

    •   顶层访问效率高,但容量小;底层访问效率低,但容量高

数据怎么从应用到存储介质?

  • 关键点
    • 缓存很重要,贯穿整个存储体系
    • 拷贝很昂贵,应尽量减少
    • 硬件设备五花八门,需要有抽象统一的接入层

RAID技术(Redundant Array of Inexpensive Disks)

简要描述:单机存储系统如何做到高性能/高性价比/高可靠性

  • 出现的背景

    • 单块大容量磁盘的价格 > 多块小容量磁盘
    • 单块磁盘的写入性能 < 多块磁盘的并发写入性能
    • 单块磁盘的存储能力有限,不够安全
  • RAID 0

    • 多块磁盘简单组合
    • 数据条带化存储,提高磁盘带宽
    • 没有额外的容错设计
  • RAID 1

    • 一块磁盘对应一块额外镜像盘
    • 真实空间利用率仅50%
    • 容错能力强
  • RAID 0+1

    • 结合了RAID 0 和 RAID 1
    • 真实空间利用率仅50%
    • 容错能力强,写入带宽好

2. 数据库

  1. 关系(Relation)是什么

    • 关系=集合=任意元素组成的若干有序偶对
    • 关系代数=对关系作运算的抽象查询语言
    • SQL=一种方便人类阅读的关系代数表达形式
  1. 关系型数据库

    •   关系型数据库是存储系统,但在存储之外又发展出其他能力
    •   特点- 结构化数据友好- 支持事务(ACID)- 支持复杂查询语言

  1. 非关系型数据库

    •   非关系型数据库也是存储系统,但一般不要求严格的结构化
    •   特点- 半结构化数据友好- 可能支持事务(ACID)- 可能支持复杂查询语言

  • 3. 数据库vs经典存储

    •   数据库的优势

    • 结构化存储

    • 事务能力

      1.     事务特点:
      2. 原子化 Atomicity:事务内的操作要么全做,要么不做
      3. 一致性 Consistency:事务执行前后,数据状态是一致的
      4. 独立性 Isolation:可以隔离多个并发事务,避免影响
      5. 持久性 Durability:事务一旦提交成功,数据保证持久性
    • 复杂查询能力

3.总结

存储系统与数据库直接影响着软件的数据访问效率。熟悉存储系统与数据库的一些基本概念对于后端学习来说至关重要。

思维导图: