Skip to content

Node系列 · 数据库:数据库简介

数据库(Database)是"按结构组织、能被高效存取和管理的相关数据集合"。它解决的核心问题是:怎么把数据长期存下来,并且保证数据找得到、改得对、丢不了

一、数据库能干什么

四个核心能力:

能力含义典型场景
持久化存储数据写到磁盘,重启后仍在用户注册信息、订单记录、日志
备份与恢复灾难时能复原数据数据库快照、主从同步
快速存取大量数据毫秒级查询索引、B+ 树、查询优化器
权限控制不同角色看不同数据DBA 给开发只读权限、给运营特定表权限

对应到 Node 项目里,最常见的就是 MySQL 这种关系型数据库——几乎所有业务都离不开。

二、数据库类型

类型特点典型代表何时选
关系型表格 + SQL + 事务MySQL、PostgreSQL、Oracle、SQL Server数据有强结构关系、要事务、要 JOIN
非关系型(NoSQL)灵活 schema、高并发、海量数据MongoDB(文档)、Redis(KV)、Elasticsearch(搜索)数据半结构化或无结构、要求高吞吐
面向对象数据按对象组织db4o、ObjectDB已被关系型 + ORM 替代,几乎不用

TIP

Node 项目里最常见的组合:MySQL/PostgreSQL 存业务数据 + Redis 做缓存/队列/限流 + MongoDB 存日志/文档。本指南聚焦 MySQL。

三、关系型 vs 非关系型

维度关系型(MySQL)非关系型(MongoDB / Redis)
数据模型二维表(行 + 列)文档 / KV / 列族 / 图
Schema严格(先建表才能插数据)灵活(同一集合字段可不同)
查询语言SQL各异(MongoDB Query / Redis Commands)
事务ACID 强支持大多数只保证最终一致
JOIN原生支持一般不支持(应用层解决)
扩展方式纵向扩展(升级单机)横向扩展(加节点)
适用订单、支付、用户关系日志、缓存、文档、社交 feed

四、核心术语

缩写全称含义
DBDatabase数据库(按结构组织的数据集合本身)
DBADatabase Administrator数据库管理员(运维数据库的角色)
DBMSDatabase Management System数据库管理系统(操作数据库的软件,如 MySQL Server)
DBSDatabase System数据库系统(DB + DBA + DBMS + 应用程序的总和)

INFO

口语里"数据库"既可能指 DB(一组数据),也可能指 DBMS(一个软件)——根据上下文判断。日常说的"装个数据库"通常指装 MySQL Server 这个软件。

五、SQL 三大分支

SQL 是"结构化查询语言"的统称,按用途分三支:

分支含义常见命令
DDL(Data Definition Language)数据定义CREATE / DROP / ALTER(库、表、字段)
DML(Data Manipulation Language)数据操作INSERT / UPDATE / DELETE(行)
DCL(Data Control Language)数据控制GRANT / REVOKE(权限)

另有一个常被并列的 DQL(Data Query Language)特指 SELECT——虽然技术上属于 DML,但因为查询占比最大被单列出来。

六、小结

  • 数据库核心能力:持久化、备份恢复、快速存取、权限控制
  • 关系型(MySQL/PostgreSQL)是业务系统主力;非关系型(MongoDB/Redis)做缓存/文档/日志
  • 关键术语:DB(数据)/ DBA(人)/ DBMS(软件)/ DBS(系统)
  • SQL 三分支:DDL(建表)/ DML(增删改)/ DCL(权限)