认识存储和数据库
一、潜在的问题
1、数据库怎么保存数据不丢?
2、数据库怎么处理多人同时修改的问题?
3、为什么用数据库,除了数据库还能存到别的存储系统吗?
4、数据库只能处理结构化数据吗?
5、有哪些操作数据库的方法,要用什么编程语言?
二、存储系统
1、什么是存储系统?
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。
2、存储系统-系统特点:
作为后端软件的底座,性能敏感。
存储系统代码,既**"简单"又"复杂"**。
存储系统软件架构,容易受硬件影响。
存储系统层级结构:
3、数据库种类
分为关系型数据库和非关系型数据库。
1、关系型数据库特点: 是存储系统,但是在存储之外,又发展出其他能力。
结构化数据友好。
支持事务(ACID)。
支持复杂查询语言。
2、非关系型数据库特点: 也是存储系统,但是一般不要求严格的结构化。
半结构化数据友好。
可能支持事务(ACID)。
可能支持复杂查询语言。
4、数据库vs经典存储
结构化数据管理、事务能力、复杂查询能力。
5、数据库使用方式:
普遍为SQL语言。
三、主流产品剖析
1、单机存储
单个计算机节点上的存储软件系统,一般不涉及网络交互。
本地文件系统:Linux经典哲学:一切皆文件。Linux文件系统的两大数据结构:Index Node 和 Directory Entry。
Key-value存储:世界一切皆Key-value——key是你的身份证,value是你的内涵。
2、分布式存储
在单机存储基础上实现了分布式协议,涉及大量网络交互。
HDFS:堪称大数据时代的基石。
Ceph:开源分布式存储系统里的“万金油”。
3、单机数据库
单个计算机节点上的数据库系统。
事务在单机内执行,也可能通过网络交互实现分布式事务。