为什么会有三级模式?这里的话先解释一些这个东西,ANSI为了规范我们对数据库的使用,ANSI的数据库管理系统研究小组于1978年提出了标准化的建议,将数据库结构分为3级:面向用户或应用程序员的用户级、面向建立和维护数据库人员的概念级、面向系统程序员的物理级。
面向用户 用户程序员 用户级
面向建立和数据库维护人员 概念级
面向系统程序员 物理级
1>外模式体现了数据库的用户观
外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以使用DML对这些数据记录进行操作。
总结下来就是,外模式对应用户级,用户可以外模式描述语言或者DML对数据记录进行操作
2>概念模式体现了数据库的整体观
概念模式又称模式或者是概念模式,对应于概念级,它是数据库设计者综合所有用户的数据,按照一个统一的观点构造的全局逻辑结构,对数据库的全部的数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的。
总结下来就是,概念模式对应于概念级,综合所有用户的数据,按照一个统一的观点构造的全局逻辑机构,所有用户的公共数据视图。
3>内模式体现了数据库的存储观
内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义的。
那我们来总计一下这三级模式是如何工作的,数据按照外模式描述提供给我们的用户;按内模式存储到磁盘上;而概念模式提供了连接这两级模式一个相对稳定的中间层级,而就是有了这个中间级使得两级模式中任意一级的改变不受第三级的限制。
模式/内模式的映像 实现模式到内模式的相互转换
外模式/模式的映像 实现外模式到模式的相互转换
这里拓展一下DBMS的特征和分类
DBMS的特征 数据结构化且统一管理(面向的不在是应用程序而是整个应用系统),较高的数据独立性(将数据和程序独立,即将数据从程序中分离出来,DBMS负责存储,从而简化了应用程序),数据的控制功能。
数据独立性包括了物理独立性和逻辑独立性,如果改变了某个模式只需要修改上一层的映像,改变内模式,数据的逻辑结构是不变的,应用程序处理的是数据的逻辑结构,这样就保证物理独立性,当物理结构改变时,应用程序不用修改,只需修改内模式到模式映像,改变模式,当数据的逻辑机构发生改变时,用户的应用程序结构和数据库结构是相互独立的,用户的应用程序结构不用修改,但是为了保证应用能够运行,只需修改模式到外模式映像。