存储系统与数据库 | 青训营笔记

79 阅读2分钟

数据的流动

byteDance4-7.png

数据的持久化

  • 检验数据的合法性
  • 修改内存
  • 写入存储介质

潜在问题:

  1. 数据库怎么保证不丢
  2. 数据库怎么处理多人同时修改的问题
  3. 为什么用数据库,除了数据库还能存到别的存储系统吗
  4. 数据库只能处理结构化数据吗
  5. 有哪些操作数据库的方式,要用什么编程语言

存储系统

定义

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

存储系统 = 用户+存储介质+内存+网络

系统特点

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

存储器层级结构

byteDance4-1.png

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

byteDance4-2.png

用户态——>内核态——>持久化存储介质

RAID技术

高性能、高性价比、高可靠性

R(edundant)A(rray)I(nexpensive)D(isks)

RAID出现的背景:

  1. 单块大容量磁盘的价格 > 多块小容量磁盘
  2. 单块磁盘的写入性能 < 多块磁盘的并发写入性能
  3. 单块磁盘的容错能力有限,不够安全

RAID 0

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

RAID 1

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

RAID 0+1

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

数据库

graph LR;
A[数据库]-->B[SQL]
A-->C[NoSQL]

关系=集合=任意元素组成的若干有序偶对,反映了事物间的关系

关系代数 = 对关系作运算的抽象查询语言(交、并、笛卡尔积)

SQL = 一种DSL = 方便人类阅读的关系代数表达形式

关系型数据库

关系型数据库是存储系统,但是在存储之外,又发展出其他能力

  1. 结构化数据友好
  2. 支持事务(ACID)
  3. 支持复杂查询语言

非关系型数据库

非关系型数据库也是存储系统,但是一般不要求严格的结构化

  1. 半结构化数据友好
  2. 可能支持事务(ACID)
  3. 可能支持复杂查询语言

数据库 VS 经典存储

结构化数据管理

byteDance4-3.png

事务能力

byteDance4-4.png

复杂查询能力

byteDance4-5.png

数据库使用方式

byteDance4-6.png