这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
存储系统:
- 块存储
- 文件存储
- 对象存储
- key-value存储
数据库系统:
- 关系型数据库
- 非关系型数据库
分布式架构:
- 数据分布策略
- 数据复制协议
- 分布式事务算法
概念介绍
关系型数据库:
特点: 代码语言跟实际语言很近似 易懂
事务(Transaction):
由一组SQL语句组成的一个程序执行单元(Unit),它满足ACID特性。
ACID:
- 原子性:两个操作要么同时成功,要么同时失败,不存在中间状态。
- 一致性:每个操作都必须是合法的,账户信息应该从一个有效状态变为另一个有效状态。
- 隔离性:两个操作在对同一个账户并发操作时,应该是互相不影响,表现得像是串行操作
- 持久性:操作更新成功之后,更新得结果应该是永久性的保留下来,不会因为宕机等问题丢失。
高并发Concurrency、高可靠、高可用
DBMS:数据库管理系统,按照某种数据模型组织、存储和管理数据的仓库。
DBMS发展历史
- 前DBMS时代-人工管理
通过人工方式进行数据记录和管理
- 前DBMS时代-文件系统
数据存储进入磁盘时代,数据通过文件系统来实现
- DBMS时代
传统文件系统已经不能满足人们需要,数据库管理系统(DBMS)诞生
DBMS数据模型:
- 网状模型DBMS 一个子节点可以有多个父节点,多对多
- 层次模型DBMS
树形结构来描述实体及其之间关系的数据模型。一个子节点只能有一个父节点,一对多的关系。
- 关系模型DBMS
所有的数据都是一张二维表,无论是数据实体还是实体之间的关系都是一张二维表,每一行数据就代表一个数据实体和关系。
它们之间的对比区别如下:
SQL语言
1974年由IBM提出,将Codd关系型数据库的12调准则的数学定义以简单的关键字语法表现出来,里程碑式的提出了SQL(Structured Query Language)语言。
特点:
- 语言风格接近自然语言
- 高度结构化语言
结构化语言:只需要告诉计算机做什么,不需要考虑怎么做.
过程化语言:在过程中必须详细的告诉计算机每一步怎么做。 - 面向集合的操作方式
- 语言简洁易学易用