这是我参与「第五届青训营」伴学笔记创作活动的第1天。
一、案例
数据的产生
用户新下载一个APP进行账号注册,用户所填入的有关账号的信息就形成了数据。
数据的流动
用户的数据在后端服务器、数据库和其他系统的传输过程称为数据流动。
数据的持久化
数据的持久化分为三步:校验数据的合法性、修改内存、写入存储介质。
潜在问题
(1)如何保证数据不丢失?
(2)多人同时修改时如何并发处理?
(3)是否能存储到其他存储系统?
(4)是否只能处理结构化数据?
(5)操作数据库的方式?
二、数据库
存储系统
概念:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件
特点:性能敏感、易受硬件影响、代码简单又复杂
RAID技术 R(edundant) A(rray) of l(nexpensive) D(isks)
背景:
单块大容量磁盘的价格 > 多块小容量磁盘
单块磁盘的写入性能 < 多块磁盘的并发写入性能
单块磁盘的容错能力有限,不够安全
RAID 0:多块磁盘简单组合,数据条带化存储,提高磁盘带宽,没有额外的容错设计
RAID 1:一块磁盘对应一块额外镜像盘,真实空间利用率仅50%,容错能力强
RAID 0+1:结合了RAID 0和RAID 1,真实空间利用率仅50%,容错能力强,写入带宽好
数据库
关系型数据库
关系型数据库是存储系统,但是在存储之外,又发展出其他能力:结构化数据友好、支持事务(ACID)、支持复杂查询语言
非关系型数据库
非关系型数据库也是存储系统,但是一般不要求严格的结构化:半结构化数据友好、可能支持事务(ACID)、可能支持复杂查询语言