关系型数据库与非关系型数据库的区别

1️⃣ 关系型数据库(Relational Database,RDBMS)

核心概念

  • 数据以 表(Table) 形式存储
  • 表由 行(Row) 和 列(Column) 组成
  • 表与表之间可以通过 外键(Foreign Key) 建立关系
  • 数据结构固定,需要定义 Schema
  • 支持 ACID 事务(原子性、一致性、隔离性、持久性)

典型代表

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server

特点

特性 描述

数据结构 表格形式,严格 schema

查询语言 SQL

事务 完整支持 ACID

关系 表与表可以 join

优势 数据一致性高,适合核心业务系统

缺点 扩展性差(水平扩展困难),大规模海量数据性能可能受限

示例

复制代码
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

INSERT INTO users (id, name, age) VALUES (1, '张三', 20);
SELECT * FROM users WHERE name='张三';

2️⃣ 非关系型数据库(NoSQL)

核心概念

  • 不用固定表结构(Schema-less),数据形式多样
  • 主要存储模式:
    1. 文档型(Document) → JSON 文档
      • 例如:Elasticsearch、MongoDB
    2. 键值型(Key-Value) → Redis、Riak
      • 通过 key 直接获取 value
    3. 列族型(Column-Family) → HBase、Cassandra
      • 类似关系型表,但列可以动态添加
    4. 图数据库 → Neo4j
      • 存储节点和边,适合社交网络、推荐系统
  • 支持高并发、分布式、水平扩展
  • 事务支持弱,有些只支持文档级事务或最终一致性

特点

特性 描述

数据结构 灵活,JSON、键值、列族或图

查询语言 DSL、API 或专有查询语言

事务 弱事务(部分支持最终一致性)

关系 数据间关系弱或用嵌套结构表示

优势 扩展性好,适合大数据、搜索、缓存、日志分析

缺点 数据一致性和完整性不如关系型数据库

示例(文档型 MongoDB)

复制代码
db.animals.insert({
    "_id": 1,
    "name": "猫",
    "age": 2,
    "description": "可爱的小动物"
});

db.animals.find({ "name": "猫" });

3️⃣ 核心区别总结

特性 关系型数据库 RDBMS 非关系型数据库 NoSQL

数据结构 表格、固定 schema 文档/键值/列族/图,灵活 schema

查询语言 SQL API 或 DSL,不一定用 SQL

事务 完整 ACID 弱事务/最终一致性

扩展性 垂直扩展为主 水平扩展方便

适用场景 核心业务系统(银行、ERP) 大数据、搜索、缓存、日志分析

示例 MySQL, Oracle Elasticsearch, MongoDB, Redis


💡 小结:

  • RDBMS → 注重数据一致性、关系型、适合传统业务系统
  • NoSQL → 注重性能、可扩展性、适合大数据、搜索、缓存、日志分析等场景
相关推荐
有想法的py工程师16 分钟前
PostgreSQL 字符集双重转义击穿 磁盘 I/O
数据库·postgresql
头发还在的女程序员20 分钟前
【无标题】
网络·数据库·短剧小程序·短剧系统·海外短剧·短剧后台
千千寰宇23 分钟前
[数据库系统] 数据库系统的设计原理研究
数据结构·数据库·database-opengemini/influxdb·database-dament/达梦
麦壳饼39 分钟前
SonnetDB SQL 分页查询:LIMIT/OFFSET 与 FETCH 语法
数据库·sonnetdb
Gauss松鼠会43 分钟前
【GaussDB】破除gaussdb ugin索引支持中文模糊查询的迷思-字符序
java·运维·服务器·网络·数据库·gaussdb·经验总结
l1t1 小时前
DeepSeek总结的PostgreSQL因选择而宽松,因偶然而永久
数据库·postgresql
Nturmoils1 小时前
数据同步中断后,KFS 怎么把链路接回来
数据库
leisoo80972 小时前
股票筹码分布怎么用获利比例成本区间与集中度实战 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·开源
字节跳动的猫2 小时前
LikeShop 商品评价体系二开:追评、晒图审核与评价标签筛选功能开发
运维·数据结构·数据库
行业研究员3 小时前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体