数据库

概念

数据库(Database, DB) 就是一种按照一定结构,存储、管理和使用数据的仓库。

可以把它想象成一个“电子化的文件柜”,数据被有序地存放,方便随时查询和修改。

与普通的文件不同,数据库不仅存储数据,还提供 高效管理与查询机制。

📌 举个例子:

Excel 表格就是一种简单的数据存储方式,但功能有限。

而数据库可以看作是“超强版 Excel”,能存储海量数据,并支持安全、快速、并发地操作。

功能

数据库的主要功能有:

  • 数据存储:持久化保存数据(不像内存,断电不会丢)。
  • 数据查询:用查询语言(如 SQL)快速获取所需信息。
  • 数据更新:支持增加、修改、删除数据。
  • 数据管理:提供用户权限、安全控制、并发控制。
  • 数据恢复:支持备份、容错、崩溃后恢复。

分类

数据库根据 数据组织方式,大体分为几类:

维度关系型数据库 (RDBMS)非关系型数据库 (NoSQL)NewSQL / 分布式数据库专用型数据库
概念表格形式 存储数据,使用行、列和关系来组织不使用固定表格结构,采用 键值、文档、列族、图 等模型结合 RDBMS 的事务支持和 NoSQL 的水平扩展能力为特定场景优化的数据库,如 时序、图、搜索
特点- 数据结构化
- 严格的事务 (ACID)
- 使用 SQL 操作
- 灵活的数据模型
- 适合非结构化/半结构化数据
- 多样化的数据访问模式
- 分布式架构
- 兼容 SQL 语法
- 具备强一致性和高扩展性
- 针对性设计
- 面向特定数据类型(时间序列、图关系等)
分类商业版(Oracle, SQL Server)
开源版(MySQL, PostgreSQL, MariaDB)
键值型(Redis)
文档型(MongoDB)
列式(Cassandra, HBase)
图型(Neo4j)
分布式事务型(Google Spanner, CockroachDB, TiDB)
内存型(VoltDB)
时序型(InfluxDB, TimescaleDB)
图型(Neo4j, JanusGraph)
搜索型(Elasticsearch)
常见产品MySQL、PostgreSQL、Oracle、SQL Server、MariaDB、IBM Db2MongoDB、Redis、Cassandra、HBase、Couchbase、Neo4jTiDB、CockroachDB、Google Spanner、Amazon Aurora、VoltDBInfluxDB、TimescaleDB、Neo4j、JanusGraph、Elasticsearch
优点- 数据一致性强
- 事务支持完善
- 工具和生态成熟
- 适合传统业务系统
- 数据模型灵活
- 性能高(部分内存型)
- 适合大规模非结构化数据
- 水平扩展容易
- 兼顾 SQL 易用性与分布式扩展
- 支持强一致性
- 云原生架构友好
- 针对场景极致优化
- 高性能
- 专用查询语言和算法
缺点- 扩展性差(难以水平扩展)
- 性能瓶颈在大规模数据时明显
- 缺乏标准化
- 一致性弱(多数为最终一致性)
- 学习成本高
- 技术新,生态不如 RDBMS
- 部署和运维复杂
- 成本较高
- 通用性差
- 无法替代通用数据库
- 学习门槛高

应用场景

数据库几乎无处不在:

  • 电商平台:用户信息、商品、订单记录 → MySQL、Redis
  • 银行系统:交易流水、账户余额 → Oracle、Db2
  • 社交网络:好友关系、推荐算法 → Neo4j
  • 监控系统:服务器日志、性能指标 → InfluxDB、TimescaleDB
  • 移动应用:离线数据存储 → SQLite

📌 举个例子: 你在淘宝下单时,订单信息会被写入数据库; 你再次查询订单状态时,数据库就会返回对应记录。

总结

一句话总结:数据库是存储和管理数据的电子化仓库,它不仅保存数据,还提供高效、安全、可靠的数据操作能力,是现代信息系统的核心。