数据库分类

数据库可以从多个维度进行分类,不同的分类方式反映了数据库在数据模型、处理能力、部署方式、存储介质以及应用场景等方面的差异。理解这些分类,有助于在实际系统架构设计中选择合适的数据库方案

按数据模型分类

关系型数据库(RDBMS)

关系型数据库以表(Table)作为核心数据结构,通过行和列组织数据,并使用 SQL(Structured Query Language) 进行数据查询和管理。
不同表之间通过**主键(Primary Key)和外键(Foreign Key)**建立关系,从而实现复杂的数据关联查询。

特点:

  • 数据结构清晰,强约束
  • 支持复杂查询(Join、聚合等)
  • 支持事务和 ACID 特性
  • 适合结构化数据存储

典型数据库:

MySQL、PostgreSQL、Oracle、SQL Server 等。

非关系型数据库(NoSQL)

NoSQL(Not Only SQL)数据库不使用传统的关系型表结构,而是采用更灵活的数据模型,以适应大规模数据和高并发访问场景。

特点:

  • 数据结构灵活
  • 扩展能力强
  • 高并发性能好
  • 通常弱事务或无事务

处理方式分类

  • 事务型数据库:支持事务处理和 ACID 特性(原子性、一致性、隔离性、持久性)。
  • 非事务型数据库:不支持事务处理和 ACID 特性,但具有更高的性能和可扩展性。

部署方式分类

  • 单机数据库:单机数据库部署在一台服务器上,所有数据和计算都在同一节点完成。
  • 分布式数据库:分布式数据库将数据分布在多台服务器上,通过网络进行协同工作,从而实现更高的可扩展性和可用性。

存储方式分类

  • 内存数据库:内存数据库将数据存储在 RAM(内存) 中,因此读写速度非常快。Redis、Memcached
  • 磁盘数据库:磁盘数据库将数据持久化存储在 磁盘或 SSD 上。MySQL、PostgreSQL、Oracle 等。

访问方式分类

  • OLTP(Online Transaction Processing)数据库主要用于在线事务处理系统
  • OLAP(Online Analytical Processing)数据库主要用于数据分析和决策支持。ClickHouse、Doris、StarRocks、Snowflake 等。

使用场景介绍

关系型数据库(RDBMS):

  • 适用于需要处理大量结构化数据的应用场景,如金融、电子商务、物流等。
  • 适用于需要支持事务处理和 ACID 特性的应用场景,如银行、电信、航空等。
  • 适用于需要进行复杂查询和分析的应用场景,如数据仓库、商业智能等。

非关系型数据库(NoSQL):

  • 文档型数据库:适用于处理半结构化数据的应用场景,如博客、新闻、评论等。
  • 键值对数据库:适用于处理简单的键值对数据的应用场景,如缓存、会话管理等。
  • 列式数据库:适用于处理大量结构化数据的应用场景,如日志、事件、时间序列数据等。
  • 图形数据库:适用于处理复杂的关系型数据的应用场景,如社交网络、推荐系统、生物信息学、网络安全等。
  • 对象数据库:适用于需要支持面向对象编程的应用场景,如游戏开发、多媒体应用等。

内存数据库:

  • 适用于需要快速响应的应用场景,如高并发的交易处理、实时数据分析等。
  • 适用于需要快速读写的应用场景,如缓存、会话管理等。
  • 适用于需要进行实时计算和分析的应用场景,如实时风控、实时推荐等。

分布式数据库:

  • 适用于需要高可用性和容错性的应用场景,如分布式计算、分布式存储等。
  • 适用于需要支持大规模数据处理和分析的应用场景,如大数据、机器学习等。
  • 适用于需要支持多地域部署和数据共享的应用场景,如云计算、物联网等。