存储&数据库(1) | 青训营笔记

94 阅读2分钟

数据的持久化

校验数据的和合法性 →修改内存→写入存储介质

But?

如何保证数据不丢?

如何处理多人同时修改?

除了数据库还能用别的系统吗?

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

怎么操作数据库?要用什么编程语言?

存储系统 & 数据库系统

存储系统:提供读写、控制类接口,能安全地把数据持久化的软件

系统特点:性能敏感,容易受硬件影响,代码既简单又复杂

RAID技术

出现的背景:对高性价比、高性能、高可靠性的需要

RAID0:块磁盘组合,数据条带化设计,没有额外容错设计

RAID1:一块磁盘对应一块额外的镜像盘,真是空间仅50%,容错能力强

RAID0+1:真是空间利用率仅50%,容错能力强,写入带宽好

数据库系统

分为关系型和非关系型

“关系”是什么?反映了事物之间的关系

关系代数:对关系做运算的抽象逻辑语言

SQL=一种DSL:对关系进行操作的语言

关系型数据库的特点:结构化数据友好,支持事务(ACID),支持复杂的查询语言

非关系型数据库的特点:一般不要求严格的结构化,对半结构化数据友好,可能支持事务,可能支持复杂的查询语言

事务?:

👉A原子性,要么都做,要么都不做。

👉C一致性,例如转账,B1000元,A0元,B给A转账500块,事务结束后,A500元,B500元.

👉I并发性:多个并发的事务之间不会相互影响。

👉D持久性:事务一旦成功,数据保持持久性。

数据库的使用方式

👉常用SQL操作:Insert,Update,Select,Delete,Where子句,GroupBy,OrderBy

👉对数据定义进行修改:Create usr,Create database,Create table,Alter table

主流存储产品剖析

单机存储

单个计算机存储软件上的存储软件系统

本地文件系统 Linux的经典哲学:一切皆文件

kv存储系统:常用使用方式put(k,v)&get(k) eg.RocksDB

分布式存储

HDFS:大数据时代的基石

支持海量数据存储,高容错性,弱POSIX定义 ,使用基础X86服务器性价比高

Ceph:开源分布式存储里的万金油

一切皆对象, 数据写入采用主备复制模型, 分布模型采用CRUSH算法

单机关系型数据库

Oracle MySQL PostgreSQL

image.png

单机非关系型数据库

MongoDB,Radis,Elasticsearch

image.png