今天是第7篇打卡学习,学习一下后端入门 - 存储与数据库,以下是知识点总结:
①一条数据从产生,到数据流动,最后持久化的全生命周期
一条用户注册数据-》后端服务器-》数据库系统(数据在这里被持久化)
②数据的持久化
首先校验数据的合法性、然后在内存中用高效的数据结构组织数据、最后将数据以寿命&性能友好的方式写入存储介质
老师抛出了五个问题:
1.数据库怎么保证数据不丢?
2.数据库怎么处理多人同时修改的问题?
3.为什么用数据库,除了数据库还能存到别的存储系统吗?
4.数据库只能处理结构化数据吗?
5.有哪些操作数据库的方式,要用什么编程语言?
③什么是存储系统?
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。
存储系统特点:性能敏感、容易受到硬件影响、代码既“简单”又“复杂”
存储器层级结构
数据怎么从应用到存储介质呢?
「缓存」很重要,贯穿整个存储体系。缓存用于存储计算机系统中经常访问的数据和指令,以提高系统的性能和响应速度。当CPU需要访问数据或指令时,它首先检查缓存中是否已经存在相应的数据或指令,如果存在,则可以直接从缓存中读取,避免了从主存储器中读取数据或指令的延迟。
「拷贝」很昂贵,应该尽量减少,拷贝越多CPU消耗越狠
硬件设备五花八门,需要有抽象统一的接入层
RAID技术:R(edundant)A(rray)of I(nexpensive)D(isks)
高性能、高性价比、高可靠
RAID 0
·多块磁盘简单组合
·数据条带化存储,提高磁盘带宽
·没有额外的容错设计
RAID 1
一块磁盘对应一块额外镜像盘
真实空间利用率仅50%
容错能力强
RAID 0+1
结合了RAID0和RAID1
真实空间利用率仅50
容错能力强,写入带宽好
④数据库和存储系统是不一样的吗?
这要从关系型数据库、和非关系型数据库两方面去回答
关系是什么?
答:关系=集合=任意元素组成的若干有序偶对,反应了事物间的关系。
关系代数三对关系作运算的抽象查询语言:交、并、笛卡尔积…
SQL=一种DSL=方便人类阅读的关系代数表达形式
关系型数据库是存储系统,但是在存储之外,又发展出其他能力。
关系数据库的特点:结构化数据友好;支特事务(ACID】;支持复杂查询语言
非关系型数据库也是存储系统,但是一般不要求严格的结构化。
特点:半结构化数据友好;可能支持事务(ACID];可能支特复杂查询语言。
关于它们之间的比较,可以看这篇文章:zhuanlan.zhihu.com/p/348074129
⑤数据库 和 经典的存储对于结构化数据的管理
2.经典存储中没有 事务 这个概念和能力
凸显出数据库支持「事务」的优越性
事务具有:
A(tomicity),事务内的操作要么全做,要么不做
C(onsistency),事务执行前后,数据状态是一致的
I(solation),可以隔离多个并发事务,避免影响
D(urability),事务一旦提交成功,数据保证持久性
3.复杂查询能力