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

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 → 注重性能、可扩展性、适合大数据、搜索、缓存、日志分析等场景
相关推荐
踏月的造梦星球2 小时前
DMHS同步原理与DM8到DM8基础搭建
数据库·oracle
Hardworking6662 小时前
第6章 数据工程
运维·服务器·数据库·数据工程
Elastic 中国社区官方博客2 小时前
4 个英伟达人工智能任务,1 个 Elasticsearch 接口:嵌入、聊天、completion 和重排序
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai
G.O.G.O.G4 小时前
LeetCode SQL 从入门到精通(MySQL)05(下)
数据库·sql·oracle
其实防守也摸鱼4 小时前
运维--安全与数据库
网络·数据库·学习·安全·安全威胁分析·数据库架构·软件安全
不能只会打代码4 小时前
Day 002 — Python 工程化 & FastAPI & 数据库速通
数据库·redis·python·docker·fastapi·测试
Rsun045514 小时前
MySQL 中什么是回表?
数据库·mysql
Sylvia33.5 小时前
足球数据接口开发实战:如何用火星数据API盘活赛事应用
java·服务器·开发语言·数据库·python
ruleslol5 小时前
Mybatis11-不同的数据库连接池的配置
数据库·mybatis
苏州邦恩精密5 小时前
蔡司3D扫描仪厂家如何应用于航空航天制造
大数据·数据库·人工智能·3d·自动化·制造