本文主要介绍关于数据库系统的三级模式与数据独立性的相关知识。

本文主要内容:

  • 模式与实例
  • 数据库系统的三级模式结构
  • 数据库的二级映像与数据独立性

1. 模式(Schema)&实例(Instance)

模式与实例其本质就是“型”与“值”的关系:
模式(Schema):
* 是对数据库逻辑结构和特征的描述;
* 模式是相对稳定的
* 是对型的描述,不涉及具体值

E.g:“学生选课数据库”:

实例(Instance):
* 数据库某一时刻的状态,即为模式的一个具体值
* 同一个模式可以有多个实例
* 实例会随数据库中数据更新而变动

E.g:“各年学生选课实例”:

2. 数据库系统的三级模式

所谓数据库的三级模式,即:外模式-模式-内模式,如图所示:

2.1 模式(逻辑模式):

模式(逻辑模式)是对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

  • 模式是数据库系统模式结构的中心:
    • 与数据的物理存储细节和硬件环境无关;
    • 与具体应用程序、开发工具以及高级程序设计语言无关;
  • 定义模式:
    • 定义数据间联系;
    • 定义数据相关的安全性、完整性要求;

2.2 外模式:

外模式是对用户使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。

  • 外模式通常是模式的子集,一个模式通常可以有多个外模式以反映用户的不同应用需求;
  • 一个外模式可以被多个应用系统所使用,但一个应用程序只能使用一个外模式;
  • 外模式用途:
    • 每个用户只能看到和访问1所对应的外模式中的数据,简化了用户视图;
    • 提供了安全保障

2.3 内模式(存储模式):

内模式是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,包括:

  • 记录的存储方式——顺序、堆存储、hash存储
  • 索引的组织方式——B+树、Hash
  • 数据是否压缩存储、是否加密等
    一个数据库只有一个内模式。

3. 数据库的二级映像与数据独立性

3.1 数据库的二级映像:

数据库的三级模式对应了数据库的二级映像:

  • 外模式——模式映像:保证数据的逻辑独立性,即:模式改变时,仅需要对外模式——模式映像进行改变即可,无需改变应用程序
  • 模式——内模式映像:保证数据的物理独立性,即:数据存储结构改变时,仅需要对模式——内模式映像进行改变即可,无需改变模式。