经典案例
数据的流动
//一条用户注册数据
{
"username":"小明",
"password":"123456",
"password_hint":"coding",
}
一条用户注册的数据,先通过后端服务器进行审查,编辑等,再传到数据库或者其他系统。
数据的持久化
校验数据的合法性(“小明”是否存在) ==> 修改内存(用高效的数据结构组织数据) ==> 写入存储介质(以寿命 & 性能友好的方式写入硬盘)
存储与数据库简介
存储系统的系统预览
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。
系统特点
存储系统有三个主要的系统特点:
作为后端软件的底座,性能敏感 储系统承担着存储和管理大量数据的重责。它需要能够快速、高效地处理数据的读写和访问请求,以满足用户对数据的实时性要求。因此,存储系统的设计和实现需要考虑性能因素,并使用优化的算法和数据结构。
存储系统软件架构容易受到硬件影响 存储系统作为底层软件,需要与硬件设备进行交互,读取和写入数据。因此,存储系统的软件架构会受到使用的硬件设备和存储介质的限制和特性的影响。不同的硬件配置和存储介质可能需要不同的代码实现和优化策略。
存储系统代码,既“简单”又“复杂” 存储系统代码在不同层次上的复杂性。从整体上看,存储系统的基本框架和结构可以相对简单。但深入到存储系统的每个组件和层次时,代码会变得更加复杂。
存储介质
- 缓存 很重要,贯穿整个存储体系
- 拷贝 很昂贵,应该尽量减少
- 硬件设备五花八门,需要有抽象统一的接入层
RAID技术
背景:
- 单块大容量磁盘的价格 > 多块小容量磁盘
- 单块磁盘的写入性能 > 多块磁盘的并发写入性能
- 单块磁盘的容错有限,不安全
数据库
关系型数据库
![X_3]219T`PI4CG8EM3N2}05.png](p9-juejin.byteimg.com/tos-cn-i-k3…?)
关系型数据库的关系指的是数据表之间的关联和连接方式。在关系型数据库中,数据被组织成一个或多个表,每个表由行和列组成。表之间可以通过共享的列或键来建立关系。
关系型数据库使用关系模型来描述数据之间的关系。这个模型基于关系代数和集合论的概念,通过定义表之间的主键和外键来建立关系。主键是表中唯一标识每一行的列,而外键是表中引用其他表主键的列。
关系型数据库是存储系统,不止如此它还有很多其他能力
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语句(SQL)
A:事务内的操作要么全做,要么不做
C:事务执行前后,数据状态是一致的
(例:两个用户转钱,一个减了500,另一个就要加500,不能多也不能少,不然就会造成损失)
I:可以隔离多个并发事务,避免影响 (同时进行多个事务,且不会报错)
D:事务一旦提交成功没时间保证持久性