Day14-存储 & 数据库1 | 青训营笔记

77 阅读2分钟

“这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天”

1 经典案例 - 数据的流动

image.png

1.1 数据持久化

image.png

2 存储 & 数据库简介

2.1 存储系统

2.1.1 存储系统-系统概览

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

image.png

2.1.2 存储系统-系统特点

  • 为了逻辑简单而简单,为了安全等问题复杂;

image.png

2.1.3 存储器层层级结构

image.png

2.1.4 存储系统-数据怎么从应用到存储介质

  • 之前是硬件,现在讨论软件框架设计;
  • 1)【缓存】很重要
  • 观察图,在user data和Disk之间,存在很多缓存cache和buffer;
  • 用处:匹配读写处理速度,格式,cache帮助用硬件友好的方式跟硬件打交道;buffer在软件层匹配不同层间的访问粒度;
  • 2)【拷贝很昂贵】
  • 拷贝消耗CPU,关键路径上尽量减少拷贝;
  • 3)抽象统一的接口
  • 应对不断变化的硬件设备,不然每次更换硬件都要重建软件框架;

image.png

2.1.5 存储系统-RAID技术

image.png

2.2 数据库

image.png

2.2.1 数据库--概览

  • SQL:一种DSL(Domain Specific Language),领域专用语言
  • 方便人类阅读的关系代数表达形式;

image.png

2.2.2 数据库-关系型数据库特点

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

  • 1)为结构化数据而生;
  • 2)支持事务(ACID);
  • 3)支持复杂查询语言;SQL

2.2.3 数据库-非关系型数据库特点

不要求严格结构化数据

  • 1)半结构化数据友好;
  • 2)可能支持事务(ACID);
  • 3)可能支持复杂度查询语言;SQL

2.3 数据库 VS 经典存储

2.3.1 结构化数据管理

  • 使用关系型数据库,很自然的以表形式管理;使用SQL计算数据插入更新,十分方便;
  • 对于经典存储(例如文件系统),就自行定义管理结构;与byte地址打交道,计算偏移地址;

image.png

2.3.2 事务能力

关系型数据库最强一点就是支持事务;

image.png

2.3.3 复杂查询能力

image.png

2.4 数据库使用方式

image.png