知识卡片

数据库三级模式结构与二级映像如何实现独立性

结构图卡

内容

数据库的”独立性”不是一句空洞的设计目标,而是靠三层模式加两次映像这套具体 机制落地的。用户模式(外模式)是每个用户或应用看到的局部数据视图;逻辑模式 (模式)是全库唯一的整体逻辑结构,综合了所有用户需求;物理模式(内模式)是 数据在磁盘上的实际存储方式(文件组织、索引等)。关键不在于分了三层,而在于 层与层之间靠映像(而非直接绑定)连接:用户模式/逻辑模式映像让应用程序只 依赖自己的用户模式,逻辑模式怎么变都可以通过调整这一层映像来吸收,应用 程序不用跟着改——这就是逻辑独立性;逻辑模式/物理模式映像让物理存储结构 (比如给某个字段加索引)的调整通过修改这层映像吸收,逻辑模式本身保持不变—— 这就是物理独立性。换句话说,”独立性”的本质是把”变化”限制在映像这一层去 吸收,而不是让变化沿着依赖链条一路传导到最上层或最下层。这也解释了为什么 索引之类的物理存储优化几乎不会影响应用代码——它们改变的只是逻辑模式/物理 模式映像,逻辑模式和用户模式都不受影响。

结构图

flowchart TD
    A[用户模式/外模式<br/>各用户各自的局部视图] -->|用户模式/逻辑模式映像| B[逻辑模式/模式<br/>全库唯一的整体逻辑结构]
    B -->|逻辑模式/物理模式映像| C[物理模式/内模式<br/>实际存储方式:文件/索引]
    D[逻辑模式变化] -.通过映像吸收,用户模式不变.-> A
    E[物理存储变化,如加索引] -.通过映像吸收,逻辑模式不变.-> B

参考来源

- 位置:《数据库原理(微课版)》第1章《绪论》1.3.1-1.3.2节"数据库的三级模式 结构""数据库中的二级映像"(源文件:_epub-src/index_split_001.html) - 结论依据:原文明确"当数据库的逻辑模式发生变化时,通过修改用户模式/逻辑 模式映像可以保证应用程序不被数据库的变化影响……我们把这种数据库相对于 应用程序的独立性称为数据库的逻辑独立性""当数据库的存储结构改变时……由 数据库管理员调整逻辑模式/物理模式映像,可以使数据库的总体结构(即逻辑 模式)保持不变……称为数据库的物理独立性",因此可以推出映像层是独立性 的实现机制这一结论。 - 原始内容:当数据库的逻辑模式发生变化时……通过修改用户模式/逻辑模式映像 可以保证应用程序不被数据库的变化影响……称这种数据库相对于应用程序的 独立性为数据库的逻辑独立性。