第1章 数据库概述

依据2016年第3版四篇结构覆盖10个节点:从业务事实、关系模型和DBMS职责建立可验证的数据边界

第1章 数据库概述

本页对应崔洋、贺亚茹《MySQL数据库应用从入门到精通》第3版,中国铁道出版社2016年1月出版,431页,ISBN 9787113211011。课程依据公开书目、零售书目和第2版详细目录进行独立重构,不复制原文;第3版正式结构为四篇20章与五个附录,另设学习地图和总复习,共22页。

本书的版本环境早于MySQL 8.0。正文先恢复第3版知识顺序和案例边界,再把现代差异放进迁移提示;不能把窗口函数、角色、CHECK约束强化等新特性倒写成2016年原版事实。每项操作都在隔离实例完成,生产环境只采用经过备份、回滚和权限审核的变更。

学习目标

  • 能解释“第1章 数据库概述”的10个学习节点,并把它们连接到“从业务事实、关系模型和DBMS职责建立可验证的数据边界”主线。
  • 能复现概念模型、关系模式、主外键表和数据字典,记录输入、操作、预期、实际、证据和回滚条件。
  • 能区分成功、边界和失败数据,验证“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”,而不是只保存一张正常结果截图。
  • 能设计反例推翻“把Excel式二维表直接当成关系设计,既没有稳定主键,也没有业务约束”这一错误模式,完成可由另一位学习者重放的交接。

从业务问题开始

先问“什么状态绝不允许进入数据库”,再问“哪条SQL可以建立或推翻它”。本页把语法放回业务事实、数据状态与失败恢复之中:如果不能预测影响对象、影响行数和错误结果,就先不要执行命令。

学习合同与证据

构成本页的最小词汇表。学习顺序固定为:先画数据和状态边界,再写可重放SQL;先预测结果与影响行数,再执行;最后注入空值、重复键、并发、权限不足或服务重启等失败条件。这样才能把“会输入命令”提升为“能证明数据库行为”。

本页主线是“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。交付物是概念模型、关系模式、主外键表和数据字典。最小不变量是:每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯。所有实验使用专用的bookstore_lab数据库与低权限账户,先记录版本、字符集、隔离级别和SQL模式,避免同一句SQL因环境不同而得到不可比较的结果。

目录节点逐项映射

1.1 数据、数据库与数据库管理系统

节点合同 1/10 · 定义边界。 本节点不是孤立术语。先说明“1.1 数据、数据库与数据库管理系统”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.2 数据管理技术的发展

节点合同 2/10 · 建立结构。 本节点不是孤立术语。先说明“1.2 数据管理技术的发展”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.3 数据模型与关系模型

节点合同 3/10 · 执行操作。 本节点不是孤立术语。先说明“1.3 数据模型与关系模型”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.4 实体、属性、联系与E-R图

节点合同 4/10 · 观察状态。 本节点不是孤立术语。先说明“1.4 实体、属性、联系与E-R图”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.5 关系、元组、属性与键

节点合同 5/10 · 验证失败。 本节点不是孤立术语。先说明“1.5 关系、元组、属性与键”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.6 完整性约束

节点合同 6/10 · 保存证据。 本节点不是孤立术语。先说明“1.6 完整性约束”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.7 SQL语言及其分类

节点合同 7/10 · 定义边界。 本节点不是孤立术语。先说明“1.7 SQL语言及其分类”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.8 MySQL在应用架构中的位置

节点合同 8/10 · 建立结构。 本节点不是孤立术语。先说明“1.8 MySQL在应用架构中的位置”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.9 数据库设计的基本步骤

节点合同 9/10 · 执行操作。 本节点不是孤立术语。先说明“1.9 数据库设计的基本步骤”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

1.10 本章验证清单

节点合同 10/10 · 观察状态。 本节点不是孤立术语。先说明“1.10 本章验证清单”处理的对象、输入和输出,再把它接入“从业务事实、关系模型和DBMS职责建立可验证的数据边界”。执行前写下预期行数、约束、权限或状态,执行后同时保存结果集、影响行数、元数据与错误信息。验收以“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”为准;若只能描述语法而不能给出反例和证据,本节点仍未掌握。

机制推演:从业务事实到数据库状态

第一步是写业务不变量,不是立刻写SQL。把实体标识、值域、唯一性、引用关系、允许为空、状态转移和并发条件列成表,再决定由数据类型、主键、外键、唯一约束、检查、事务还是应用层负责。数据库约束负责拒绝永远不应出现的状态;应用逻辑负责组织流程,但不能靠界面校验替代底层完整性。

第二步是画执行边界。一次请求可能经过客户端、连接池、服务器会话、解析与优化、存储引擎、日志和磁盘。记录当前数据库、账户、事务状态、隔离级别、连接ID、SQL文本、参数、执行计划、影响行数和错误码。若操作涉及多张表,必须明确第一次写入之前和最后一次提交之后分别满足什么条件。

第三步是验证数据语义。至少准备正常值、边界值、NULL、重复值、孤立引用和并发冲突六类样本。查询要验证列集合、行集合、分组口径与顺序;写入要验证影响行数、约束、日志和回滚;管理操作还要验证低权限账户被拒绝。只跑正常样本会隐藏最危险的错误路径。

第四步是建立迁移账本。第3版所处年代常见MySQL 5.x环境,而现代部署可能使用MySQL 8.0。保留原版概念顺序,同时逐项记录默认字符集、认证插件、SQL模式、系统表、角色、窗口函数、数据字典和废弃语法的变化。迁移一次只改变一个变量,结果不一致时先解释差异,再更新脚本。

证据解释与故障定位

定义证据回答“对象是什么”。保存SHOW CREATE结果、information_schema元数据、账户和服务器变量,证明表、索引、视图、例程、触发器或权限确实按脚本建立。截图不足以比较版本;文本结果必须带时间、版本、实例标识和连接身份。

行为证据回答“执行了什么”。保存参数化SQL、执行计划、结果集、影响行数、警告和错误码。查询结果正确但扫描行数异常,属于性能失败;写入返回成功但业务不变量被破坏,属于完整性失败;低权限账户本应被拒绝却成功,属于安全失败。

恢复证据回答“失败后能否回到一致状态”。事务回滚后重跑对账查询,服务重启后核对持久数据,备份恢复后比较行数、校验值和关键业务总额。恢复时间和数据损失窗口应有实际测量,不能只写“已有备份”。

迁移证据回答“换版本后哪些结论仍成立”。使用相同数据、SQL和失败样本比较历史兼容环境与现代实例,把语法、默认值、执行计划、权限、错误码和性能变化逐项入账。只有能够解释差异并给出回退条件,迁移才算完成。

本章回顾

从“从业务事实、关系模型和DBMS职责建立可验证的数据边界”重新走一遍:写业务不变量,确认对象和所有者,预测SQL结果,执行并保存证据,注入失败,验证回滚,最后记录版本差异。最终必须交付概念模型、关系模式、主外键表和数据字典,并由另一位学习者在隔离实例复现“每个业务事实只在一个权威位置表达,标识、联系和约束均可追溯”。

复习与独立交接

练习

问题 1:为什么“第1章 数据库概述”必须覆盖全部10个节点?

问题 2:本页最小正确性合同是什么?

问题 3:怎样构造能推翻错误理解的反例?

问题 4:为什么执行成功不等于业务正确?

问题 5:如何处理第3版与现代MySQL的差异?

问题 6:独立交接至少包含什么?

名词解释

本章出现的专业名词,用大白话再讲一遍。

关系

关系在本页中必须由数据样本、SQL结果和失败边界共同定义。

候选键

候选键在本页中必须由数据样本、SQL结果和失败边界共同定义。

实体完整性

实体完整性在本页中必须由数据样本、SQL结果和失败边界共同定义。

参照完整性

参照完整性在本页中必须由数据样本、SQL结果和失败边界共同定义。

DBMS

DBMS在本页中必须由数据样本、SQL结果和失败边界共同定义。

← 上一页:第3版权威学习地图 · 下一页:第2章 MySQL的安装与配置 →

资料与写作方式声明

本章以《MySQL数据库应用从入门到精通》第3版权威目录界定学习范围,并结合正文列出的技术资料独立重写;不宣称复现原书正文,也不沿用原作表述。

原作版权归作者与出版社所有;本站原创教学结构与表述仅供学习交流。

讨论

评论区加载中…