数据库(Database, DB) 就是一种按照一定结构,存储、管理和使用数据的仓库。
可以把它想象成一个“电子化的文件柜”,数据被有序地存放,方便随时查询和修改。
与普通的文件不同,数据库不仅存储数据,还提供 高效管理与查询机制。
📌 举个例子:
Excel 表格就是一种简单的数据存储方式,但功能有限。
而数据库可以看作是“超强版 Excel”,能存储海量数据,并支持安全、快速、并发地操作。
数据库的主要功能有:
数据库根据 数据组织方式,大体分为几类:
| 维度 | 关系型数据库 (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 Db2 | MongoDB、Redis、Cassandra、HBase、Couchbase、Neo4j | TiDB、CockroachDB、Google Spanner、Amazon Aurora、VoltDB | InfluxDB、TimescaleDB、Neo4j、JanusGraph、Elasticsearch |
| 优点 | - 数据一致性强 - 事务支持完善 - 工具和生态成熟 - 适合传统业务系统 | - 数据模型灵活 - 性能高(部分内存型) - 适合大规模非结构化数据 - 水平扩展容易 | - 兼顾 SQL 易用性与分布式扩展 - 支持强一致性 - 云原生架构友好 | - 针对场景极致优化 - 高性能 - 专用查询语言和算法 |
| 缺点 | - 扩展性差(难以水平扩展) - 性能瓶颈在大规模数据时明显 | - 缺乏标准化 - 一致性弱(多数为最终一致性) - 学习成本高 | - 技术新,生态不如 RDBMS - 部署和运维复杂 - 成本较高 | - 通用性差 - 无法替代通用数据库 - 学习门槛高 |
数据库几乎无处不在:
📌 举个例子: 你在淘宝下单时,订单信息会被写入数据库; 你再次查询订单状态时,数据库就会返回对应记录。
一句话总结:数据库是存储和管理数据的电子化仓库,它不仅保存数据,还提供高效、安全、可靠的数据操作能力,是现代信息系统的核心。