定义 1 (数据库系统) 数据库系统是按照特定数据结构组织,存储和管理数据的基础软件。
对数据库的分类有很多角度,同一个数据库,分类角度不同,会被归类为不同的类型。下
面从常用的角度来对数据库进行分类。
- 数据模型:关系型和非关系型;非关系型又包括:键值型(KV)、文档型、图、列簇型(wide column)、时序、空间等;
- 架构模型:单机、集中式、分布式;集中式分为一主多备、一写多读、多写;分布式分为分布式中间件和分布式数据库。
- 部署模型:本地化部署(on-premises)和云化部署(cloud);
按照数据模型分类:关系型和非关系型
按数据模型分类,数据库分为关系型数据库(SQL)和非关系型数据库(NoSQL)。 关系型数据库以关系代数为基础,按照二维数据表格为方式,对数据表格之间的关系进行抽象和建 模。 按业务负载特征进行分类,关系型数据库又可分为交易型数据库(OLTP)、分析型数据库(OLAP)和混合负载数据库(HTAP)。 交易型数据库满足处理在线的实时交易事务场景,
而分析型数据库满足分析业务场景。混合负载数据库目标是同时处理简单交易和复杂分析场 景。 非关系型数据库种类繁多,根据数据的组织形式和结构特点可以分为七大类非关系模型: 键值数据库、文档数据库、列簇式数据库、图数据库、时序数据库、空间数据库。
1. 关系型数据库(SQL)
(a)OLTP (Online Transaction Processing):OLTP是能够提供实时在线处理事务,同时保证实时强一致性的关系型数据库,也称交易型数据库。
(b)OLAP(Online Analytical Processing):OLAP是指支持对大规模数据进行较为复杂
的联机分析处理的关系型数据库。
(c)HTAP (Hybrid Transactional/Analytical Processing): HTAP是指能够同时支持在线事务处理和复杂数据分析的关系型数据库。广义的HTAP指的是同时支持OLTP和OLAP查询的数据库,而狭义的HTAP指的是同时支持行存列存以支持OLTP和OLAP查询的数据库。
2. 非关系型数据库(NoSQL)
(a)键值数据库 (Key-Value database): 对键值集合进行存储、检索和管理的数据库。KV数据库查询速度快、存放数据量大、支持高并发、扩展性好,非常适合通过主键进行查询,但不能进行复杂的范围查询和聚集分析。
(b)文档数据库 (Document database): 面向文档进行存储、检索和管理的数据库。适合
于Schema频繁变化的场景,易于开发和维护。
(c)列簇式数据库 (Wide column database): 按列存储数据表、并设计系列优化技术,以实现快速分析处理的数据库,适合于大数据查询和分析场景。
(d)图数据库 (Graph database): 使用节点、边和属性来表示和存储数据,进行基于图结构语义查询的数据库。图数据库分为支持事务处理的数据库、图计算和分析引擎、图 学习框架等。
(e)时序数据库 (Time-series database): 为包含个体、时间、状态信息的实时流
数据进行存储、检索和管理数据库, 适合于物联网(IOT) 、性能监控服务(APM,Application Performance Management)。
(f)空间数据库 (Spatial database): 针对二维或多维的空间数据进行存储和管理的数据
库,适合于地图服务和时空分析场景。