数据库小结 | 青训营

77 阅读3分钟

经典案例

数据库本质:
校验数据的合法性 小明”是否已经存在

修改内存 高效数据结构组织数据

写入存储介质 寿命、性能友好的方式写入硬件

存储&数据库简介

存储系统

定义

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件
user medium memory network

特点

  1. 性能敏感 大量并发性操作
  2. 代码既简单又复杂 I/O路径简单,非I/O路径错误处理考虑多种异常情况
  3. 容易受硬件影响

从应用到存储介质

  1. 缓存很重要,贯穿存储体系(跨层级之间交互)
  2. 拷贝很昂贵,应尽量减少(消耗CPU)
  3. 硬件设备五花八门,需要抽象统一的软件接口

RAID技术

高性能、高性价比、高可靠性
R(edundant)A(rray)I(nexpensive)D(isks)

数据库

关系

关系 = 集合 = 任意元素组成的若干有序偶对(反映事物之间的关系)
关系代数:对关系作运算
SQL:一种DSL 方便人类阅读的关系代数表达式

关系型数据库

是存储系统,存储外有其他能力
结构化数据,支持事物(ACID),支持复杂查询语言(SQL)

非关系型数据库

是存储系统,但一般不要求严格的结构化
结构化数据,可能支持事物(ACID),可能支持复杂查询语言(SQL)

ACID事物能力

Atomicity 事务内的操作要么全做,要么不做
Consistency 事务执行前后,数据状态是一致的
Isolation 可以隔离多个并发事务,避免影响
Durability 事务一旦提交成功,数据保证持久性

使用方式

操作数据时,支持以下操作:
Insert Delete Select Where子句 GroupBy OrderBy
要对数据定义作修改时,支持以下操作:
CreateUser CreateDatabase CreateTable AlterTable

主流产品剖析

单机存储

单个计算机节点上的存储软件系统,一般不涉及网络交互

本地文件系统

管理单元:文件
系统接口:USB统一抽象接口
两大数据结构:IndexNode DirectoryEntry
IndexNode:记录文件元数据,id、大小、权限、磁盘位置等
DirectoryEntry:记录文件名、iNode指针、层级关系等

key-value存储

常见使用方式:put(k,v) get(k)
常见数据结构:LSM-Tree 某种程度上牺牲读性能,追求写入性能

分布式存储系统

在单级存储的基础上实现了分布式协议,涉及大量网络交互

HDFS

支持海量数据支持、高容错性、弱POSIX语义、使用普通x86服务器、性价比高

Ceph

一套系统支持对象接口、块接口、文件接口、数据写入采用主备复制模型,数据分布模型采用CRUSH算法

单机数据库

单个计算机节点上的数据库 事务在单机内执行,也可能通过网络交互实现分布式事务
分为关系型数据库和非关系型数据库

分布式数据库

问题、挑战:容量、弹性、性价比