认识存储与数据库
数据存储和数据库在整个计算机体系中是必不可少的东西(不然你的信息怎么保存),下面我们就根据认识存储与数据库这节课,来了解一下有关存储与数据库方面的知识吧!
01.经典案例
一条数据从产生,到数据流动,最后持久化的全生命周期。
数据的产生:
数据的流动
小明在手机上操作,产生了一条结构化的用户注册数据,这条数据往开发APP的后端服务器而去,去到数据库系统。到了这一步才算真正持久化下来。
如果不持久化,只存储在内存里,那么用户每次使用都得重新注册。所以需要把需要记忆、持久化的数据储存下来。
数据的持久化
-
校验数据的合法性:“小明”是否已存在?
-
修改内存:用高效的数据结构组织数据
-
写入存储介质:以寿命&性能又好的方式写入硬件
潜在的问题:
02. 储存 & 数据库简介
2.1 储存系统
什么是存储系统?
一个提供读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。(包含 User、Medium、Memory、Network)
存储系统 系统特点
-
作为后端软件的底座,性能敏感
-
存储系统软件架构,容易受硬件影响
-
存储系统代码,既”简单“又“复杂”
存储器层级结构:
塔尖 Layer1:Samll size、small capacity、processor registers、vary fast、vary expensive
塔底 Layer6:Large size、tape backup,very slow,affordable
Persistent Memory:在中间层兼顾持久化介质、兼顾内存介质的新型存储器。
数据怎么从应用到存储介质
如何把想写的数据持久化到介质上。摘自《Linux Programming》,用户数据从产生到持久化到单机介质上的链路图。
从 User Data 到 Disk,中间有很多个 buffer 或者说 cache。
硬件设备 可能只提供 Btye 级别的读取,这样有 cache 很重要。
Buffer 可以以应用层友好的,跟软件或硬件进行交互。
拷贝的越多,CPU 消耗越多,关键路径希望减少拷贝。
避免硬件切换更改了,软件要重构。
-
缓存 很重要,贯穿着整个存储体系
-
拷贝 很昂贵,应该尽量减少
-
硬件设备五花八门,需要有抽象统一的接入层
RAID 技术:
单机存储系统如何做到 高性能/高性价比/高可靠性?
RAID(Redundant Aeeay of Inexpensive Disks)
RAID出现的背景:
-
单块大容量磁盘的价格 > 多块小容量磁盘
-
单块磁盘的写入性能 < 多块磁盘的并发写入性能
-
单块磁盘的容错能力有限,不够安全
RAID 0:
-
多块磁盘简单组合
-
数据条带化存储,提高磁盘带宽
-
没有额外的容错设计
RAID 1:
-
一块磁盘对应一块额外镜像盘
-
真实空间利用率仅50%
-
容错能力强
RAID 0+1:
-
结合了 RAID 0 和 RAID 1
-
真实空间利用率仅50%
-
容错能力强,写入带宽好
2.2 数据库
关系型数据库 和 非关系型数据库
Edgar.F.Codd 于 1970提出 关系模型
关系(Relation)又是什么?
关系=集合=任意元素组成的若干有序偶对反应了事物间的关系
关系代数=对关系作运算的抽象查询语言
- 交、并、笛卡尔积……
SQL = 一种 DSL(Domain Specific Language) = 方便人类阅读的关系代数表达形式
关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力。
-
结构化数据优化
-
支持事务(ACID)
-
支持复杂查询语言
非关系型数据库特点
非关系型数据库也是存储系统,但是一般不要求严格的结构化。
-
半结构化数据友好
-
可能支持事务(ACID)
-
可能支持复杂查询语言
2.3 数据库 vs 经典存储
结构化数据管理:
把一个数据写入数据库,用关系型数据库是很自然的写入。
而使用传统文件存储,得写入到文件,然后执行定义和管理结构。定义8 bytes 长度 因为不固定,然后才定义数据。
从上述对比可见,使用文件存储的方式非常麻烦,而且如果数据要删除,操作起来更麻烦。
事务能力:
凸显出数据库支持事务的优越性。
事物具有ACID:
-
A(Atomicity),事务内的操作要么全做,要么不做
-
C(Consistency),事务执行前后,数据状态是一致的。
-
I(Isolation),可以隔离多个并发事务,避免影响
-
D(Durability),事务一旦提交成功,数据保证持久性
复杂查询能力
写入数据之后,想做很复杂的查询怎么办?
左边灵活、简洁,右边僵化、复杂。
2.4 数据库的使用方式
对数据定义进行修改时:
-
Create user
-
Create database
-
Crate table
-
Alter table
-
……