[ 认识存储&数据库 | 青训营课程笔记 ]
这是我参与「第五届青训营」伴学笔记创作活动的第15天
01.经典案例
一条数据从产生,到数据流动,最后持久化的全生命周期
- 数据库怎么保证数据不丢?
- 数据库怎么处理多人同时修改的问题?
- 为什么用数据库,除了数据库还能存到别的存储系统吗?
- 数据库只能处理结构化数据吗?
- 有哪些操作数据库的方式,要用什么编程语言?
02.存储&数据库简介
- Q:什么是存储系统?
- A:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
存储系统特点:
- 作为后端软件的底座,性能敏感
- 存储系统软件架构,容易受硬件影响
- 存储系统代码,既“简单"又"复杂”
事务能力
凸显出数据库支持「事务」的优越性
事务具有:
- A(tomicity),事务内的操作要么全做,要么不做
- C(onsistency),事务执行前后,数据状态是一致的
- I(solation),可以隔离多个并发事务,避免影响
- D(urability),事务一旦提交成功,数据保证持久性
03.主流产品剖析
3.1单机存储
单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互
3.2分布式存储
分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互
Ceph:开源分布式存储系统里的「万金油」
3.3单机关系型数据库
单机数据库=单个计算机节点上的数据库系统
事务在单机内执行,也可能通过网络交互实现分布式事务
3.4单机非关系型数据库
3.5分布式数据库
- 解决容量问题
- 解决弹性问题
- 解决性价比问题