【数据库】三级模式两级映射详解

   日期:2020-06-01     浏览:181    评论:0    
核心提示:总体架构首先我们看看三级模式两级映射的整体架构,有一个大致的了解:观察上图,由上到下依次为 用户、外模式、映射1(外模式/模式映射)、概念模式、映射2(模式/内模式映射)、内模式。接下来我们逐个解释每一层的概念:模式...数据库

首先我们看看三级模式两级映射的整体架构,有一个大致的了解:

观察上图,由上到下依次为 用户、外模式、映射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)应用程序不受影响,保证了数据与程序的物理独立性,简称为数据的物理独立性。

总结:模式/内模式映像保证了当内模式改变时,模式不用变 (物理独立性)

总结:、

根据上图可以看出:
三级模式两级映射的架构一方面保证了数据的独立性(逻辑独立性与物理独立性),另一方面,应用程序所需要的数据视图被分隔开,同样保证了数据的安全性

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服