了解数据库基本知识、分类、使用场景
一、SQL
是用于访问和处理数据库的标准的计算机语言。
1.1 OLTP 与 OLAP 区别
OLTP(On-Line Transaction Processing)翻译为联机事务处理(数据库应用), OLAP(On-Line Analytical Processing)翻译为联机分析处理(数据仓库应用),从字面上来看OLTP是做事务处理,OLAP是做分析处理。从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询。
1.3 数据库强一致性方案
github: percona/percona-xtradb-cluster
1.4 3NF
- 1NF:列不可再分(相似的列需要合并)
- 2NF:属性完全依赖主键(不存在重复数据)
- 3NF:属性不依赖于其他非主属性
- 数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。
二、DB分类
常见的分类为关系型数据库(结构化数据库)和非关系型数据库(非结构化) ### 1. 关系型数据库
常用的关系数据库
-
H2
- Access
- MySQL
- SQL Server
- Oracle
- SyBase
- DB2
- Sqlite
2. 非关系型数据库
常用的非关系数据库
-
KV存储:Redis 和 Memcached
-
文档存储:MongoDB
-
列存储:Hbase、ClickHouse(联机分析(OLAP)的列式数据库管理系统
-
图存储:Neo4j
-
对象存储
-
XML存储
….
NoSQL数据库分类
类型 | 示例 | 特点 |
---|---|---|
列存储 | 单元格 | 单元格 |
单元格 | 单元格 | 单元格 |
NewSQL: TiDB(PingCAP)、VoltDB、ScaleDB
3. SQL 、NoSQL、NewSQL区别
特性 | SQL | NoSQL | NewSQL |
---|---|---|---|
关系模型 | √ | × | √ |
SQL语法 | √ | × | √ |
ACID | √ | × | √ |
水平扩展 | × | √ | √ |
海量数据 | × | √ | √ |
无结构化 | × | √ | × |
4. 事务
事务模型XA、TCC、DTP
XA: 强一致性,(TM与RM之间) 存在长事务风险(必须等待锁释放才能)。
TCC: try/confirm/cancel AP 异步 (一阶段:发起方,二阶段:事务管理器) 短事务
DTP: prepare/commit/rollback AP (两阶段都是有TM调用)
参考
-- 不要停止思考