首先我们看看三级模式两级映射的整体架构,有一个大致的了解:
观察上图,由上到下依次为 用户、外模式、映射1(外模式/模式映射)、概念模式、映射2(模式/内模式映射)、内模式。
接下来我们逐个解释每一层的概念:
先说中间的模式概念:
模式:
模式概念,也称为模式、逻辑模式。
1)它是数据库中全体数据的逻辑结构和特征的描述;(例如在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录,这就是一个逻辑模式)
2)模式是所有用户的公共数据视图。因为数据库是多人共享使用的,模式就是大家都看到的样子,综合了所有用户的数据需求。
注意:
1)一个数据库只有一个模式。
2)与数据库的物理存储无关。
3)与具体的应用程序、开发工具和开发语言无关。(意思就是可以使用各种开发工具和开发语言来使用数据库)
那么如何对模式进行定义呢?
模式的定义就是对 数据的逻辑结构 进行定义(包括数据项的名字、类型、取值范围等)
总结:模式就是所有人都看到的数据的样子。
接下来说最上层外模式
外模式:
什么是外模式?
1)数据库的用户使用的局部数据的逻辑结构和特征的描述
2)数据库用户的数据视图,是与某一应用程序有关的数据的逻辑表示。(如应用程序A只能看见其相对于的外模式1,应用程序B只能看见其相对于的外模式2,不能看见不属于自己的外模式。相当于是模式的一个子集)
外模式的地位:介于模式与应用之间。
模式与外模式的关系:一对多
1)外模式是模式的子集
2)一个数据库可以有多个外模式,反应了不同的用户的应用需求、看待数据的方式、对数据保密的要求。
3)对于模式中的同一个数据,不同外模式可以对数据的长度、类型等有不同的定义。
外模式与应用的关系:一对多。
1)同一外模式可以为某一个用户的多个应用系统所使用
2)但一个应用程序只能使用一个外模式
外模式的用途:
1)保证数据库安全,每个用户只能看见自己对应外模式的数据
2)保证数据独立性。
总结:外模式是模式的一部分,是部分用户看到的数据库的样子。
接下来我们看看最底层的内模式,
内模式
内模式:
1)数据物理结构和存储方式的描述
2)是数据在数据库内部的表示方式
Ⅰ.记录的存储方式:如顺序存储,按B树结构存储,Hash存储)
Ⅱ.索引的组织方式:B+树索引,hash索引,Join index索引
Ⅲ.数据是否压缩存储
Ⅳ.数据是否加密
注:一个数据库只有一个内模式。
总结:内模式处于最底层,是对数据在数据库底层的存储的描述。
以上就是我们所说的三级模式,接下来我们看看两级映射。
首先看看外模式/模式映射,也就是图片中的映射1
外模式/模式映射
外模式/模式映象:定义外模式与模式之间的对应关系。
每一个外模式都对应一个外模式/模式映像,在外模式中规定了从模式中如何分离出。
外模式/模式映像的作用:
保证了数据的逻辑独立性。当模式改变时,数据库管理员修改有关的外模式/模式映像,使外模式保持不变;而应用程序是根据数据的外模式编写的,从而应用程序不必修改,保证了数据与应用程序的逻辑独立性,简称为数据的逻辑独立性。
总结:外模式/模式映像保证了当模式改变时,外模式不用变 (逻辑独立性)
最后我们来说说模式/内模式映射
模式/内模式映射
模式/内模式映像:
定义了数据全局逻辑结构与存储结构之间的对应关系(例如说明逻辑记录和字段在内部是如何表示的)。
数据库中模式/内模式映像是唯一的,定义在模式当中。
用途:保证了数据的物理独立性。
1)当数据的存储结构改变时(如本来我们用堆存储,改成了B+树),数据库管理员修改模式/内模式映像,使模式保持不变。
2)应用程序不受影响,保证了数据与程序的物理独立性,简称为数据的物理独立性。
总结:模式/内模式映像保证了当内模式改变时,模式不用变 (物理独立性)
总结:、
根据上图可以看出:
三级模式两级映射的架构一方面保证了数据的独立性(逻辑独立性与物理独立性),另一方面,应用程序所需要的数据视图被分隔开,同样保证了数据的安全性