数据库入门:什么是数据库和 DBMS?
第 1.1 课 · 阅读时间:约 8 分钟 · 练习题 ↓
数据库是以电子方式存储、由名为 DBMS(数据库管理系统) 的软件管理的有组织的结构化数据集合。在本课中,你将了解什么是数据库、DBMS 如何工作、有哪些类型的数据库,以及为什么 SQL 仍然是操作数据库的通用语言。
SQL 是操作关系数据库的标准语言。我们会在后面的单独课程中详细介绍它。
从电商平台到分析看板,现代应用都依赖数据库来存储和处理数据。理解数据库和 DBMS 的工作原理,是学习 SQL、在实际项目中处理数据的起点。

什么是数据库?
从本质上说,数据库是以电子方式存储在计算机系统中的有组织的结构化信息集合。可以把它想象成一个高级的数字文件柜:与其让纸质文件四处散落,数据库提供了一种结构化的方式来高效地存储、管理和检索信息。
数据库的主要特征:
- 有组织: 数据按特定方式组织,便于查找和管理。这种结构通常是由行和列组成的表。
- 持久: 即使使用数据的应用已关闭或计算机已关机,数据仍然保存着。
- 共享: 多个用户和应用可以同时访问同一个数据库。
- 受管理: DBMS 是用来定义、创建、维护和访问数据库的软件。例如:MariaDB、PostgreSQL、MySQL、SQLite、Oracle、Microsoft SQL Server。
为什么数据库在现代开发中很重要?
数据库是我们每天使用的无数应用和系统的支柱。主要原因如下:
- 数据存储: 可靠、高效地存储大量数据。
- 数据检索: 按指定条件快速找到特定记录。
- 数据管理: 提供组织、更新数据和维护数据完整性的工具。
- 数据共享: 为多个用户和应用提供受控的访问。
- 数据分析: 结构化数据是报表、分析和商业智能的基础。
- 应用开发: 从社交网络到电子商务,每个现代应用都把数据存放在数据库中。
数据库类型:快速概览
本课程重点讲解关系数据库,但了解它与其他类型的区别也很有帮助:
- 关系数据库: 把数据存放在由行和列组成的表中,表之间通过键关联。例如:MariaDB、PostgreSQL、MySQL、SQLite。整个课程都以这种类型为重点。
- NoSQL 数据库: 不遵循关系模型的一大类数据库,用于非结构化或半结构化数据以及分布式扩展。例如:MongoDB、Cassandra、Redis。
- 内存数据库: 主要把数据存放在内存(RAM)中,以获得最低延迟,用于缓存和高吞吐量场景。例如:Redis、Memcached。
什么是 DBMS(数据库管理系统)?
DBMS 是在用户(或应用)与数据库本身之间充当中介的软件。它提供一种系统化、受控的方式来创建、读取、更新和删除数据,同时保证安全性、一致性和性能。
DBMS 的核心功能:
- 数据定义: 创建表、指定数据类型、设置约束并定义关系。
- 数据操作: 插入、更新、删除和查询数据,通常通过 SQL 完成。
- 存储管理: 负责数据在磁盘上的物理存储,包括索引、缓冲和优化。
- 事务管理: 保证一组操作要么全部成功、要么全部失败,使数据库保持一致。事务遵循 ACID 特性:原子性、一致性、隔离性、持久性。
- 并发控制: 管理多个用户的同时访问,防止冲突和数据损坏。
- 访问控制与安全: 身份验证和授权,即控制谁可以连接以及可以做什么。
- 备份与恢复: 提供备份数据并在故障后把数据库恢复到一致状态的工具。
- 数据完整性: 通过约束保证数据准确、有效,例如唯一性、参照完整性等。
常见的 DBMS 有:MariaDB、PostgreSQL、MySQL、SQLite、Oracle Database、Microsoft SQL Server。
DBMS 图形化工具及其与 DBMS 的区别
DBMS 图形化(GUI)工具是一个独立的桌面或 Web 应用,为操作 DBMS 提供可视化界面。DBMS 是存储和处理数据的引擎,而图形化工具只是一个客户端,它连接到 DBMS 并代你发送命令。
常用的 DBMS 图形化工具:
| 工具 | 支持的数据库 |
|---|---|
| DBeaver | MariaDB、PostgreSQL、MySQL、SQLite 等众多数据库 |
| TablePlus | MariaDB、PostgreSQL、MySQL、SQLite 等 |
| pgAdmin | PostgreSQL |
| MySQL Workbench | MySQL / MariaDB |
| DataGrip | 大多数主流 DBMS |
| HeidiSQL | MariaDB、MySQL、PostgreSQL |
| DB Browser for SQLite | SQLite |
DBMS 与图形化工具的主要区别:
| 方面 | DBMS | DBMS 图形化工具 |
|---|---|---|
| 作用 | 数据库引擎:存储、管理和处理数据 | 客户端应用:连接到 DBMS 以显示和编辑数据 |
| 是否必需? | 是:没有它就无法存储或查询数据 | 否:可选的便利工具 |
| 运行在哪里? | 通常在服务器上(SQLite 则在本地) | 在开发人员或管理员的电脑上 |
| 界面 | 命令行 / 编程接口 | 可视化窗口、查询编辑器、表浏览器 |
| 能力 | 完全控制存储、事务和安全 | DBMS 功能的一部分,以可视化方式呈现 |
简而言之,DBMS 是引擎,图形化工具是仪表盘。在整个课程中,我们都会直接使用 SQL 来操作数据库。SQL 是每个 DBMS 都能理解的语言,与你另外选择哪种图形化工具无关。
关系数据库:我们的重点
在本课程中,我们将深入学习关系数据库以及用来操作它们的 SQL(结构化查询语言)。关系模型结构清晰、查询能力强大,至今仍是数据管理和分析的基石。
要点:
- 数据库是有组织、持久的结构化数据集合。
- 数据库对于存储、管理、检索和共享信息至关重要。
- DBMS 是存储、管理数据库并控制其访问的软件引擎,提供数据定义、数据操作、事务管理、安全等功能。
- DBMS 图形化工具是带可视化界面的可选客户端应用,独立于 DBMS 本身。
- 本课程重点讲解关系数据库和 SQL。
常见问题
数据库和 DBMS 有什么区别?
数据库是数据本身,即有组织的表和记录。DBMS 是存储、管理这些数据并提供访问的软件(例如 PostgreSQL、MariaDB)。没有 DBMS,就无法访问数据库。
什么是 SQL,为什么要学习它?
SQL(结构化查询语言) 是在关系数据库中创建、查询、更新和删除数据的标准语言。超过 90% 的商业和分析系统都在使用 SQL,这使它成为软件开发和数据分析领域需求最旺盛的技能之一。
初学者应该先学哪种数据库?
对初学者来说,SQLite(无需安装,基于文件)或 PostgreSQL(免费、功能强大、可用于生产环境)都是很好的起点。两者文档完善,在实际项目中应用广泛。
面试问题
在技术面试中你会如何定义数据库?
数据库是以电子方式存储、由 DBMS 管理的有组织、持久的结构化数据集合。它允许多个用户和应用可靠地存储、检索和修改数据,并保证一致性和完整性。
DBMS 的核心功能有哪些?
DBMS 负责:数据定义(模式、表、约束)、数据操作(通过 SQL 进行增删改查)、事务管理(ACID 特性)、并发控制、访问安全与授权、备份与恢复,以及保证数据完整性。
ACID 代表什么,为什么重要?
ACID 代表原子性(事务要么完全成功,要么完全失败)、一致性(每个事务之后数据仍然有效)、隔离性(并发事务互不干扰)和持久性(已提交的数据在故障后依然保留)。这些特性对银行、计费以及任何要求数据绝对正确的系统都至关重要。
关系数据库和 NoSQL 数据库有什么区别?
关系数据库把数据存放在由行和列组成的结构化表中,使用 SQL,并执行 ACID 事务。NoSQL 数据库(键值、文档、图、宽列)以牺牲部分一致性保证为代价,换取模式灵活性或水平扩展能力。正确的选择取决于数据结构和工作负载。
DBMS 和 DBeaver、pgAdmin 这类工具有什么区别?
DBMS(例如 PostgreSQL、MariaDB)是引擎:它存储、管理和处理数据。图形化工具(例如 DBeaver、pgAdmin)是可选的客户端应用,它连接到 DBMS,并提供编写查询和浏览数据的可视化界面。DBMS 是必需的,图形化工具则不是。