关系型数据库和Mysql概述
基础教学 1 min read

关系型数据库和Mysql概述

Blog Author

关系型数据库和 MySQL 概述


一、关系型数据库概述

1. 数据持久化(Data Persistence)

教学说明

  • 数据持久化是指将程序运行过程中产生的数据,保存到非易失性存储介质(如硬盘)上,即使系统掉电也不会丢失。
  • 数据库管理系统(DBMS)正是最常用的数据持久化解决方案之一。

使用场景

  • 网站用户注册信息存储
  • 银行交易记录保存
  • IoT 设备日志归档

最佳实践

  • 永远不要将重要数据仅保存在内存中
  • 使用数据库前需理解其事务机制和恢复能力
  • 结合日志文件 + 数据快照来增强数据安全性

2. 数据库发展简史

教学说明

代际 类型 特点
第一代 网状数据库、层次数据库 结构复杂,访问不灵活
第二代 关系型数据库 使用表格结构和 SQL 语言
第三代 NoSQL 数据库 弱结构化、高扩展性(如 MongoDB)
第四代 NewSQL 数据库 结合关系型一致性 + NoSQL 性能(如 TiDB)

核心事件

  • 1970 年 IBM 研究员 E.F. Codd 提出关系模型
  • 引入范式理论,奠定关系数据库数学基础

使用场景

  • 传统业务系统(银行、企业 ERP)仍广泛使用关系型数据库
  • 高并发社交媒体平台或日志系统偏向 NoSQL

最佳实践

  • 根据业务模型选型,避免“一把尺子量到底”
  • 高一致性场景优选关系型数据库
  • 强实时与弹性需求考虑 NewSQL 或混合架构

3. 关系型数据库的特点

教学说明

  • 结构:二维表(关系表),每张表由“列 + 行”组成
  • 理论支撑:集合论 + 一阶逻辑 + 关系代数
  • 查询语言:SQL(结构化查询语言)

SQL 四大类别

类别 名称 示例
DDL 数据定义语言 CREATE TABLE, ALTER
DML 数据操作语言 SELECT, INSERT, UPDATE, DELETE
DCL 数据控制语言 GRANT, REVOKE
TCL 事务控制语言 BEGIN, COMMIT, ROLLBACK

使用场景

  • 建立数据库模型
  • 数据增删查改
  • 权限控制和多用户协作
  • 数据安全和回滚处理

最佳实践

  • 用 DDL 管理结构变化,应版本化(如 Flyway)
  • 尽量使用预编译 DML 提高安全性与性能
  • 精细化授权避免越权访问
  • 尽量保证每条数据操作在事务中完成(TCL)

4. ER 模型与概念建模图

教学说明: ER 模型是用于概念设计的工具,包括三大基本元素:

  • 实体(Entity):现实世界中的对象(矩形框)
  • 属性(Attribute):实体的特征(椭圆)
  • 关系(Relationship):实体之间的联系(菱形)

关系类型

  • 1:1(如:学生与学号)
  • 1\:N(如:部门与员工)
  • M\:N(如:学生与课程)

使用场景

  • 系统设计初期的数据建模
  • 团队协作中统一建模语言
  • 利用 PowerDesigner、ER/Studio 等工具自动转 SQL

最佳实践

  • 遵循范式设计 ER 模型
  • 避免冗余字段导致更新异常
  • 关系字段设定应明确外键、唯一性

5. 主流关系型数据库产品介绍

产品 公司 特点与适用场景
Oracle Oracle 商业旗舰产品,功能全面,适合大中型企业
DB2 IBM 历史悠久,适用于 IBM 服务器环境
SQL Server Microsoft 与 Windows 生态集成度高,界面友好
MySQL Oracle 开源、高性能、广泛用于网站与中小企业
PostgreSQL 社区驱动 强一致性、高扩展性,被称为最先进的开源数据库
MariaDB MySQL 分支 由原作者创建,强调开源自由与兼容性

使用场景

  • Oracle:金融、制造等行业系统核心业务数据库
  • MySQL:Web 开发主力数据库(如 WordPress、Shopify)
  • PostgreSQL:地理信息系统(GIS)、复杂查询分析
  • MariaDB:反对 Oracle 商业化路线的开源替代方案

最佳实践

  • 项目选型前需考虑授权费用、社区活跃度、性能需求
  • 优先考虑支持 ACID 的数据库做关键数据持久化
  • 对于 MySQL,了解 InnoDB 与 MyISAM 引擎的差异尤为重要

二、MySQL 简介与安装

1. MySQL 简介

教学说明

  • MySQL 是最流行的开源关系数据库之一,支持多平台部署
  • 使用 C/C++ 编写,具备高性能、低成本、易部署等优势
  • 当前由 Oracle 公司维护,社区版为免费版本

发展背景

  • 被 Sun Microsystems 收购 → Oracle 接手后商业化加剧
  • 创始人创建 MariaDB 分支,吸引众多自由软件支持者

应用场景

  • 企业网站 / CMS 内容管理系统
  • 后台管理系统的核心数据库
  • 数据湖/数据仓库的中转层(可结合 ClickHouse、Kafka)

最佳实践

  • 生产环境优选 InnoDB 引擎(事务支持 + 外键 + 崩溃恢复)
  • 避免公网开放 MySQL 端口
  • 采用非 root 用户访问数据库,限制权限最小化

2. MySQL 安装(Windows / Linux / macOS)

Windows 安装步骤总结:

  • 使用 MySQL Installer(建议离线版)
  • 安装路径应避免空格/中文
  • 安装组件包括 Server、Workbench、Shell 等
  • 注意配置端口(默认 3306)、root 密码、服务名
  • 添加 PATH 环境变量以便命令行访问

Linux 安装关键步骤:

  • 推荐使用 .rpm.deb 包安装
  • 必须卸载系统自带的 MariaDB(避免端口冲突)
  • 关注配置文件 /etc/my.cnf,可调整字符集、端口、日志等
  • 使用 systemctl start mysqld 启动服务
  • 初次登录需查找临时 root 密码并修改为强口令

macOS 安装说明:

  • 使用 DMG 文件图形化安装
  • 芯片架构需匹配(Intel vs Apple Silicon)
  • 安装后可在“系统偏好设置”控制服务状态
  • 命令行操作需配置环境变量 /usr/local/mysql/bin

三、MySQL 基本命令及使用技巧

1. 常用 SQL 命令

-- 查看数据库
SHOW DATABASES;


-- 选择数据库
USE mydb;


-- 查看数据表
SHOW TABLES;


-- 查看字符集 / 排序规则
SHOW CHARACTER SET;
SHOW COLLATION;

2. 获取命令帮助

  • ? show:查看 show 命令用法
  • ? functions:查看内置函数说明
  • help data types:获取数据类型帮助

3. 常用客户端命令

命令 作用
\c 清空当前 SQL 输入
edit 打开系统编辑器
source 执行 SQL 文件
status 查看当前连接状态
prompt 修改命令行提示符
system ls 执行系统命令(如 Linux 的 ls)

4. 初始密码与安全建议

  • 使用 cat /var/log/mysqld.log | grep password 查找初始密码
  • 修改 root 密码时应开启验证策略(validate_password_policy)
  • 避免弱口令,避免使用 root 连接生产环境数据库
  • 将数据库限制为仅内部访问,避免暴露 3306 端口

如果你希望我整理为课件/教学手册/PDF,或者深入展开如“SQL 语句实战练习”、“ER图建模案例”、“MySQL 优化与备份策略”等主题,请告诉我,我们可以继续按教学方式系统展开。