储存&数据库概览 | 青训营笔记

141 阅读2分钟

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

经典案例

数据的产生

用户在注册时填写的信息和其他信息组合成结构化的数据

数据的流动

一条结构化的用户注册数据会通过后端服务器处理并发送至数据库。

数据的持久化

首先,对数据合法性进行校验。例如用户是否已经存在,时间戳是否合法等等。通过数据校验后,在数据库的内存里用数据结构进行组织。最后通过数据库写入硬件。

潜在的问题

  • 数据库怎么保证数据不会丢失?
  • 怎么处理多人同时修改的问题?
  • 除了数据库以外,有没有其他的储存系统?
  • 数据库只能处理结构化数据吗?
  • 有哪些操作数据库的方式?使用什么语言?
  • ...

储存系统概览

什么是储存系统?

提供了读写、控制类接口,能够安全有效的把数据持久化的软件。

存储系统做为后端的基石,对性能极其敏感。而且软件架构容易受到硬件影响

RAID 技术

  • RAID O
    • 多块磁盘简单组合
    • 数据条带化存储,提高磁盘带宽
    • 没有额外的容错设计
  • RAID 1
    • 一块磁盘对应一块额外镜像盘
    • 真实空间利用率仅50%
    • 容错能力强
  • RAID 0+1
    • 结合了RAIDO和RAID 1
    • 真实空间利用率仅50%
    • 容错能力强,写入带宽好

数据库

关系型数据库

关系=集合=任意元素组成的若干有序偶对反应了事物间的关系。
关系代数=对关系作运算的抽象查询语言.例如:交、并、笛卡尔积……
SQL =一种DSL=方便人类阅读的关系代数表达形式。
关系型数据库对结构性数据非常友好。支持事物(ACID),支持复杂查询语言。

非关系型数据库

非关系型数据库不要求严格的结构化 非关系型数据库对半结构化数据友好,可能支持事物(ACID),可能支持复杂查询语言。

事物

  • A(tomicity),事务内的操作要么全做,要么不做。原子性
  • C(onsistency),事务执行前后,数据状态是一致的。一致性
  • I(solation),可以隔离多个并发事务,避免影响。隔离性
  • D(urability),事务一旦提交成功,数据保证持久性。持久性