# P04 04. 基础-概述-数据模型

> 本页是学习笔记，不等同于视频逐字稿。原声字幕未取得（匿名接口字幕轨为空且需登录，未使用任何账号），也没有逐句讲解记录；讲义只按节与页码对应，切点未逐句确证。

> 以同版讲义的公开镜像核对章节与页码（镜像非官方出品）；非逐字稿，示例为原创补充。

## P04 04. 基础-概述-数据模型

- 原视频：https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=4（p=4），时长 5:57
- 讲义：1.2.6 数据模型 p13–14（公开镜像；按主题对应，切点 notexact）

- 本集练习数据：practice/p04.sql（先执行，再对照小例）

### 一句话理解

这一集用一张图讲清数据怎么分层放：客户端 → DBMS → 数据库 → 表 → 行和列。

### 步骤

1. 图从左到右：左边是客户端（你的程序或命令行），中间是 DBMS 齿轮，右边是 MySQL 数据库服务器。客户端不直接碰磁盘文件，它把请求交给 DBMS。
2. DBMS 下面挂着多个圆柱形的“数据库”。一个 MySQL 服务可以建很多库，库与库之间彼此独立，同一个服务里库名不能重复。
3. 每个库里放二维表。画面里两张表，表头 `id、name、price、type` 是列（字段），一行 `1、MySQL、100、数据库` 是一条记录。 多张表之间靠一列（比如部门号）关联，这就是后面多表查询的起点。
4. 所以真实顺序是“先建库、再建表、再插行”。后面的 DDL 建库建表、DML 插数据，就是沿着这张图从上往下走。

### SQL 示例

```
SHOW TABLES;
```

说明：先 `USE 你的练习库;` 再执行。结果只有一列 `Tables_in_库名`，每行一张表；空结果说明这个库还是空的。它对应的正是图里“数据库下面挂表”这一层，也提醒你：切错库就会看到另一批表。

### 易错点

- 把“数据库”和“表”混着叫，比如“我建了一个员工数据库”，其实建的是表。
- 以为一行是一条 SQL 语句。行是表里的一条记录，列才是字段。
- 以为客户端直接读写磁盘文件。读写都经过 DBMS，它负责权限、并发和事务。

### 30 秒速记

客户端→DBMS→数据库→表→行/列；一个服务多个库；表头是列、一行是记录；先建库再建表再插数据。

### 自测

1. 一张表里“列”和“行”分别对应什么？
   - 答：列是字段，定义这一类数据的名字和类型（如 name、age）；行是一条完整记录（如 1、小林、22）。建表时设计的是列，插入时增加的是行。
2. 为什么客户端不直接操作数据库文件？
   - 答：文件格式、并发控制、权限和崩溃恢复都由 DBMS 负责。客户端只发 SQL，DBMS 决定怎么读写，这样多个人同时用也不会把数据写坏。

### 材料与来源

- [平台视频页] B站原视频 P04《04. 基础-概述-数据模型》 https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=4
- [平台视频页] 本集采样画面 p04_t60.jpg（约 214s） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=4
- [平台视频页] 本集采样画面 p04_tmid.jpg（中段） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=4

证据说明：以同版讲义公开镜像核对：讲义 1.2.6 数据模型（p13–14）。原声字幕未取得（匿名接口字幕轨为空且需登录），讲师逐句讲解未核；本页示例、表与数字为站内原创，不是课堂原表。
