数据库简介¶
前言¶
在之前的 Java 学习中,我们编写的程序大多与控制台交互。它们的特点是:程序终止后,数据随之消失。
为了实现数据持久化(保存数据以便下次使用),我们通常会使用数据库。
数据库是一种能将内存数据固化到硬盘的技术载体,通过它可以保存大量结构化数据。
一、为什么使用数据库¶
1. 持久化的概念¶
持久化(Persistence)指将数据长期保存的过程。
程序运行在内存中,数据是暂时的,而数据库能将这些数据永久保存到硬盘中。
2. 持久化的常见方式¶
- 存入关系型数据库(如 MySQL、Oracle)
- 存入文件(CSV、TXT)
- 存入 XML / JSON 等数据文件
二、数据库与数据库管理系统¶
| 名称 | 全称 | 含义 |
|---|---|---|
| DB | Database | 数据库:存储数据的“仓库”,本质上是一种文件系统 |
| DBMS | Database Management System | 数据库管理系统,用于管理数据库的创建、使用和维护 |
| SQL | Structured Query Language | 结构化查询语言,是操作关系型数据库的通用语言 |
类比理解:
DBMS 像「视频播放器」,数据库(DB)像「视频文件」。
我们通过 DBMS(播放器)操作 DB(视频)。
三、数据库管理系统排名¶
常见的数据库管理系统包括:
- MySQL
- PostgreSQL
- SQL Server
- Oracle
- DB2
- SQLite
- Redis
- MongoDB
截至 2025 年,MySQL、PostgreSQL、Oracle、SQL Server 一直稳居前四。
四、RDBMS 与 非 RDBMS¶
| 分类 | 全称 | 示例 |
|---|---|---|
| RDBMS | 关系型数据库 | MySQL、PostgreSQL、Oracle、SQL Server、DB2 |
| 非 RDBMS | 非关系型数据库 | Redis、MongoDB、Elasticsearch、HBase、Neo4j |
1. 关系型数据库(RDBMS)¶
使用“表格(Table)”结构存储数据,以行和列为基本单位,通过 SQL 操作。
优点:
- 数据结构固定
- 支持事务
- 查询能力强(支持多表 JOIN)
- 有完善的安全与权限控制
2. 非关系型数据库(NoSQL)¶
更灵活的数据存储模型,不强制表结构约束,常用于高并发、大数据场景。
| 类型 | 存储结构 | 常见产品 | 应用场景 |
|---|---|---|---|
| 键值型 | key-value | Redis | 缓存、Session 存储 |
| 文档型 | JSON/XML | MongoDB | 半结构化数据 |
| 列式数据库 | 按列存储 | HBase | 大数据分析 |
| 图形数据库 | 节点+边 | Neo4j | 社交关系建模 |
| 搜索引擎型 | 倒排索引 | Elasticsearch | 全文检索 |
五、关系型数据库设计原则¶
1. ORM 映射关系¶
| 数据库 | Java |
|---|---|
| 一张表 | 一个类 |
| 一条记录 | 一个对象 |
| 一列字段 | 一个属性 |
2. E-R 模型三要素¶
- 实体(Entity)
- 属性(Attribute)
- 联系(Relationship)
3. 表之间的关系¶
| 类型 | 示例 | 建表原则 |
|---|---|---|
| 一对一 | 用户 ↔ 用户详情 | 外键唯一或主键互为外键 |
| 一对多 | 学生 ↔ 成绩 | 在“多”的一方添加外键 |
| 多对多 | 学生 ↔ 课程 | 新建中间表存主键映射 |
六、MySQL 简介¶
1. 版本分类¶
| 版本 | 特点 |
|---|---|
| Community | 免费开源版,广泛使用 |
| Enterprise | 收费,含官方技术支持 |
2. 优势¶
- 使用 C/C++ 编写,跨平台强
- 支持多语言 API(Java / Python / PHP)
- 查询优化出色,性能优越
- 体积小,部署方便
3. MySQL vs Oracle¶
| 项目 | MySQL | Oracle |
|---|---|---|
| 费用 | 免费 | 收费 |
| 性能 | 快速轻量 | 稳定安全 |
| 应用场景 | Web系统 | 企业核心业务 |
七、MySQL、A5M2 安装¶
八、A5M2 连接 MySQL 步骤¶
A5:SQL Mk-2 是一个非常好用的日系 SQL 客户端工具(支持 ER 图、脚本导出、可视化编辑)。 下面是连接 MySQL 的常见操作步骤
- 启动 A5M2 打开 A5:SQL Mk-2 软件。
- 新建连接 点击菜单栏: 数据库 → 新建连接 → 选择 “MySQL”
- 填写连接信息
| 项目 | 示例 | 说明 |
|---|---|---|
| 连接名 | MyLocalMySQL | 任意填写 |
| 主机名 | localhost | 本机数据库 |
| 端口号 | 3306 | MySQL 默认端口 |
| 用户名 | root 或 devuser | 数据库用户名 |
| 密码 | ** | 登陆密码 |
| 数据库名 | test / your_db | 要连接的数据库名 |
可选:勾选 “保存密码” 以免每次输入。 4. 测试连接 点击“测试连接”,出现成功即表示连接正常。 5. 保存并连接 点击“连接”即可进入数据库浏览界面。 6. 常见问题 若提示 “无法连接 3306 端口” → 检查 MySQL 服务是否已启动。 若提示 “Access denied” → 检查用户名、密码、主机权限。 若中文显示乱码 → 在连接设置中选择 UTF-8 编码。
九、五大主流数据库系统介绍与选型¶
MySQL¶
- 类型:开源关系型数据库
- 开发者:Oracle 公司
- 优势:免费、跨平台、轻量级、多语言支持
- 缺点:复杂事务与海量数据性能略弱
- 典型场景:Web 应用、电商、ERP、小型系统
PostgreSQL¶
- 类型:开源对象关系型数据库
- 开发者:PostgreSQL 社区
- 优点:SQL 标准兼容性最强,支持 GIS、事务、触发器
- 缺点:学习曲线较陡,工具较少
- 场景:企业系统、政府项目、BI 分析、GIS 应用
SQL Server¶
- 类型:微软开发的关系型数据库
- 优点:与 Windows/.NET 兼容性高,图形化工具友好
- 缺点:商业授权昂贵,跨平台性较弱
- 场景:企业内部管理系统(CRM、OA、财务)
Oracle Database¶
- 类型:商业级关系型数据库
- 优点:高性能、高可靠、强事务支持
- 缺点:昂贵、部署复杂
- 场景:银行、电信、保险、国家级系统
IBM DB2¶
- 类型:企业级商业数据库
- 优点:事务一致性强,大数据支持好
- 缺点:成本高,生态闭环
- 场景:金融、政府、主机系统
五大数据库对比表¶
| 特性 | MySQL | PostgreSQL | SQL Server | Oracle | DB2 |
|---|---|---|---|---|---|
| 开源 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 免费 | ✅ | ✅ | 部分 | ❌ | ❌ |
| 操作系统 | 全平台 | 全平台 | Win/Linux | 全平台 | 全平台 |
| 性能优化 | 高 | 高 | 中 | 极高 | 极高 |
| 分布式支持 | 一般 | 强 | 一般 | 强 | 强 |
| GIS 支持 | 一般 | ✅ 强 | 一般 | 一般 | 一般 |
| 事务 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 适用场景 | Web 应用 | 企业项目 | Windows 系统 | 核心业务 | 金融系统 |
项目选型建议¶
| 场景 | 推荐数据库 | 理由 |
|---|---|---|
| Web / 中小型项目 | MySQL | 开源轻量,部署简单 |
| 政府 / 金融类项目 | PostgreSQL / Oracle | 安全与事务控制优越 |
| 企业 OA / ERP 系统 | SQL Server | 与 .NET 平台兼容 |
| 跨平台开源项目 | PostgreSQL | 扩展性强,SQL 标准高 |
| 大型主机 / 批量计算 | DB2 / Oracle | 稳定高效,事务可靠 |
总结¶
- 数据库的基本概念、
- RDBMS 与 NoSQL 的区别、
- 表设计原则、
- MySQL 的安装与配置,
- 深入对比了当前主流的五大数据库系统。
掌握 SQL 与数据库系统的差异,是后端开发的基础与架构设计核心。
选择合适的数据库系统,是实现高性能与高可用性系统的重要一步。