数据、数据库分类

1、概述

  • 数据库主要分为关系型数据库(如MySQL、Oracle)和非关系型数据库(NoSQL,如MongoDB、Redis),其中NoSQL又包括键值存储、文档数据库、列存储、图数据库等类型。
  • 数据则分为结构化数据(如表格数据)、半结构化数据(如JSON、XML)和非结构化数据(如文本、图像、视频)。

2、数据库的主要类型

数据库的分类维度较多,主流是按数据模型划分,不同类型的数据库针对不同的数据存储和访问场景设计,核心类型如下:

关系型数据库(RDBMS)

  • 核心特点 :基于关系模型(二维表结构),数据以行(记录)和列(字段)的形式存储,遵循 ACID(原子性、一致性、隔离性、持久性)原则,支持 SQL(结构化查询语言),强调数据的一致性和完整性。
  • 典型产品:MySQL、Oracle、PostgreSQL、SQL Server。
  • 适用场景:需要事务支持、数据强一致性、结构化查询的场景。

非关系型数据库(NoSQL)

这类数据库不依赖传统的关系模型,为应对大规模、高并发、非结构化 / 半结构化数据场景而生,主要分为以下子类:

子类 核心特点 典型产品 核心场景
键值型数据库 以 "键 - 值" 对存储数据,查询速度极快 Redis、Memcached 缓存、会话存储、计数器、实时推荐
文档型数据库 存储半结构化的文档(如 JSON/BSON 格式),支持嵌套结构 MongoDB、CouchDB 内容管理系统、电商商品数据、用户画像
列族型数据库 按列存储数据,适合批量列查询,扩展性强 HBase、Cassandra 大数据分析、日志存储、时序数据
图形数据库 以节点和边存储数据,专注处理实体间的关系 Neo4j、ArangoDB 社交网络关系、知识图谱、路径规划

新型数据库

  • 时序数据库 :专为时间戳关联的数据设计,支持高吞吐写入和按时间范围的快速查询,典型产品:InfluxDB、TimescaleDB,适用于物联网传感器数据、监控指标、金融交易流水。
  • 向量数据库 :存储和检索向量数据(如 AI 模型生成的嵌入向量),支持相似度计算,典型产品:Milvus、Pinecone,适用于图像 / 文本检索、推荐系统、大模型知识库。

3、数据的主要类型

数据结构和业务属性划分,数据可分为以下几类,与数据库类型的匹配是选型的核心逻辑。

结构化数据

  • 定义:数据格式固定、有明确的结构,可直接映射为二维表的行和列。
  • 示例:用户 ID、订单编号、商品价格、出生日期、性别。
  • 适合的数据库关系型数据库(如 MySQL、Oracle)。
  • 匹配逻辑:结构化数据的强规范性与关系型数据库的表结构、约束(主键、外键、唯一性约束)高度契合,SQL 查询能高效完成多表关联、聚合分析。

半结构化数据

  • 定义:数据有一定结构,但结构不固定或可扩展,支持嵌套和灵活字段。
  • 示例:JSON 格式的用户信息(含基础字段 + 可选的扩展字段)、XML 文档、日志数据。
  • 适合的数据库文档型数据库(如 MongoDB)、部分支持灵活 Schema 的关系型数据库(如 PostgreSQL 的 JSONB 类型)。
  • 匹配逻辑:文档型数据库无需预先定义表结构,可直接存储嵌套的半结构化数据,支持按文档内字段查询,比关系型数据库更灵活。

非结构化数据

  • 定义:无固定格式,无法直接用二维表表示的数据。
  • 示例:图片、音频、视频、PDF 文档、纯文本日志、自然语言文本。
  • 适合的数据库
    • 直接存储:对象存储(如阿里云 OSS、AWS S3)+ 元数据存储(关系型 / 文档型数据库);
    • 检索分析:若需提取特征或检索,可结合向量数据库(如 Milvus,将非结构化数据转为向量后存储)。
  • 匹配逻辑:非结构化数据体积大、结构无规律,传统数据库难以高效存储和检索,对象存储负责低成本海量存储,元数据 / 向量数据库负责管理检索维度。

时序数据

  • 定义:与时间强关联、按时间顺序产生的连续数据,具有高写入、高查询频率的特点。
  • 示例:服务器 CPU 使用率、物联网设备的温度读数、股票价格波动、用户行为日志。
  • 适合的数据库时序数据库(如 InfluxDB、TimescaleDB)、列族型数据库(如 HBase)。
  • 匹配逻辑:时序数据库针对时间维度做了特殊优化,支持按时间范围的快速聚合查询,比关系型数据库的写入和查询效率高 10 倍以上。

关系型数据

  • 定义 :核心价值在于实体之间的关联关系,而非单个实体的数据本身。
  • 示例:社交网络中用户的关注关系、知识图谱中 "疾病 - 症状 - 药物" 的关联、地图中的 "地点 - 路线 - 交通方式" 关系。
  • 适合的数据库图形数据库(如 Neo4j)。
  • 匹配逻辑:关系型数据库查询多实体关联时需多次多表 Join,效率极低;图形数据库以节点和边直接存储关系,查询 "用户的好友的好友" 这类多层关系时,速度远超传统数据库。

4、数据类型与数据库类型的匹配总结表

数据类型 推荐数据库类型 典型应用场景
结构化数据 关系型数据库(MySQL/Oracle) 电商订单系统、银行交易系统、ERP 系统
半结构化数据 文档型数据库(MongoDB) 内容管理系统、用户画像、配置数据
非结构化数据 对象存储 + 元数据 / 向量数据库 图片 / 视频存储、文档检索、大模型知识库
时序数据 时序数据库(InfluxDB) 监控系统、物联网数据、金融流水
关系型数据 图形数据库(Neo4j) 社交网络、知识图谱、路径规划
高频读写的小数据 键值型数据库(Redis) 缓存、计数器、会话存储

参考文档:

https://xixingzhe.blog.csdn.net/article/details/149279707?spm=1011.2415.3001.5331

相关推荐
松涛和鸣2 小时前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库
云老大TG:@yunlaoda3602 小时前
如何使用华为云国际站代理商的FunctionGraph进行事件驱动的应用开发?
大数据·数据库·华为云·云计算
清水白石0082 小时前
《用 Python 单例模式打造稳定高效的数据库连接管理器》
数据库·python·单例模式
小虾米vivian2 小时前
dmetl5 web管理平台 监控-流程监控 看不到运行信息
linux·服务器·网络·数据库·达梦数据库
yuzhucu2 小时前
django4.1.2+xadmin配置
数据库·sqlite
「光与松果」2 小时前
MySQL中统计各个IP的连接数
数据库·mysql
骄傲的心别枯萎2 小时前
RV1126 NO.57:ROCKX+RV1126人脸识别推流项目之读取人脸图片并把特征值保存到sqlite3数据库
数据库·opencv·计算机视觉·sqlite·音视频·rv1126
boy快快长大3 小时前
【MySQL】InnoDB记录存储结构
数据库·mysql
yaoxtao3 小时前
neo4j数据库的导入和导出
数据库