Day8:带你认识存储&数据库|青训营

72 阅读2分钟

经典案例——一条数据的全周期

注册账号填好资料→注册(数据产生)→ 后端服务器 → 数据库系统(数据持久化)

数据的持久化

  • 校验数据的合法性(用户是否已经存在)
  • 修改内存(用高效的数据结构组织数据)
  • 写入存储介质((硬件寿命)寿命&性能友好的方式写入硬件)

存储&数据库简介

什么是存储系统?

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

用户 介质 内存 网络

存储系统的特点

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

数据怎么从应用到介质

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

单机存储怎么做到高性能/高性价比/高可靠性 RAID

Redundant Array of Inexpensive Disks

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

数据库

  • 关系 = 集合 = 任意元素组成的若干有序偶对,反映了事物间的关系
  • 关系代数 = 对关系做运算的抽象查询语言(交、并、笛卡尔积)
  • SQL = 一种DSL = 方便人类阅读的关系代数的表达形式
  • Domain Specific Language

关系型数据库

  • 是存储系统,但又发展处其他能力
  • 结构化数据友好,支持事务ACID,支持复杂查询语言

非关系型数据库

  • 也是存储系统,但一般不要求严格的结构化
  • 半结构化数据友好
  • 可能支持事务
  • 可能支持复杂查询语言

数据库 vs 经典存储

结构化数据管理

  • 写入关系型数据库,以表的形式
  • 写入文件,自行定义,管理结构

事务能力

  • Atomicity,事务内的操作要么全做,要么不做
  • Consistency,事务执行前后,数据状态是一致的(e.g. 转账)
  • Isolation,可以隔离多个并发事务,避免影响
  • Durability,事务一旦提交成功,数据保持持久性

复杂查询能力

  • 数据库更加灵活、简洁;经典存储僵化、复杂(遍历)