本文主要介绍关于数据库系统的三级模式与数据独立性的相关知识。
本文主要内容:
- 模式与实例
- 数据库系统的三级模式结构
- 数据库的二级映像与数据独立性
1. 模式(Schema)&实例(Instance)
模式与实例其本质就是“型”与“值”的关系:
模式(Schema):
* 是对数据库逻辑结构和特征的描述;
* 模式是相对稳定的
* 是对型的描述,不涉及具体值
E.g:“学生选课数据库”:
实例(Instance):
* 数据库某一时刻的状态,即为模式的一个具体值
* 同一个模式可以有多个实例
* 实例会随数据库中数据更新而变动
E.g:“各年学生选课实例”:
2. 数据库系统的三级模式
所谓数据库的三级模式,即:外模式-模式-内模式,如图所示:
2.1 模式(逻辑模式):
模式(逻辑模式)是对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
- 模式是数据库系统模式结构的中心:
- 与数据的物理存储细节和硬件环境无关;
- 与具体应用程序、开发工具以及高级程序设计语言无关;
- 定义模式:
- 定义数据间联系;
- 定义数据相关的安全性、完整性要求;
2.2 外模式:
外模式是对用户使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
- 外模式通常是模式的子集,一个模式通常可以有多个外模式以反映用户的不同应用需求;
- 一个外模式可以被多个应用系统所使用,但一个应用程序只能使用一个外模式;
- 外模式用途:
- 每个用户只能看到和访问1所对应的外模式中的数据,简化了用户视图;
- 提供了安全保障
2.3 内模式(存储模式):
内模式是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,包括:
- 记录的存储方式——顺序、堆存储、hash存储
- 索引的组织方式——B+树、Hash
- 数据是否压缩存储、是否加密等
一个数据库只有一个内模式。
3. 数据库的二级映像与数据独立性
3.1 数据库的二级映像:
数据库的三级模式对应了数据库的二级映像:
- 外模式——模式映像:保证数据的逻辑独立性,即:模式改变时,仅需要对外模式——模式映像进行改变即可,无需改变应用程序
- 模式——内模式映像:保证数据的物理独立性,即:数据存储结构改变时,仅需要对模式——内模式映像进行改变即可,无需改变模式。