考点频率 :★★★★★(数据库基础必考,选择题每年至少1题,是三级模式结构的核心延伸)
难度 :⭐⭐
建议:重点掌握两级映像分别连接哪两层、分别保证了哪种独立性,以及哪种变化属于逻辑变化、哪种属于物理变化
1️⃣ 回顾:三级模式结构留下了什么问题?
上一篇文章我们学了数据库的三级模式结构:外模式、模式、内模式。
这三个层次把数据库从"用户看到的样子"到"磁盘上真正存储的样子"分成了三层。但问题来了:这三层之间怎么连接?
- 用户通过外模式操作数据,但数据实际存储在物理介质上
- 如果数据存储方式变了(比如换了硬盘),用户程序要不要改?
- 如果数据库表结构变了(比如增加了一列),用户程序要不要改?
答案是:都不需要改。
原因是三级模式之间有两层映像(Mapping) ,它们把上层和下层的差异隔离开了。这就是数据库数据独立性的根本保证。
2️⃣ 两级映像的定义
映像(Mapping) 是一种对应关系,用于在三级模式之间建立联系。
三级模式 → 两级映像:
外模式A 外模式B 外模式C
│ │ │
└──────────┼──────────┘
│
外模式/模式映像 ← 第一级映像
│
模式(概念模式)
│
模式/内模式映像 ← 第二级映像
│
内模式(存储模式)
打个比方 :三级模式就像一栋三层楼。二楼到三楼之间有一部楼梯(外模式/模式映像),一楼到二楼之间有另一部楼梯(模式/内模式映像)。你想从一楼到三楼,不需要把楼梯拆了重盖------只需要走对应的楼梯就行。
3️⃣ 外模式/模式映像
3.1 定义
外模式/模式映像 定义了外模式与模式之间的对应关系。它描述了数据库的某个局部视图(外模式)如何映射到全局逻辑结构(模式)。
3.2 关键特征
| 特征 | 说明 |
|---|---|
| 数量 | 每个外模式都有一个对应的外模式/模式映像(多个) |
| 作用 | 把用户看到的视图(外模式)映射到数据库的整体逻辑结构(模式) |
| 谁管理 | DBA维护 |
3.3 它保证了什么?
当模式 发生改变时(如增加新表、修改字段类型、调整表之间的关系),只要外模式/模式映像保持不变,外模式就不需要改变 ,用户应用程序也不需要修改。这保证了数据的逻辑独立性。
3.4 逻辑独立性
定义:当数据库的逻辑结构(模式)发生变化时,应用程序可以不受影响,不需要修改程序。
哪种变化属于逻辑变化:
- 增加新的表
- 修改字段名或数据类型
- 调整表之间的关系
为什么能做到:因为应用程序只依赖外模式(它看到的视图),而不直接依赖模式。模式变了,只要映像把外模式还能正确映射到新模式上,程序就不知道底层变了。
4️⃣ 模式/内模式映像
4.1 定义
模式/内模式映像 定义了模式与内模式之间的对应关系。它描述了数据库的逻辑结构(模式)如何映射到物理存储结构(内模式)。
4.2 关键特征
| 特征 | 说明 |
|---|---|
| 数量 | 唯一(只有一个) |
| 作用 | 把逻辑结构(模式)映射到物理存储结构(内模式) |
| 谁管理 | DBA维护 |
4.3 它保证了什么?
当内模式 发生改变时(如更换存储设备、修改索引结构、调整数据存储位置),只要模式/内模式映像保持不变,模式就不需要改变 ,应用程序更不受影响。这保证了数据的物理独立性。
4.4 物理独立性
定义:当数据库的物理存储结构(内模式)发生变化时,应用程序可以不受影响,不需要修改程序。
哪种变化属于物理变化:
- 更换硬盘或存储设备
- 建立新的索引
- 调整数据块大小
- 改变数据压缩方式
- 改变数据在磁盘上的存储位置
5️⃣ 两级映像对比表(重点)
| 对比项 | 外模式/模式映像 | 模式/内模式映像 |
|---|---|---|
| 连接的两端 | 外模式 ↔ 模式 | 模式 ↔ 内模式 |
| 数量 | 多个(每个外模式一个) | 唯一(一个) |
| 保证的独立性 | 逻辑独立性 | 物理独立性 |
| 变化的是哪一端 | 模式(逻辑结构变了) | 内模式(存储结构变了) |
| 不变的是哪一端 | 外模式不变 | 模式不变 |
| 用户感知 | 用户无感知 | 用户无感知 |
6️⃣ 数据独立性综合理解
6.1 逻辑独立性 vs 物理独立性
| 对比项 | 逻辑独立性 | 物理独立性 |
|---|---|---|
| 对应映像 | 外模式/模式映像 | 模式/内模式映像 |
| 改变的对象 | 模式(逻辑结构) | 内模式(物理存储) |
| 不受影响的层 | 外模式(用户程序) | 模式(进而外模式也不受影响) |
| 典型场景 | 增加表、修改字段类型 | 更换硬盘、重建索引 |
| 难度 | 相对容易实现 | 相对容易实现 |
6.2 为什么数据独立性很重要?
| 收益 | 说明 |
|---|---|
| 降低维护成本 | 存储结构或逻辑结构改变时,不需要重写应用程序 |
| 提高系统灵活性 | DBA可以自由优化存储结构而不影响业务 |
| 延长软件寿命 | 业务变化时只需调整模式,应用程序可保持不变 |
| 支持多视图 | 不同用户看到不同外模式,互不影响 |
7️⃣ 经典例题
例题1:数据库系统中,保证逻辑独立性的关键是( )。
A. 外模式/模式映像
B. 模式/内模式映像
C. 数据字典
D. 存储过程
解析 :逻辑独立性由外模式/模式映像 保证。当模式改变时,保持该映像不变,外模式就不受影响。选 A。
例题2:某数据库系统将底层存储设备从机械硬盘更换为SSD,并重新组织了数据的物理存储位置。上层应用程序没有做任何修改,仍然正常运行。这体现了数据库的( )。
A. 物理独立性
B. 逻辑独立性
C. 数据共享性
D. 数据完整性
解析 :更换存储设备、调整物理存储位置属于内模式 的变化,应用程序不受影响 → 物理独立性 。选 A。
例题3(判断):当数据库的逻辑结构发生变化时,外模式/模式映像一定需要修改。( )
解析 :错误。当模式变化时,只要外模式/模式映像能继续正确映射,就不需要修改该映像。实际上,正是通过调整(或保持)这个映像来保证逻辑独立性的。但要注意:如果模式的变化导致某个外模式无法映射了(比如删除了某个外模式引用的列),那这个外模式的映像就需要调整。考试更常考"逻辑独立性通过外模式/模式映像保证"这一正面表述。
8️⃣ 记忆口诀
外模映像保逻辑(模式变,外不改),模内映像保物理(内变,模不改)。
逻辑独立加字段,物理独立换硬盘。
区分口诀:
名字里带"逻辑"的 → 用户程序不用改(逻辑独立性)
名字里带"物理"的 → 存储变了不用改(物理独立性)
"外模式/模式"连外 → 外模式不变 → 逻辑独立性
"模式/内模式"连内 → 模式不变 → 物理独立性
9️⃣ 小测验(评论区对答案)
某数据库系统中,DBA为常用的查询字段建立了一个新的索引,以提升查询效率。上层应用程序没有做任何修改,运行正常。这体现了数据库的( )。
A. 物理独立性
B. 逻辑独立性
C. 数据安全性
D. 数据完整性
🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容
#软考中级 #软件设计师 #两级映像 #逻辑独立性 #物理独立性 #数据库技术基础 #软考备考