存储&数据库

113 阅读2分钟

经典案例

数据的产生

登陆注册时所要填写的个人信息

数据的流动

注册信息-->后端服务器-->数据库-->其他系统

数据的持久化

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

潜在的问题

  • 怎么保证数据不丢?
  • 怎么处理多人同时修改?
  • 还能存到别的存储系统吗?
  • 数据库只能处理结构化数据吗?
  • 有哪些操作方法,要用什么编程语言?

存储&数据库简介

存储系统概念

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

存储系统特点
  1. 作为后端软件的底座,性能敏感
  2. 存储系统软件架构,容易受硬件影响
  3. 系统存储代码,既“简单”又“复杂”
数据怎么从应用层到存储介质
  1. 缓存很重要,贯穿整个存储体系
  2. 拷贝很昂贵,应该尽量减少
  3. 硬件设备五花八门,需要有抽象统一的接入层
RAID技术

单机存储系统怎么能做到高性能/高性价比/高可比性? RAID RAID出现的背景:

    • 单块大量容量磁盘的价格>多块小容量磁盘
    • 单块磁盘写入性能<多块磁盘的并发写入性能
    • 单块磁盘的容错能力有限,不够安全
  • RAID 0
    • 多块磁盘简单组合
    • 数据条带化存储,提高磁盘带宽
    • 没有额外的容错设计
  • RAID 1
    • 一块磁盘对应一块额外镜像盘
    • 真实空间利用率仅50%
    • 容错能力强
  • RAID 0+1
    • 结合了RAID 0和RAID 1
    • 真实空间利用率仅50%
    • 容错能力强,写入带宽好

关系型数据库

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

  • 结构化数据友好
  • 支持事务
  • 支持复杂查询语言(SQL)

非关系型数据库

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

  • 半结构化数据友好
  • 可能支持事务
  • 可能支持复杂查询语言(SQL)

事务能力

凸显出数据库支持「事务」的优越性 事务具有:

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