上次招银面试,面试官问道我这三个概念的时候,我懵了。今天我就亲手了解这个问题。

1.外模式

外模式(子模式,用户模式),对应于用户级,对应于用户所看到的数据库的数据视图,是与和具体的应用或者项目有关的逻辑表示。用户可以通过外模式描述语言来描述、定于对应于用户的数据记录,也可以用数据库操纵语言DML来对这些数据进行操作。外模式反映了数据库系统的用户观。

2.概念模式

又称为逻辑模式,对应概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库总全部数据的逻辑结构特征的总体描述,是所有用户的公共数据视图(全局视图)。他是有数据库管理系统提供IP的数据模式描述语言DDL来描述定义。概念模式反映了数据库系统的整体观。

3.内模式

又称为存储模式,对应物理级,他是数据库中全体数据的内部表示或者底层描述,是数据库最低一级的逻辑描述,他描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式用内模式描述语言来描述。内模式反映了数据库系统的存储观。

在一个数据库系统中只有唯一的数据库,因而作为定义,描述数据存储结构的内模式和定义、描述数据库逻辑结构的模式也是唯一的。但建立在数据库系统之上的应用则是非常多的。所以对应的外模式是不唯一的,也不可能是唯一的。

用户应该根据外模式进行数据操作,通过外模式映射,定义和建立某个外模式和模式键的对应关系,将外模式和于模式联系起来。当模式发生改变的时候,只需要改变映射,就可以使外模式保持不变,对应的程序也可以保持不变;另外一方面通过模式---内模式映射,定义建立数据的逻辑结构和存储结构间的对应关系,当数据的存储结构发生变化时,只需要改变模式--内模式映射,就能保持模式不变,因此应用程序也可以保持不变

要看的参考书目

内模式参考innodb存储引擎分析

外模式参考高性能MySQL