[ 认识存储与数据库 | 青训营笔记 ]

87 阅读2分钟

一. 经典案例

一条数据从产生,到数据流动,最后持久化的全生命周期。

1.经典案例——数据产生

某天,小明同学下载了一个新的APP.因为第一次登陆,所以进入APP后需要注册一个新的账号

用户名:小明 密码: hlloworld 密码提示问题: coding 于是小明同学三下五脉二地填好了资料。按下了「注册」按钮 数据就从无到有地产生了,并且在数十/数百毫秒内向APP的后端服务器飞奔而去……

2.经典案例——数据流动

image.png

------------>后端服务器

----------------------------->数据库

3.经典案例——数据的持久化

image.png

4.经典案例——潜在的问题

数据库怎么保证数据不丢?

数据库怎么处理多人同时修改的问题?

为什么用数据库,除了数据库还能存到别的存储系统吗?

数据库只能处理结构化数据吗?

有哪些操作数据库的方式,要用什么编程语言?

二. 存储系统

1.存储系统——系统概览

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

2.存储系统——系统特点

  • 作为后端软件的底座,性能敏感
  • 存储系统代码,既“简单”又“复杂”
  • 存储系统软件架构,容易受硬件影响
2.存储系统——存储器层级结构

image.png

3.存储系统——数据怎么从应用到存储介质

image.png

  • 「缓存」很重要,贯穿整个存储体系

  • 「拷贝」很昂贵,应该尽量减少

  • 硬件设备五花八门,需要有抽象统一的接入层

4.存储系统——RAID技术 R(edundant) A(rray) of l(nexpensive) D(isks)
4.1 RAID出现的背景:
  • 单块大容量磁盘的价格>多块小容量磁盘
  • 单块磁盘的写入性能<多块磁盘的并发写入性能
  • 单块磁盘的容错能力有限,不够安全
4.2发展

RAID 0

  1. 多块磁盘简单组合
  2. 数据条带化存储,提高磁盘带宽
  3. 没有额外的容错设计

RAID 1

  1. 一块磁盘对应一块额外镜像盘
  2. 真实空间利用率仅50%
  3. 容错能力强

RAID 0+1

  1. 结合了RAID 0和RAID 1
  2. 真实空间利用率仅50%
  3. 容错能力强,写入带宽好

三. 数据库

1.数据库—分类
  • 关系型数据库
  • 非关系型数据库
2.数据库——关系型数据库特点

关系型数据库是存储系统,但是在存储之外,又发展出其他能力

image.png

3.数据库——非关系型数据库特点

非关系型数据库也是存储系统,但是一般不要求严格的结构化

image.png

4.数据库与经典存储有什么区别
  • 1.结构化数据管理方面

  • 2.事务能力方面

  • 3.复杂查询能力方面

5.数据库——数据库使用方式

Everything is D(omain) S(pecific) L(anguage) --->以SQL为例,要操作数据时,支持以下操作:

- 1. Insert

- 2. Update

- 3. Select

- 4. Delete

- 5. Where子句

- 6. GroupBy

- 7. OrderBy

要对数据定义做修改时,支持以下操作:

- 1. Create user

- 2. Create database

- 3. Create table

- 4. Alter table

四. 个人感悟

1.不要混淆数据库与存储结构的概念

2.可以通过例子来理解抽象概念

3.多敲代码