存储与数据库
一、经典案例
1、数据的产生
按下了 「 注册 」 按钮:就这样 , 数据就从无到有地产生了 , 并且在数十 / 数百毫秒内向 APP 的后端服务器飞奔而去
2、数据的流动
3、数据的持久化
同时要注意写入存储介质的硬件寿命,因为存储和读取数量极大的时候,需要考虑硬件的相关使用情况。
4、潜在的问题
数据库怎么保证数据不丢 ? 数据库怎么处理多人同时修改的问题 ? 为什么用数据库 , 除了数据库还能存到别的存储系统吗 ? 数据库只能处理结构化数据吗 ? 有哪些操作数据库的方式 , 要用什么编程语言 ?
二、存储
1、存储系统一系统概览
Q : 什么是存储系统 ?
A : 一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
2、系统特点
存储系统要做到非常高的性能,同时要考虑到各种遇到的情况,包括软件和硬件的损坏和各种特殊情况。软件需要顺从硬件的变化而自动处理相应的情况。
3、存储器层级结构
4、数据怎么从应用到存储介质
「 缓存 」 很重要 , 贯穿整个存储体系 「 拷贝 」 很昂贵 , 应该尽量减少 硬件设备五花八门 , 需要有抽象统一的接入层
5、RAID技术
Q : 单机存储系统怎么做到高性能 / 高性价比 / 高可靠性 ? A : R(edundant) A(rray) Of l(nexpensive) D(isks) RAID 出现的背景 · 单块大容量磁盘的价格 > 多块小容磁盘 单块磁盘的写入性能 < 多块磁盘的并发写入性能 单块磁盘的容错能力有限,不够安全
RAID 0 · 多块磁盘简单组合 · 数据条带化存储,提高磁盘带宽 · 没有额外的容错设计
RAID 1 一块磁盘对应一块额外镜像盘 · 真实空间利用率仅 50% · 容错能力强
RAID 0 + 1 · 纳合了 RAID 0 和 RAID 1 · 真实空间利用率仅50% · 容错能力强,写入带宽好
三、数据库
1、关系
关系 = 集合 = 任意元素组成的若干有序偶对 反应了事物间的关系
关系代数 = 对关系作运算的抽象查询语言 交 、 并 、 笛卡尔积...
SQL = 一种 DSL = 方便人类阅读的关系代数表达形式
2、关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力
3、非关系型数据库也是存储系统
非关系型数据库也是存储系统,但是一般不要求严格的结构化